Skip to content

Commit 43c5312

Browse files
committed
feat(insights): annotate events with algoliaSource (#1119)
Default events get `autocomplete, autocomplete-internal`, custom events only get `autocomplete`. FX-2288
1 parent 8bcd680 commit 43c5312

File tree

5 files changed

+34
-5
lines changed

5 files changed

+34
-5
lines changed

packages/autocomplete-plugin-algolia-insights/src/__tests__/createAlgoliaInsightsPlugin.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ describe('createAlgoliaInsightsPlugin', () => {
330330
eventName: 'Items Viewed',
331331
index: 'index1',
332332
objectIDs: ['1'],
333+
algoliaSource: ['autocomplete', 'autocomplete-internal'],
333334
});
334335
});
335336

@@ -381,11 +382,13 @@ describe('createAlgoliaInsightsPlugin', () => {
381382
eventName: 'Items Viewed',
382383
index: 'index1',
383384
objectIDs: ['1'],
385+
algoliaSource: ['autocomplete', 'autocomplete-internal'],
384386
});
385387
expect(insightsClient).toHaveBeenNthCalledWith(2, 'viewedObjectIDs', {
386388
eventName: 'Items Viewed',
387389
index: 'index2',
388390
objectIDs: ['2'],
391+
algoliaSource: ['autocomplete', 'autocomplete-internal'],
389392
});
390393
});
391394

@@ -431,6 +434,7 @@ describe('createAlgoliaInsightsPlugin', () => {
431434
eventName: 'Product Viewed from Autocomplete',
432435
index: 'index1',
433436
objectIDs: ['1'],
437+
algoliaSource: ['autocomplete'],
434438
});
435439
});
436440

@@ -529,6 +533,7 @@ describe('createAlgoliaInsightsPlugin', () => {
529533
eventName: 'Items Viewed',
530534
index: 'index1',
531535
objectIDs: ['1', '3'],
536+
algoliaSource: ['autocomplete', 'autocomplete-internal'],
532537
});
533538

534539
// The call triggered with "help" occurred after the timeout, so the item
@@ -537,6 +542,7 @@ describe('createAlgoliaInsightsPlugin', () => {
537542
eventName: 'Items Viewed',
538543
index: 'index1',
539544
objectIDs: ['3'],
545+
algoliaSource: ['autocomplete', 'autocomplete-internal'],
540546
});
541547
});
542548

@@ -638,6 +644,7 @@ describe('createAlgoliaInsightsPlugin', () => {
638644
objectIDs: ['1'],
639645
positions: [0],
640646
queryID: 'queryID1',
647+
algoliaSource: ['autocomplete', 'autocomplete-internal'],
641648
}
642649
);
643650
});
@@ -692,6 +699,7 @@ describe('createAlgoliaInsightsPlugin', () => {
692699
objectIDs: ['1'],
693700
positions: [0],
694701
queryID: 'queryID1',
702+
algoliaSource: ['autocomplete'],
695703
}
696704
);
697705
});
@@ -849,6 +857,7 @@ describe('createAlgoliaInsightsPlugin', () => {
849857
objectIDs: ['1'],
850858
positions: [0],
851859
queryID: 'queryID1',
860+
algoliaSource: ['autocomplete'],
852861
});
853862
});
854863

packages/autocomplete-plugin-algolia-insights/src/createAlgoliaInsightsPlugin.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,26 @@ export function createAlgoliaInsightsPlugin(
216216
function getOptions(options: CreateAlgoliaInsightsPluginParams) {
217217
return {
218218
onItemsChange({ insights, insightsEvents }: OnItemsChangeParams) {
219-
insights.viewedObjectIDs(...insightsEvents);
219+
insights.viewedObjectIDs(
220+
...insightsEvents.map((event) => ({
221+
...event,
222+
algoliaSource: [
223+
...(event.algoliaSource || []),
224+
'autocomplete-internal',
225+
],
226+
}))
227+
);
220228
},
221229
onSelect({ insights, insightsEvents }: OnSelectParams) {
222-
insights.clickedObjectIDsAfterSearch(...insightsEvents);
230+
insights.clickedObjectIDsAfterSearch(
231+
...insightsEvents.map((event) => ({
232+
...event,
233+
algoliaSource: [
234+
...(event.algoliaSource || []),
235+
'autocomplete-internal',
236+
],
237+
}))
238+
);
223239
},
224240
onActive: noop,
225241
...options,

packages/autocomplete-plugin-algolia-insights/src/createClickedEvent.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ export function createClickedEvent({
1111
}: CreateClickedEventParams): Omit<
1212
ClickedObjectIDsAfterSearchParams,
1313
'eventName'
14-
> {
14+
> & { algoliaSource?: string[] } {
1515
return {
1616
index: item.__autocomplete_indexName,
1717
objectIDs: [item.objectID],
1818
positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],
1919
queryID: item.__autocomplete_queryID,
20+
algoliaSource: ['autocomplete'],
2021
};
2122
}

packages/autocomplete-plugin-algolia-insights/src/createViewedEvents.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export function createViewedEvents({
2424
return {
2525
index: indexName,
2626
objectIDs,
27+
algoliaSource: ['autocomplete'],
2728
};
2829
});
2930
}

packages/autocomplete-plugin-algolia-insights/src/types/EventParams.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import { AlgoliaInsightsHit, AutocompleteInsightsApi } from '.';
99

1010
export type OnSelectParams = {
1111
insights: AutocompleteInsightsApi;
12-
insightsEvents: ClickedObjectIDsAfterSearchParams[];
12+
insightsEvents: Array<
13+
ClickedObjectIDsAfterSearchParams & { algoliaSource?: string[] }
14+
>;
1315
item: AlgoliaInsightsHit;
1416
state: AutocompleteState<any>;
1517
event: any;
@@ -19,6 +21,6 @@ export type OnActiveParams = OnSelectParams;
1921

2022
export type OnItemsChangeParams = {
2123
insights: AutocompleteInsightsApi;
22-
insightsEvents: ViewedObjectIDsParams[];
24+
insightsEvents: Array<ViewedObjectIDsParams & { algoliaSource?: string[] }>;
2325
state: AutocompleteState<any>;
2426
};

0 commit comments

Comments
 (0)