coveo.analytics 2.28.19 → 2.28.21
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/browser.mjs +52 -8
- package/dist/coveoua.browser.js +1 -1
- package/dist/coveoua.browser.js.map +1 -1
- package/dist/coveoua.debug.js +57 -13
- package/dist/coveoua.debug.js.map +1 -1
- package/dist/coveoua.js +1 -1
- package/dist/coveoua.js.map +1 -1
- package/dist/definitions/insight/insightClient.d.ts +13 -1
- package/dist/definitions/searchPage/searchPageClient.d.ts +2 -2
- package/dist/definitions/searchPage/searchPageEvents.d.ts +1 -1
- package/dist/definitions/version.d.ts +1 -1
- package/dist/library.cjs +57 -13
- package/dist/library.es.js +52 -8
- package/dist/library.js +57 -13
- package/dist/library.mjs +57 -13
- package/dist/react-native.es.js +52 -8
- package/package.json +4 -4
- package/src/insight/insightClient.spec.ts +262 -1
- package/src/insight/insightClient.ts +123 -1
- package/src/searchPage/searchPageClient.spec.ts +7 -7
- package/src/searchPage/searchPageClient.ts +4 -4
- package/src/searchPage/searchPageEvents.ts +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coveo.analytics",
|
|
3
|
-
"version": "2.28.
|
|
3
|
+
"version": "2.28.21",
|
|
4
4
|
"description": "📈 Coveo analytics client (node and browser compatible) ",
|
|
5
5
|
"main": "dist/library.cjs",
|
|
6
6
|
"module": "dist/browser.mjs",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"uuid": "^9.0.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@babel/core": "^7.
|
|
34
|
-
"@babel/preset-env": "7.
|
|
35
|
-
"@babel/register": "^7.
|
|
33
|
+
"@babel/core": "^7.23.2",
|
|
34
|
+
"@babel/preset-env": "7.23.2",
|
|
35
|
+
"@babel/register": "^7.22.15",
|
|
36
36
|
"@rollup/plugin-alias": "^5.0.0",
|
|
37
37
|
"@rollup/plugin-commonjs": "^24.1.0",
|
|
38
38
|
"@rollup/plugin-json": "^6.0.0",
|
|
@@ -3,6 +3,8 @@ import CoveoAnalyticsClient from '../client/analytics';
|
|
|
3
3
|
import {NoopAnalytics} from '../client/noopAnalytics';
|
|
4
4
|
import {
|
|
5
5
|
CustomEventsTypes,
|
|
6
|
+
GeneratedAnswerFeedbackReason,
|
|
7
|
+
GeneratedAnswerRephraseFormat,
|
|
6
8
|
PartialDocumentInformation,
|
|
7
9
|
SearchPageEvents,
|
|
8
10
|
StaticFilterToggleValueMetadata,
|
|
@@ -63,6 +65,7 @@ describe('InsightClient', () => {
|
|
|
63
65
|
getLanguage: () => 'en',
|
|
64
66
|
getFacetState: () => fakeFacetState,
|
|
65
67
|
getIsAnonymous: () => false,
|
|
68
|
+
getGeneratedAnswerMetadata: () => ({genratedAnswerMetadata: 'foo'}),
|
|
66
69
|
};
|
|
67
70
|
|
|
68
71
|
const initClient = () => {
|
|
@@ -78,7 +81,7 @@ describe('InsightClient', () => {
|
|
|
78
81
|
|
|
79
82
|
const expectMatchPayload = (actionCause: SearchPageEvents | InsightEvents, meta = {}) => {
|
|
80
83
|
const body: string = lastCallBody(fetchMock);
|
|
81
|
-
const customData = {foo: 'bar', ...meta};
|
|
84
|
+
const customData = {foo: 'bar', genratedAnswerMetadata: 'foo', ...meta};
|
|
82
85
|
expect(JSON.parse(body)).toMatchObject({
|
|
83
86
|
queryText: 'queryText',
|
|
84
87
|
responseTime: 123,
|
|
@@ -509,6 +512,116 @@ describe('InsightClient', () => {
|
|
|
509
512
|
await client.logShowLessFoldedResults();
|
|
510
513
|
expectMatchCustomEventPayload(SearchPageEvents.showLessFoldedResults);
|
|
511
514
|
});
|
|
515
|
+
|
|
516
|
+
it('should send proper payload for #likeGeneratedAnswer', async () => {
|
|
517
|
+
const exampleGeneratedAnswerMetadata = {
|
|
518
|
+
generativeQuestionAnsweringId: '123',
|
|
519
|
+
};
|
|
520
|
+
|
|
521
|
+
await client.logLikeGeneratedAnswer(exampleGeneratedAnswerMetadata);
|
|
522
|
+
expectMatchCustomEventPayload(SearchPageEvents.likeGeneratedAnswer, exampleGeneratedAnswerMetadata);
|
|
523
|
+
});
|
|
524
|
+
|
|
525
|
+
it('should send proper payload for #dislikeGeneratedAnswer', async () => {
|
|
526
|
+
const exampleGeneratedAnswerMetadata = {
|
|
527
|
+
generativeQuestionAnsweringId: '123',
|
|
528
|
+
};
|
|
529
|
+
|
|
530
|
+
await client.logDislikeGeneratedAnswer(exampleGeneratedAnswerMetadata);
|
|
531
|
+
expectMatchCustomEventPayload(SearchPageEvents.dislikeGeneratedAnswer, exampleGeneratedAnswerMetadata);
|
|
532
|
+
});
|
|
533
|
+
|
|
534
|
+
it('should send proper payload for #openGeneratedAnswerSource', async () => {
|
|
535
|
+
const exampleGeneratedAnswerMetadata = {
|
|
536
|
+
generativeQuestionAnsweringId: '123',
|
|
537
|
+
permanentId: 'foo',
|
|
538
|
+
citationId: 'bar',
|
|
539
|
+
};
|
|
540
|
+
|
|
541
|
+
await client.logOpenGeneratedAnswerSource(exampleGeneratedAnswerMetadata);
|
|
542
|
+
expectMatchCustomEventPayload(SearchPageEvents.openGeneratedAnswerSource, exampleGeneratedAnswerMetadata);
|
|
543
|
+
});
|
|
544
|
+
|
|
545
|
+
it('should send proper payload for #generatedAnswerSourceHover', async () => {
|
|
546
|
+
const exampleGeneratedAnswerMetadata = {
|
|
547
|
+
generativeQuestionAnsweringId: '123',
|
|
548
|
+
permanentId: 'foo',
|
|
549
|
+
citationId: 'bar',
|
|
550
|
+
citationHoverTimeMs: 100,
|
|
551
|
+
};
|
|
552
|
+
|
|
553
|
+
await client.logGeneratedAnswerSourceHover(exampleGeneratedAnswerMetadata);
|
|
554
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerSourceHover, exampleGeneratedAnswerMetadata);
|
|
555
|
+
});
|
|
556
|
+
|
|
557
|
+
it('should send proper payload for #generatedAnswerCopyToClipboard', async () => {
|
|
558
|
+
const exampleGeneratedAnswerMetadata = {
|
|
559
|
+
generativeQuestionAnsweringId: '123',
|
|
560
|
+
};
|
|
561
|
+
|
|
562
|
+
await client.logGeneratedAnswerCopyToClipboard(exampleGeneratedAnswerMetadata);
|
|
563
|
+
expectMatchCustomEventPayload(
|
|
564
|
+
SearchPageEvents.generatedAnswerCopyToClipboard,
|
|
565
|
+
exampleGeneratedAnswerMetadata
|
|
566
|
+
);
|
|
567
|
+
});
|
|
568
|
+
|
|
569
|
+
it('should send proper payload for #generatedAnswerHideAnswers', async () => {
|
|
570
|
+
const exampleGeneratedAnswerMetadata = {
|
|
571
|
+
generativeQuestionAnsweringId: '123',
|
|
572
|
+
};
|
|
573
|
+
|
|
574
|
+
await client.logGeneratedAnswerHideAnswers(exampleGeneratedAnswerMetadata);
|
|
575
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerHideAnswers, exampleGeneratedAnswerMetadata);
|
|
576
|
+
});
|
|
577
|
+
|
|
578
|
+
it('should send proper payload for #generatedAnswerShowAnswers', async () => {
|
|
579
|
+
const exampleGeneratedAnswerMetadata = {
|
|
580
|
+
generativeQuestionAnsweringId: '123',
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
await client.logGeneratedAnswerShowAnswers(exampleGeneratedAnswerMetadata);
|
|
584
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerShowAnswers, exampleGeneratedAnswerMetadata);
|
|
585
|
+
});
|
|
586
|
+
|
|
587
|
+
it('should send proper payload for #generatedAnswerFeedbackSubmit', async () => {
|
|
588
|
+
const exampleGeneratedAnswerMetadata = {
|
|
589
|
+
generativeQuestionAnsweringId: '123',
|
|
590
|
+
reason: <GeneratedAnswerFeedbackReason>'other',
|
|
591
|
+
details: 'foo',
|
|
592
|
+
};
|
|
593
|
+
|
|
594
|
+
await client.logGeneratedAnswerFeedbackSubmit(exampleGeneratedAnswerMetadata);
|
|
595
|
+
expectMatchCustomEventPayload(
|
|
596
|
+
SearchPageEvents.generatedAnswerFeedbackSubmit,
|
|
597
|
+
exampleGeneratedAnswerMetadata
|
|
598
|
+
);
|
|
599
|
+
});
|
|
600
|
+
|
|
601
|
+
it('should send proper payload for #rephraseGeneratedAnswer', async () => {
|
|
602
|
+
const exampleGeneratedAnswerMetadata = {
|
|
603
|
+
generativeQuestionAnsweringId: '123',
|
|
604
|
+
rephraseFormat: <GeneratedAnswerRephraseFormat>'step',
|
|
605
|
+
};
|
|
606
|
+
|
|
607
|
+
await client.logRephraseGeneratedAnswer(exampleGeneratedAnswerMetadata);
|
|
608
|
+
expectMatchPayload(SearchPageEvents.rephraseGeneratedAnswer, exampleGeneratedAnswerMetadata);
|
|
609
|
+
});
|
|
610
|
+
|
|
611
|
+
it('should send proper payload for #retryGeneratedAnswer', async () => {
|
|
612
|
+
await client.logRetryGeneratedAnswer();
|
|
613
|
+
expectMatchPayload(SearchPageEvents.retryGeneratedAnswer);
|
|
614
|
+
});
|
|
615
|
+
|
|
616
|
+
it('should send proper payload for #generatedAnswerStreamEnd', async () => {
|
|
617
|
+
const exampleGeneratedAnswerMetadata = {
|
|
618
|
+
generativeQuestionAnsweringId: '123',
|
|
619
|
+
answerGenerated: true,
|
|
620
|
+
};
|
|
621
|
+
|
|
622
|
+
await client.logGeneratedAnswerStreamEnd(exampleGeneratedAnswerMetadata);
|
|
623
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerStreamEnd, exampleGeneratedAnswerMetadata);
|
|
624
|
+
});
|
|
512
625
|
});
|
|
513
626
|
|
|
514
627
|
describe('when the case metadata is included', () => {
|
|
@@ -1119,6 +1232,154 @@ describe('InsightClient', () => {
|
|
|
1119
1232
|
await client.logShowLessFoldedResults(baseCaseMetadata);
|
|
1120
1233
|
expectMatchCustomEventPayload(SearchPageEvents.showLessFoldedResults, expectedMetadata);
|
|
1121
1234
|
});
|
|
1235
|
+
|
|
1236
|
+
it('should send proper payload for #likeGeneratedAnswer', async () => {
|
|
1237
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1238
|
+
generativeQuestionAnsweringId: '123',
|
|
1239
|
+
};
|
|
1240
|
+
const expectedMetadata = {
|
|
1241
|
+
...exampleGeneratedAnswerMetadata,
|
|
1242
|
+
...expectedBaseCaseMetadata,
|
|
1243
|
+
};
|
|
1244
|
+
|
|
1245
|
+
await client.logLikeGeneratedAnswer(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1246
|
+
expectMatchCustomEventPayload(SearchPageEvents.likeGeneratedAnswer, expectedMetadata);
|
|
1247
|
+
});
|
|
1248
|
+
|
|
1249
|
+
it('should send proper payload for #dislikeGeneratedAnswer', async () => {
|
|
1250
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1251
|
+
generativeQuestionAnsweringId: '123',
|
|
1252
|
+
};
|
|
1253
|
+
const expectedMetadata = {
|
|
1254
|
+
...exampleGeneratedAnswerMetadata,
|
|
1255
|
+
...expectedBaseCaseMetadata,
|
|
1256
|
+
};
|
|
1257
|
+
|
|
1258
|
+
await client.logDislikeGeneratedAnswer(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1259
|
+
expectMatchCustomEventPayload(SearchPageEvents.dislikeGeneratedAnswer, expectedMetadata);
|
|
1260
|
+
});
|
|
1261
|
+
|
|
1262
|
+
it('should send proper payload for #openGeneratedAnswerSource', async () => {
|
|
1263
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1264
|
+
generativeQuestionAnsweringId: '123',
|
|
1265
|
+
permanentId: 'foo',
|
|
1266
|
+
citationId: 'bar',
|
|
1267
|
+
};
|
|
1268
|
+
const expectedMetadata = {
|
|
1269
|
+
...exampleGeneratedAnswerMetadata,
|
|
1270
|
+
...expectedBaseCaseMetadata,
|
|
1271
|
+
};
|
|
1272
|
+
|
|
1273
|
+
await client.logOpenGeneratedAnswerSource(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1274
|
+
expectMatchCustomEventPayload(SearchPageEvents.openGeneratedAnswerSource, expectedMetadata);
|
|
1275
|
+
});
|
|
1276
|
+
|
|
1277
|
+
it('should send proper payload for #generatedAnswerSourceHover', async () => {
|
|
1278
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1279
|
+
generativeQuestionAnsweringId: '123',
|
|
1280
|
+
permanentId: 'foo',
|
|
1281
|
+
citationId: 'bar',
|
|
1282
|
+
citationHoverTimeMs: 100,
|
|
1283
|
+
};
|
|
1284
|
+
const expectedMetadata = {
|
|
1285
|
+
...exampleGeneratedAnswerMetadata,
|
|
1286
|
+
...expectedBaseCaseMetadata,
|
|
1287
|
+
};
|
|
1288
|
+
|
|
1289
|
+
await client.logGeneratedAnswerSourceHover(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1290
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerSourceHover, expectedMetadata);
|
|
1291
|
+
});
|
|
1292
|
+
|
|
1293
|
+
it('should send proper payload for #generatedAnswerCopyToClipboard', async () => {
|
|
1294
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1295
|
+
generativeQuestionAnsweringId: '123',
|
|
1296
|
+
};
|
|
1297
|
+
const expectedMetadata = {
|
|
1298
|
+
...exampleGeneratedAnswerMetadata,
|
|
1299
|
+
...expectedBaseCaseMetadata,
|
|
1300
|
+
};
|
|
1301
|
+
|
|
1302
|
+
await client.logGeneratedAnswerCopyToClipboard(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1303
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerCopyToClipboard, expectedMetadata);
|
|
1304
|
+
});
|
|
1305
|
+
|
|
1306
|
+
it('should send proper payload for #generatedAnswerHideAnswers', async () => {
|
|
1307
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1308
|
+
generativeQuestionAnsweringId: '123',
|
|
1309
|
+
};
|
|
1310
|
+
const expectedMetadata = {
|
|
1311
|
+
...exampleGeneratedAnswerMetadata,
|
|
1312
|
+
...expectedBaseCaseMetadata,
|
|
1313
|
+
};
|
|
1314
|
+
|
|
1315
|
+
await client.logGeneratedAnswerHideAnswers(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1316
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerHideAnswers, expectedMetadata);
|
|
1317
|
+
});
|
|
1318
|
+
|
|
1319
|
+
it('should send proper payload for #generatedAnswerShowAnswers', async () => {
|
|
1320
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1321
|
+
generativeQuestionAnsweringId: '123',
|
|
1322
|
+
};
|
|
1323
|
+
const expectedMetadata = {
|
|
1324
|
+
...exampleGeneratedAnswerMetadata,
|
|
1325
|
+
...expectedBaseCaseMetadata,
|
|
1326
|
+
};
|
|
1327
|
+
|
|
1328
|
+
await client.logGeneratedAnswerShowAnswers(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1329
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerShowAnswers, expectedMetadata);
|
|
1330
|
+
});
|
|
1331
|
+
|
|
1332
|
+
it('should send proper payload for #generatedAnswerFeedbackSubmit', async () => {
|
|
1333
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1334
|
+
generativeQuestionAnsweringId: '123',
|
|
1335
|
+
reason: <GeneratedAnswerFeedbackReason>'other',
|
|
1336
|
+
details: 'foo',
|
|
1337
|
+
};
|
|
1338
|
+
const expectedMetadata = {
|
|
1339
|
+
...exampleGeneratedAnswerMetadata,
|
|
1340
|
+
...expectedBaseCaseMetadata,
|
|
1341
|
+
};
|
|
1342
|
+
|
|
1343
|
+
await client.logGeneratedAnswerFeedbackSubmit(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1344
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerFeedbackSubmit, expectedMetadata);
|
|
1345
|
+
});
|
|
1346
|
+
|
|
1347
|
+
it('should send proper payload for #rephraseGeneratedAnswer', async () => {
|
|
1348
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1349
|
+
generativeQuestionAnsweringId: '123',
|
|
1350
|
+
rephraseFormat: <GeneratedAnswerRephraseFormat>'step',
|
|
1351
|
+
};
|
|
1352
|
+
const expectedMetadata = {
|
|
1353
|
+
...exampleGeneratedAnswerMetadata,
|
|
1354
|
+
...expectedBaseCaseMetadata,
|
|
1355
|
+
};
|
|
1356
|
+
|
|
1357
|
+
await client.logRephraseGeneratedAnswer(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1358
|
+
expectMatchPayload(SearchPageEvents.rephraseGeneratedAnswer, expectedMetadata);
|
|
1359
|
+
});
|
|
1360
|
+
|
|
1361
|
+
it('should send proper payload for #retryGeneratedAnswer', async () => {
|
|
1362
|
+
const expectedMetadata = {
|
|
1363
|
+
...expectedBaseCaseMetadata,
|
|
1364
|
+
};
|
|
1365
|
+
|
|
1366
|
+
await client.logRetryGeneratedAnswer(baseCaseMetadata);
|
|
1367
|
+
expectMatchPayload(SearchPageEvents.retryGeneratedAnswer, expectedMetadata);
|
|
1368
|
+
});
|
|
1369
|
+
|
|
1370
|
+
it('should send proper payload for #generatedAnswerStreamEnd', async () => {
|
|
1371
|
+
const exampleGeneratedAnswerMetadata = {
|
|
1372
|
+
generativeQuestionAnsweringId: '123',
|
|
1373
|
+
answerGenerated: true,
|
|
1374
|
+
};
|
|
1375
|
+
const expectedMetadata = {
|
|
1376
|
+
...exampleGeneratedAnswerMetadata,
|
|
1377
|
+
...expectedBaseCaseMetadata,
|
|
1378
|
+
};
|
|
1379
|
+
|
|
1380
|
+
await client.logGeneratedAnswerStreamEnd(exampleGeneratedAnswerMetadata, baseCaseMetadata);
|
|
1381
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerStreamEnd, expectedMetadata);
|
|
1382
|
+
});
|
|
1122
1383
|
});
|
|
1123
1384
|
|
|
1124
1385
|
it('should enable analytics tracking by default', () => {
|
|
@@ -6,6 +6,12 @@ import {
|
|
|
6
6
|
CustomEventsTypes,
|
|
7
7
|
DocumentIdentifier,
|
|
8
8
|
FacetStateMetadata,
|
|
9
|
+
GeneratedAnswerBaseMeta,
|
|
10
|
+
GeneratedAnswerCitationMeta,
|
|
11
|
+
GeneratedAnswerFeedbackMeta,
|
|
12
|
+
GeneratedAnswerRephraseMeta,
|
|
13
|
+
GeneratedAnswerSourceHoverMeta,
|
|
14
|
+
GeneratedAnswerStreamEndMeta,
|
|
9
15
|
PartialDocumentInformation,
|
|
10
16
|
SearchPageEvents,
|
|
11
17
|
SmartSnippetDocumentIdentifier,
|
|
@@ -43,6 +49,7 @@ export interface InsightClientProvider {
|
|
|
43
49
|
getLanguage: () => string;
|
|
44
50
|
getIsAnonymous: () => boolean;
|
|
45
51
|
getFacetState?: () => FacetStateMetadata[];
|
|
52
|
+
getGeneratedAnswerMetadata?: () => Record<string, any>;
|
|
46
53
|
}
|
|
47
54
|
|
|
48
55
|
export interface InsightClientOptions extends ClientOptions {
|
|
@@ -476,6 +483,121 @@ export class CoveoInsightClient {
|
|
|
476
483
|
);
|
|
477
484
|
}
|
|
478
485
|
|
|
486
|
+
public logLikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
|
|
487
|
+
return this.logCustomEvent(
|
|
488
|
+
SearchPageEvents.likeGeneratedAnswer,
|
|
489
|
+
metadata
|
|
490
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
|
|
491
|
+
: generatedAnswerMetadata
|
|
492
|
+
);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
public logDislikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
|
|
496
|
+
return this.logCustomEvent(
|
|
497
|
+
SearchPageEvents.dislikeGeneratedAnswer,
|
|
498
|
+
metadata
|
|
499
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
|
|
500
|
+
: generatedAnswerMetadata
|
|
501
|
+
);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
public logOpenGeneratedAnswerSource(
|
|
505
|
+
generatedAnswerSourceMetadata: GeneratedAnswerCitationMeta,
|
|
506
|
+
metadata?: CaseMetadata
|
|
507
|
+
) {
|
|
508
|
+
return this.logCustomEvent(
|
|
509
|
+
SearchPageEvents.openGeneratedAnswerSource,
|
|
510
|
+
metadata
|
|
511
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerSourceMetadata}
|
|
512
|
+
: generatedAnswerSourceMetadata
|
|
513
|
+
);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
public logGeneratedAnswerSourceHover(
|
|
517
|
+
generatedAnswerSourceMetadata: GeneratedAnswerSourceHoverMeta,
|
|
518
|
+
metadata?: CaseMetadata
|
|
519
|
+
) {
|
|
520
|
+
return this.logCustomEvent(
|
|
521
|
+
SearchPageEvents.generatedAnswerSourceHover,
|
|
522
|
+
metadata
|
|
523
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerSourceMetadata}
|
|
524
|
+
: generatedAnswerSourceMetadata
|
|
525
|
+
);
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
public logGeneratedAnswerCopyToClipboard(
|
|
529
|
+
generatedAnswerMetadata: GeneratedAnswerBaseMeta,
|
|
530
|
+
metadata?: CaseMetadata
|
|
531
|
+
) {
|
|
532
|
+
return this.logCustomEvent(
|
|
533
|
+
SearchPageEvents.generatedAnswerCopyToClipboard,
|
|
534
|
+
metadata
|
|
535
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
|
|
536
|
+
: generatedAnswerMetadata
|
|
537
|
+
);
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
public logGeneratedAnswerHideAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
|
|
541
|
+
return this.logCustomEvent(
|
|
542
|
+
SearchPageEvents.generatedAnswerHideAnswers,
|
|
543
|
+
metadata
|
|
544
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
|
|
545
|
+
: generatedAnswerMetadata
|
|
546
|
+
);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
public logGeneratedAnswerShowAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {
|
|
550
|
+
return this.logCustomEvent(
|
|
551
|
+
SearchPageEvents.generatedAnswerShowAnswers,
|
|
552
|
+
metadata
|
|
553
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}
|
|
554
|
+
: generatedAnswerMetadata
|
|
555
|
+
);
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
public logGeneratedAnswerFeedbackSubmit(
|
|
559
|
+
generatedAnswerFeedbackMetadata: GeneratedAnswerFeedbackMeta,
|
|
560
|
+
metadata?: CaseMetadata
|
|
561
|
+
) {
|
|
562
|
+
return this.logCustomEvent(
|
|
563
|
+
SearchPageEvents.generatedAnswerFeedbackSubmit,
|
|
564
|
+
metadata
|
|
565
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerFeedbackMetadata}
|
|
566
|
+
: generatedAnswerFeedbackMetadata
|
|
567
|
+
);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
public logRephraseGeneratedAnswer(
|
|
571
|
+
generatedAnswerRephraseMetadata: GeneratedAnswerRephraseMeta,
|
|
572
|
+
metadata?: CaseMetadata
|
|
573
|
+
) {
|
|
574
|
+
return this.logSearchEvent(
|
|
575
|
+
SearchPageEvents.rephraseGeneratedAnswer,
|
|
576
|
+
metadata
|
|
577
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerRephraseMetadata}
|
|
578
|
+
: generatedAnswerRephraseMetadata
|
|
579
|
+
);
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
public logRetryGeneratedAnswer(metadata?: CaseMetadata) {
|
|
583
|
+
return this.logSearchEvent(
|
|
584
|
+
SearchPageEvents.retryGeneratedAnswer,
|
|
585
|
+
metadata ? {...generateMetadataToSend(metadata, false)} : {}
|
|
586
|
+
);
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
public logGeneratedAnswerStreamEnd(
|
|
590
|
+
generatedAnswerStreamEndMetadata: GeneratedAnswerStreamEndMeta,
|
|
591
|
+
metadata?: CaseMetadata
|
|
592
|
+
) {
|
|
593
|
+
return this.logCustomEvent(
|
|
594
|
+
SearchPageEvents.generatedAnswerStreamEnd,
|
|
595
|
+
metadata
|
|
596
|
+
? {...generateMetadataToSend(metadata, false), ...generatedAnswerStreamEndMetadata}
|
|
597
|
+
: generatedAnswerStreamEndMetadata
|
|
598
|
+
);
|
|
599
|
+
}
|
|
600
|
+
|
|
479
601
|
public async logCustomEvent(event: SearchPageEvents | InsightEvents, metadata?: Record<string, any>) {
|
|
480
602
|
const customData = {...this.provider.getBaseMetadata(), ...metadata};
|
|
481
603
|
|
|
@@ -541,7 +663,7 @@ export class CoveoInsightClient {
|
|
|
541
663
|
metadata?: Record<string, any>
|
|
542
664
|
): Promise<SearchEventRequest> {
|
|
543
665
|
return {
|
|
544
|
-
...(await this.getBaseEventRequest(metadata)),
|
|
666
|
+
...(await this.getBaseEventRequest({...metadata, ...this.provider.getGeneratedAnswerMetadata?.()})),
|
|
545
667
|
...this.provider.getSearchEventRequestPayload(),
|
|
546
668
|
searchQueryUid: this.provider.getSearchUID(),
|
|
547
669
|
queryPipeline: this.provider.getPipeline(),
|
|
@@ -1561,26 +1561,26 @@ describe('SearchPageClient', () => {
|
|
|
1561
1561
|
expectMatchDescription(built.description, SearchPageEvents.generatedAnswerShowAnswers, meta);
|
|
1562
1562
|
});
|
|
1563
1563
|
|
|
1564
|
-
it('should send proper payload for #
|
|
1564
|
+
it('should send proper payload for #logGeneratedAnswerFeedbackSubmit', async () => {
|
|
1565
1565
|
const meta = {
|
|
1566
1566
|
generativeQuestionAnsweringId: fakeStreamId,
|
|
1567
1567
|
reason: <GeneratedAnswerFeedbackReason>'other',
|
|
1568
1568
|
details: 'a few additional details',
|
|
1569
1569
|
};
|
|
1570
|
-
await client.
|
|
1571
|
-
expectMatchCustomEventPayload(SearchPageEvents.
|
|
1570
|
+
await client.logGeneratedAnswerFeedbackSubmit(meta);
|
|
1571
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerFeedbackSubmit, meta);
|
|
1572
1572
|
});
|
|
1573
1573
|
|
|
1574
|
-
it('should send proper payload for #
|
|
1574
|
+
it('should send proper payload for #makeGeneratedAnswerFeedbackSubmit', async () => {
|
|
1575
1575
|
const meta = {
|
|
1576
1576
|
generativeQuestionAnsweringId: fakeStreamId,
|
|
1577
1577
|
reason: <GeneratedAnswerFeedbackReason>'other',
|
|
1578
1578
|
details: 'a few additional details',
|
|
1579
1579
|
};
|
|
1580
|
-
const built = await client.
|
|
1580
|
+
const built = await client.makeGeneratedAnswerFeedbackSubmit(meta);
|
|
1581
1581
|
await built.log({searchUID: provider.getSearchUID()});
|
|
1582
|
-
expectMatchCustomEventPayload(SearchPageEvents.
|
|
1583
|
-
expectMatchDescription(built.description, SearchPageEvents.
|
|
1582
|
+
expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerFeedbackSubmit, meta);
|
|
1583
|
+
expectMatchDescription(built.description, SearchPageEvents.generatedAnswerFeedbackSubmit, meta);
|
|
1584
1584
|
});
|
|
1585
1585
|
|
|
1586
1586
|
it('should send proper payload for #logRephraseGeneratedAnswer', async () => {
|
|
@@ -955,12 +955,12 @@ export class CoveoSearchPageClient {
|
|
|
955
955
|
});
|
|
956
956
|
}
|
|
957
957
|
|
|
958
|
-
public
|
|
959
|
-
return this.makeCustomEvent(SearchPageEvents.
|
|
958
|
+
public makeGeneratedAnswerFeedbackSubmit(meta: GeneratedAnswerFeedbackMeta) {
|
|
959
|
+
return this.makeCustomEvent(SearchPageEvents.generatedAnswerFeedbackSubmit, meta);
|
|
960
960
|
}
|
|
961
961
|
|
|
962
|
-
public async
|
|
963
|
-
return (await this.
|
|
962
|
+
public async logGeneratedAnswerFeedbackSubmit(meta: GeneratedAnswerFeedbackMeta) {
|
|
963
|
+
return (await this.makeGeneratedAnswerFeedbackSubmit(meta)).log({
|
|
964
964
|
searchUID: this.provider.getSearchUID(),
|
|
965
965
|
});
|
|
966
966
|
}
|
|
@@ -333,7 +333,7 @@ export enum SearchPageEvents {
|
|
|
333
333
|
/**
|
|
334
334
|
* Identifies the custom event that gets logged when a user submits a feedback of a generated answer.
|
|
335
335
|
*/
|
|
336
|
-
|
|
336
|
+
generatedAnswerFeedbackSubmit = 'generatedAnswerFeedbackSubmit',
|
|
337
337
|
/**
|
|
338
338
|
* Identifies the search event that gets logged when a user clicks the rephrase button in a generated answer.
|
|
339
339
|
*/
|
|
@@ -388,7 +388,7 @@ export const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents,
|
|
|
388
388
|
[SearchPageEvents.generatedAnswerCopyToClipboard]: 'generatedAnswer',
|
|
389
389
|
[SearchPageEvents.generatedAnswerHideAnswers]: 'generatedAnswer',
|
|
390
390
|
[SearchPageEvents.generatedAnswerShowAnswers]: 'generatedAnswer',
|
|
391
|
-
[SearchPageEvents.
|
|
391
|
+
[SearchPageEvents.generatedAnswerFeedbackSubmit]: 'generatedAnswer',
|
|
392
392
|
};
|
|
393
393
|
|
|
394
394
|
export interface StaticFilterMetadata {
|