@gscdump/analysis 0.26.7 → 0.26.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzer/index.mjs +27 -6
- package/dist/default-registry.mjs +27 -6
- package/dist/index.mjs +27 -6
- package/package.json +4 -4
package/dist/analyzer/index.mjs
CHANGED
|
@@ -2675,15 +2675,36 @@ const deviceGapAnalyzer = defineAnalyzer({
|
|
|
2675
2675
|
const { startDate, endDate } = periodOf(params);
|
|
2676
2676
|
return {
|
|
2677
2677
|
sql: `
|
|
2678
|
+
WITH raw AS (
|
|
2679
|
+
SELECT
|
|
2680
|
+
date,
|
|
2681
|
+
COALESCE(clicks_desktop, 0) AS c_desktop,
|
|
2682
|
+
COALESCE(clicks_mobile, 0) AS c_mobile,
|
|
2683
|
+
COALESCE(clicks_tablet, 0) AS c_tablet,
|
|
2684
|
+
COALESCE(impressions_desktop, 0) AS i_desktop,
|
|
2685
|
+
COALESCE(impressions_mobile, 0) AS i_mobile,
|
|
2686
|
+
COALESCE(impressions_tablet, 0) AS i_tablet,
|
|
2687
|
+
COALESCE(sum_position_desktop, 0) AS p_desktop,
|
|
2688
|
+
COALESCE(sum_position_mobile, 0) AS p_mobile,
|
|
2689
|
+
COALESCE(sum_position_tablet, 0) AS p_tablet
|
|
2690
|
+
FROM read_parquet({{FILES}}, union_by_name = true)
|
|
2691
|
+
WHERE date >= ? AND date <= ?
|
|
2692
|
+
),
|
|
2693
|
+
device_long AS (
|
|
2694
|
+
SELECT date, 'DESKTOP' AS device, c_desktop AS clicks, i_desktop AS impressions, p_desktop AS sum_position FROM raw
|
|
2695
|
+
UNION ALL
|
|
2696
|
+
SELECT date, 'MOBILE', c_mobile, i_mobile, p_mobile FROM raw
|
|
2697
|
+
UNION ALL
|
|
2698
|
+
SELECT date, 'TABLET', c_tablet, i_tablet, p_tablet FROM raw
|
|
2699
|
+
)
|
|
2678
2700
|
SELECT
|
|
2679
2701
|
date,
|
|
2680
2702
|
device,
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
FROM
|
|
2686
|
-
WHERE date >= ? AND date <= ?
|
|
2703
|
+
CAST(SUM(clicks) AS DOUBLE) AS clicks,
|
|
2704
|
+
CAST(SUM(impressions) AS DOUBLE) AS impressions,
|
|
2705
|
+
CAST(SUM(clicks) AS DOUBLE) / NULLIF(SUM(impressions), 0) AS ctr,
|
|
2706
|
+
SUM(sum_position) / NULLIF(SUM(impressions), 0) + 1 AS position
|
|
2707
|
+
FROM device_long
|
|
2687
2708
|
GROUP BY date, device
|
|
2688
2709
|
ORDER BY date ASC
|
|
2689
2710
|
`,
|
|
@@ -2669,15 +2669,36 @@ const deviceGapAnalyzer = defineAnalyzer({
|
|
|
2669
2669
|
const { startDate, endDate } = periodOf(params);
|
|
2670
2670
|
return {
|
|
2671
2671
|
sql: `
|
|
2672
|
+
WITH raw AS (
|
|
2673
|
+
SELECT
|
|
2674
|
+
date,
|
|
2675
|
+
COALESCE(clicks_desktop, 0) AS c_desktop,
|
|
2676
|
+
COALESCE(clicks_mobile, 0) AS c_mobile,
|
|
2677
|
+
COALESCE(clicks_tablet, 0) AS c_tablet,
|
|
2678
|
+
COALESCE(impressions_desktop, 0) AS i_desktop,
|
|
2679
|
+
COALESCE(impressions_mobile, 0) AS i_mobile,
|
|
2680
|
+
COALESCE(impressions_tablet, 0) AS i_tablet,
|
|
2681
|
+
COALESCE(sum_position_desktop, 0) AS p_desktop,
|
|
2682
|
+
COALESCE(sum_position_mobile, 0) AS p_mobile,
|
|
2683
|
+
COALESCE(sum_position_tablet, 0) AS p_tablet
|
|
2684
|
+
FROM read_parquet({{FILES}}, union_by_name = true)
|
|
2685
|
+
WHERE date >= ? AND date <= ?
|
|
2686
|
+
),
|
|
2687
|
+
device_long AS (
|
|
2688
|
+
SELECT date, 'DESKTOP' AS device, c_desktop AS clicks, i_desktop AS impressions, p_desktop AS sum_position FROM raw
|
|
2689
|
+
UNION ALL
|
|
2690
|
+
SELECT date, 'MOBILE', c_mobile, i_mobile, p_mobile FROM raw
|
|
2691
|
+
UNION ALL
|
|
2692
|
+
SELECT date, 'TABLET', c_tablet, i_tablet, p_tablet FROM raw
|
|
2693
|
+
)
|
|
2672
2694
|
SELECT
|
|
2673
2695
|
date,
|
|
2674
2696
|
device,
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
FROM
|
|
2680
|
-
WHERE date >= ? AND date <= ?
|
|
2697
|
+
CAST(SUM(clicks) AS DOUBLE) AS clicks,
|
|
2698
|
+
CAST(SUM(impressions) AS DOUBLE) AS impressions,
|
|
2699
|
+
CAST(SUM(clicks) AS DOUBLE) / NULLIF(SUM(impressions), 0) AS ctr,
|
|
2700
|
+
SUM(sum_position) / NULLIF(SUM(impressions), 0) + 1 AS position
|
|
2701
|
+
FROM device_long
|
|
2681
2702
|
GROUP BY date, device
|
|
2682
2703
|
ORDER BY date ASC
|
|
2683
2704
|
`,
|
package/dist/index.mjs
CHANGED
|
@@ -3049,15 +3049,36 @@ const deviceGapAnalyzer = defineAnalyzer$1({
|
|
|
3049
3049
|
const { startDate, endDate } = periodOf$1(params);
|
|
3050
3050
|
return {
|
|
3051
3051
|
sql: `
|
|
3052
|
+
WITH raw AS (
|
|
3053
|
+
SELECT
|
|
3054
|
+
date,
|
|
3055
|
+
COALESCE(clicks_desktop, 0) AS c_desktop,
|
|
3056
|
+
COALESCE(clicks_mobile, 0) AS c_mobile,
|
|
3057
|
+
COALESCE(clicks_tablet, 0) AS c_tablet,
|
|
3058
|
+
COALESCE(impressions_desktop, 0) AS i_desktop,
|
|
3059
|
+
COALESCE(impressions_mobile, 0) AS i_mobile,
|
|
3060
|
+
COALESCE(impressions_tablet, 0) AS i_tablet,
|
|
3061
|
+
COALESCE(sum_position_desktop, 0) AS p_desktop,
|
|
3062
|
+
COALESCE(sum_position_mobile, 0) AS p_mobile,
|
|
3063
|
+
COALESCE(sum_position_tablet, 0) AS p_tablet
|
|
3064
|
+
FROM read_parquet({{FILES}}, union_by_name = true)
|
|
3065
|
+
WHERE date >= ? AND date <= ?
|
|
3066
|
+
),
|
|
3067
|
+
device_long AS (
|
|
3068
|
+
SELECT date, 'DESKTOP' AS device, c_desktop AS clicks, i_desktop AS impressions, p_desktop AS sum_position FROM raw
|
|
3069
|
+
UNION ALL
|
|
3070
|
+
SELECT date, 'MOBILE', c_mobile, i_mobile, p_mobile FROM raw
|
|
3071
|
+
UNION ALL
|
|
3072
|
+
SELECT date, 'TABLET', c_tablet, i_tablet, p_tablet FROM raw
|
|
3073
|
+
)
|
|
3052
3074
|
SELECT
|
|
3053
3075
|
date,
|
|
3054
3076
|
device,
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
FROM
|
|
3060
|
-
WHERE date >= ? AND date <= ?
|
|
3077
|
+
CAST(SUM(clicks) AS DOUBLE) AS clicks,
|
|
3078
|
+
CAST(SUM(impressions) AS DOUBLE) AS impressions,
|
|
3079
|
+
CAST(SUM(clicks) AS DOUBLE) / NULLIF(SUM(impressions), 0) AS ctr,
|
|
3080
|
+
SUM(sum_position) / NULLIF(SUM(impressions), 0) + 1 AS position
|
|
3081
|
+
FROM device_long
|
|
3061
3082
|
GROUP BY date, device
|
|
3062
3083
|
ORDER BY date ASC
|
|
3063
3084
|
`,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gscdump/analysis",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.26.
|
|
4
|
+
"version": "0.26.8",
|
|
5
5
|
"description": "GSC analyzers — striking-distance, opportunity, movers, decay, brand, clustering, concentration, seasonality. Pure row-based + DuckDB-native.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Harlan Wilton",
|
|
@@ -75,9 +75,9 @@
|
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"drizzle-orm": "1.0.0-rc.3",
|
|
78
|
-
"@gscdump/engine": "0.26.
|
|
79
|
-
"@gscdump/engine-gsc-api": "0.26.
|
|
80
|
-
"gscdump": "0.26.
|
|
78
|
+
"@gscdump/engine": "0.26.8",
|
|
79
|
+
"@gscdump/engine-gsc-api": "0.26.8",
|
|
80
|
+
"gscdump": "0.26.8"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"vitest": "^4.1.8"
|