Skip to content

Commit e90e4e3

Browse files
authored
feat(telemetry): measure served placement types (#10708)
1 parent a951216 commit e90e4e3

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

Diff for: client/src/placement-context.tsx

+28-8
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,32 @@ export interface PlacementContextData
2020
status: Status;
2121
}
2222

23-
const PLACEMENT_MAP: Record<PlacementType, RegExp> = {
24-
side: /\/[^/]+\/(play|docs\/|blog\/|curriculum\/[^$]|search$)/i,
25-
top: /\/[^/]+\/(?!$|_homepage$).*/i,
26-
hpMain: /\/[^/]+\/($|_homepage$)/i,
27-
hpFooter: /\/[^/]+\/($|_homepage$)/i,
28-
bottom: /\/[^/]+\/docs\//i,
23+
const PLACEMENT_MAP: Record<PlacementType, { typ: string; pattern: RegExp }> = {
24+
side: {
25+
typ: "side",
26+
pattern: /\/[^/]+\/(play|docs\/|blog\/|curriculum\/[^$]|search$)/i,
27+
},
28+
top: {
29+
typ: "top-banner",
30+
pattern: /\/[^/]+\/(?!$|_homepage$).*/i,
31+
},
32+
hpMain: {
33+
typ: "hp-main",
34+
pattern: /\/[^/]+\/($|_homepage$)/i,
35+
},
36+
hpFooter: {
37+
typ: "hp-footer",
38+
pattern: /\/[^/]+\/($|_homepage$)/i,
39+
},
40+
bottom: {
41+
typ: "bottom-banner",
42+
pattern: /\/[^/]+\/docs\//i,
43+
},
2944
};
3045

3146
function placementTypes(pathname: string): string[] {
3247
return Object.entries(PLACEMENT_MAP)
33-
.map(([k, re]) => re.test(pathname) && k)
48+
.map(([k, { pattern: re }]) => re.test(pathname) && k)
3449
.filter(Boolean) as string[];
3550
}
3651

@@ -74,7 +89,12 @@ export function PlacementProvider(props: { children: React.ReactNode }) {
7489

7590
try {
7691
const placementResponse: PlacementContextData = await response.json();
77-
gleanClick(`pong: pong->status ${placementResponse.side?.status}`);
92+
const typs = Object.entries(PLACEMENT_MAP)
93+
.filter(([key]) => key in placementResponse)
94+
.map(([, { typ }]) => typ);
95+
if (typs.length) {
96+
gleanClick(`pong: pong->served ${typs.join()}`);
97+
}
7898
return placementResponse;
7999
} catch (e) {
80100
throw Error(response.statusText);

0 commit comments

Comments
 (0)