Skip to content

Commit 959c11a

Browse files
authored
Merge pull request #2114 from dubinc/all-analytics
Use link data if interval="all"
2 parents 6f13159 + 49d9f63 commit 959c11a

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed

apps/web/lib/analytics/constants.ts

+22-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ export const intervals = [
1010
"qtd",
1111
"ytd",
1212
"all",
13-
"all_unfiltered",
1413
] as const;
1514

1615
export const eventIntervals = [
@@ -187,7 +186,7 @@ export const VALID_ANALYTICS_FILTERS = [
187186
"tagId",
188187
"folderId",
189188
"tagIds",
190-
"qr",
189+
"qr", // deprecated, but keeping for now for backwards compatibility
191190
"root",
192191
"utm_source",
193192
"utm_medium",
@@ -196,6 +195,27 @@ export const VALID_ANALYTICS_FILTERS = [
196195
"utm_content",
197196
];
198197

198+
// possible analytics filters for a given linkId
199+
export const DIMENSIONAL_ANALYTICS_FILTERS = [
200+
"country",
201+
"city",
202+
"region",
203+
"continent",
204+
"device",
205+
"browser",
206+
"os",
207+
"trigger",
208+
"referer",
209+
"refererUrl",
210+
"url",
211+
"qr", // deprecated, but keeping for now for backwards compatibility
212+
"utm_source",
213+
"utm_medium",
214+
"utm_campaign",
215+
"utm_term",
216+
"utm_content",
217+
];
218+
199219
export const TRIGGER_DISPLAY = {
200220
qr: "QR Scan",
201221
link: "Link Click",

apps/web/lib/analytics/get-analytics.ts

+14-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ import { conn } from "../planetscale";
77
import z from "../zod";
88
import { analyticsFilterTB } from "../zod/schemas/analytics";
99
import { analyticsResponse } from "../zod/schemas/analytics-response";
10-
import { SINGULAR_ANALYTICS_ENDPOINTS } from "./constants";
10+
import {
11+
DIMENSIONAL_ANALYTICS_FILTERS,
12+
SINGULAR_ANALYTICS_ENDPOINTS,
13+
} from "./constants";
1114
import { AnalyticsFilters } from "./types";
1215
import { getStartEndDates } from "./utils/get-start-end-dates";
1316

@@ -35,8 +38,16 @@ export const getAnalytics = async (params: AnalyticsFilters) => {
3538
// get all-time clicks count if:
3639
// 1. linkId is defined
3740
// 2. type is count
38-
// 3. interval is all_unfiltered
39-
if (linkId && groupBy === "count" && interval === "all_unfiltered") {
41+
// 3. interval is all
42+
// 4. no other dimensional filters are applied
43+
if (
44+
linkId &&
45+
groupBy === "count" &&
46+
interval === "all" &&
47+
DIMENSIONAL_ANALYTICS_FILTERS.every(
48+
(filter) => !params[filter as keyof AnalyticsFilters],
49+
)
50+
) {
4051
const columns =
4152
event === "composite"
4253
? `clicks, leads, sales, saleAmount`

apps/web/ui/links/link-details-column.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ function AnalyticsBadge({ link }: { link: ResponseLink }) {
201201

202202
return isMobile ? (
203203
<Link
204-
href={`/${slug}/analytics?domain=${domain}&key=${key}&interval=${plan === "free" ? "30d" : plan === "pro" ? "1y" : "all"}`}
204+
href={`/${slug}/analytics?domain=${domain}&key=${key}`}
205205
className="flex items-center gap-1 rounded-md border border-neutral-200 bg-neutral-50 px-2 py-0.5 text-sm text-neutral-800"
206206
>
207207
<CursorRays className="h-4 w-4 text-neutral-600" />

0 commit comments

Comments
 (0)