@schibsted/pulse-sdk 8.0.0-rc.6 → 8.0.0-rc.7
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/cjs/Tracker.js +89 -26
- package/dist/cjs/tracker-proxy/consts.js +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/visibility-observer/index.js +9 -7
- package/dist/cjs/wrapper/types/event.js +5 -0
- package/dist/ejs/Tracker.js +90 -27
- package/dist/ejs/tracker-proxy/consts.js +1 -0
- package/dist/ejs/version.js +1 -1
- package/dist/ejs/visibility-observer/index.js +9 -7
- package/dist/ejs/wrapper/types/event.js +4 -1
- package/dist/types/Tracker.d.ts +39 -3
- package/dist/types/tracker-proxy/consts.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/visibility-observer/index.d.ts +6 -1
- package/dist/types/wrapper/types/event.d.ts +3 -1
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/builders.js +5 -1
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/guards.js +7 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/cjs/index.js +3 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/builders.js +5 -2
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/guards.js +4 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/ejs/index.js +1 -0
- package/node_modules/@schibsted/tpaas-event-builder/dist/index.d.ts +782 -164
- package/node_modules/@schibsted/tpaas-event-builder/package.json +1 -1
- package/node_modules/@schibsted/tpaas-schemas/dist/cjs/constants.js +66 -57
- package/node_modules/@schibsted/tpaas-schemas/dist/ejs/constants.js +64 -55
- package/node_modules/@schibsted/tpaas-schemas/dist/index.d.ts +836 -219
- package/package.json +5 -5
package/dist/types/Tracker.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AdvertisingIdentifiers, type AdvertisingVendor } from '@schibsted/pulse-cis-sync';
|
|
2
2
|
import { getCommonBuildersOutput, type InputParams } from '@schibsted/tpaas-event-builder';
|
|
3
|
-
import { type IAnonymousViewUIElement, type ICompletedHealthAction, type IEngagementAudio, type IEngagementForm, type IEngagementHealthUIElement, type IEngagementOffer, type IEngagementTeaser, type IEngagementUIElement, type IEngagementVideo, type IEngagementVideoAd, type IEngagementWidget, type IImpressionForm, type IImpressionHealthUIElement, type IImpressionOffer, type IImpressionPlayer, type IImpressionTeaser, type IImpressionUIElement, type IImpressionWidget, type ILeave, type ILeaveArticle, type ILeaveAudioPage, type ILeaveError, type ILeaveFrontpage, type ILeaveLandingpage, type ILeaveListing, type ILeaveLockedArticle, type ILeaveLockedAudioPage, type ILeaveLockedVideoPage, type ILeavePage, type ILeaveSportsPage, type ILeaveVideoPage, type ILeaveWeather, type ITpaasEvent, type IViewArticle, type IViewAudioPage, type IViewError, type IViewFrontpage, type IViewHealthPage, type IViewLandingpage, type IViewListing, type IViewLockedArticle, type IViewLockedAudioPage, type IViewLockedVideoPage, type IViewPage, type IViewSportsPage, type IViewTitle, type IViewVideoPage, type IViewWeather } from '@schibsted/tpaas-schemas';
|
|
3
|
+
import { type IAnonymousViewUIElement, type ICompletedHealthAction, type IEngagementAudio, type IEngagementForm, type IEngagementHealthUIElement, type IEngagementOffer, type IEngagementTeaser, type IEngagementUIElement, type IEngagementVideo, type IEngagementVideoAd, type IEngagementWidget, type IImpressionAdSlot, type IImpressionForm, type IImpressionHealthUIElement, type IImpressionOffer, type IImpressionPlayer, type IImpressionTeaser, type IImpressionUIElement, type IImpressionWidget, type ILeave, type ILeaveArticle, type ILeaveAudioPage, type ILeaveError, type ILeaveFrontpage, type ILeaveLandingpage, type ILeaveListing, type ILeaveLockedArticle, type ILeaveLockedAudioPage, type ILeaveLockedVideoPage, type ILeavePage, type ILeaveSportsPage, type ILeaveVideoPage, type ILeaveWeather, type ITpaasEvent, type IViewArticle, type IViewAudioPage, type IViewError, type IViewFrontpage, type IViewHealthPage, type IViewLandingpage, type IViewListing, type IViewLockedArticle, type IViewLockedAudioPage, type IViewLockedVideoPage, type IViewPage, type IViewSportsPage, type IViewTitle, type IViewVideoPage, type IViewWeather } from '@schibsted/tpaas-schemas';
|
|
4
4
|
import logger from 'loglevel';
|
|
5
5
|
import type { ActorInput, Consents, ConsentsInput, DeviceInput, LocationInput, ObjectInput, OriginInput, ProviderInput, TrackerInput } from './builders';
|
|
6
6
|
import { engagementEvent, identityEvent, routableEvent, trackerEvent } from './builders/events';
|
|
@@ -9,8 +9,9 @@ import type { Deferred, ResolvedInput } from './defer';
|
|
|
9
9
|
import { type Listener } from './EventBus/EventBus';
|
|
10
10
|
import type { LeaveEvent, LeaveEventBuilder, LeaveEventOptions } from './leaveTracking/types';
|
|
11
11
|
import type { AnonymousEventInputTypesByTrackingMethod, EventInput, EventInputTypesByTrackingMethod, TrackViewEventOptions } from './types';
|
|
12
|
+
import { type ObserverOptions } from './visibility-observer';
|
|
12
13
|
import type { ClickUIElementInputProperties } from './wrapper/engagement/ui-element/types';
|
|
13
|
-
import type
|
|
14
|
+
import { type BaseEventExperiment } from './wrapper/types';
|
|
14
15
|
import type { ViewArticleInputProperties } from './wrapper/view/article/types';
|
|
15
16
|
import type { ViewFrontpageInputProperties } from './wrapper/view/frontpage/types';
|
|
16
17
|
import type { ViewListingInputProperties } from './wrapper/view/listing/types';
|
|
@@ -273,8 +274,16 @@ export default class Tracker {
|
|
|
273
274
|
private bookmark;
|
|
274
275
|
private legacyVisibilityObservers;
|
|
275
276
|
private visibilityObservers;
|
|
276
|
-
|
|
277
|
+
/**
|
|
278
|
+
* @private
|
|
279
|
+
*
|
|
280
|
+
* This is used as the source of truth for the current page's information, which is updated based on the View Page-level event
|
|
281
|
+
* As a single source of truth for the current page, this needs to be compatible between legacy and TPaaS events, hence the need for a custom data type.
|
|
282
|
+
* Legacy events can provide an id with SDRN, while TPaaS events don't need it
|
|
283
|
+
*/
|
|
277
284
|
private currentPage;
|
|
285
|
+
private getCurrentTpaasPage;
|
|
286
|
+
private getCurrentLegacyPage;
|
|
278
287
|
/**
|
|
279
288
|
* Promise that resolves when a session ID becomes available
|
|
280
289
|
* @private
|
|
@@ -460,6 +469,28 @@ export default class Tracker {
|
|
|
460
469
|
* @category Tracking
|
|
461
470
|
*/
|
|
462
471
|
addUIElementVisibilityTracking(selector: string, buildEventFromElement: (element: HTMLElement) => InputParams<IImpressionUIElement>): void;
|
|
472
|
+
/**
|
|
473
|
+
* The `addElementVisibilityObserver` function provides an interface for executing arbitrary code when specific DOM Elements become visible within the viewport.
|
|
474
|
+
* It is built on the `VisibilityObserver` class, which efficiently detects visibility changes in DOM elements.
|
|
475
|
+
* When an element becomes at least 2/3 visible, a callback is triggered, with the Element that invoked the callback call as argument.
|
|
476
|
+
* It leverages the [Intersection Observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) for viewport tracking
|
|
477
|
+
* and the [Mutation Observer API](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) to monitor lazy-loaded elements.
|
|
478
|
+
*
|
|
479
|
+
* Example usage:
|
|
480
|
+
*
|
|
481
|
+
* ```ts
|
|
482
|
+
* tracker.addElementVisibilityObserver('[data-pulse-entity-id]', (element) => {
|
|
483
|
+
* const eventInput = parseElementIntoEventInput(element); // user-defined function
|
|
484
|
+
* tracker.trackImpressionTeaser(eventInput); // can be anything actually, not necessarily a Teaser tracking call
|
|
485
|
+
* });
|
|
486
|
+
* ```
|
|
487
|
+
* @param selector
|
|
488
|
+
* @param callback
|
|
489
|
+
* @param options {ObserverOptions}
|
|
490
|
+
* @param options.threshold - A number between 0 and 1 indicating how much of the element should be visible to trigger
|
|
491
|
+
* the callback. Default is 0.67 (2/3 of the element).
|
|
492
|
+
*/
|
|
493
|
+
addElementVisibilityObserver(selector: string, callback: (element: HTMLElement) => void, options?: ObserverOptions): void;
|
|
463
494
|
private setPageDefaults;
|
|
464
495
|
/**
|
|
465
496
|
* The old trackViewArticle method from the Media Wrapper.
|
|
@@ -625,6 +656,11 @@ export default class Tracker {
|
|
|
625
656
|
* @category TPaaS Tracking
|
|
626
657
|
*/
|
|
627
658
|
trackViewError(input: InputParams<IViewError>, options: TrackViewEventOptions<IViewError>): Promise<unknown>;
|
|
659
|
+
/**
|
|
660
|
+
* @param input
|
|
661
|
+
* @category TPaaS Tracking
|
|
662
|
+
*/
|
|
663
|
+
trackImpressionAdSlot(input: InputParams<IImpressionAdSlot>): Promise<unknown>;
|
|
628
664
|
/**
|
|
629
665
|
* @param input
|
|
630
666
|
* @category TPaaS Tracking
|
|
@@ -17,7 +17,7 @@ export declare const MESSAGE_TYPE_INVOKE = "pulse-tracker-proxy:invoke";
|
|
|
17
17
|
export declare const MESSAGE_TYPE_RETURN = "pulse-tracker-proxy:return";
|
|
18
18
|
export declare const MESSAGE_TYPE_RETURN_ERROR = "pulse-tracker-proxy:return-error";
|
|
19
19
|
export declare const ALLOWED_METHODS: readonly ["track"];
|
|
20
|
-
export declare const TPAAS_ALLOWED_METHODS: readonly ["trackAnonymousViewUIElement", "trackEngagementAudio", "trackEngagementForm", "trackEngagementHealthUIElement", "trackEngagementOffer", "trackEngagementTeaser", "trackEngagementUIElement", "trackEngagementVideo", "trackEngagementVideoAd", "trackEngagementWidget", "trackCompletedHealthAction", "trackImpressionForm", "trackImpressionHealthUIElement", "trackImpressionOffer", "trackImpressionPlayer", "trackImpressionTeaser", "trackImpressionUIElement", "trackImpressionWidget", "trackLeaveArticle", "trackLeaveAudioPage", "trackLeaveError", "trackLeaveFrontpage", "trackLeaveLandingpage", "trackLeaveListing", "trackLeaveLockedArticle", "trackLeaveLockedAudioPage", "trackLeaveLockedVideoPage", "trackLeavePage", "trackLeaveSportsPage", "trackLeaveVideoPage", "trackLeaveWeather", "trackViewArticle", "trackViewAudioPage", "trackViewError", "trackViewFrontpage", "trackViewHealthPage", "trackViewLandingpage", "trackViewListing", "trackViewLockedArticle", "trackViewLockedAudioPage", "trackViewLockedVideoPage", "trackViewPage", "trackViewSportsPage", "trackViewTitle", "trackViewVideoPage", "trackViewWeather", "trackLegacyViewArticle", "trackLegacyViewLoginPoster", "trackLegacyViewSalesPoster", "trackLegacyViewListing", "trackLegacyViewFrontpage", "trackLegacyViewPage", "trackLegacyViewUIElement", "trackLegacyClickUIElement"];
|
|
20
|
+
export declare const TPAAS_ALLOWED_METHODS: readonly ["trackAnonymousViewUIElement", "trackEngagementAudio", "trackEngagementForm", "trackEngagementHealthUIElement", "trackEngagementOffer", "trackEngagementTeaser", "trackEngagementUIElement", "trackEngagementVideo", "trackEngagementVideoAd", "trackEngagementWidget", "trackCompletedHealthAction", "trackImpressionAdSlot", "trackImpressionForm", "trackImpressionHealthUIElement", "trackImpressionOffer", "trackImpressionPlayer", "trackImpressionTeaser", "trackImpressionUIElement", "trackImpressionWidget", "trackLeaveArticle", "trackLeaveAudioPage", "trackLeaveError", "trackLeaveFrontpage", "trackLeaveLandingpage", "trackLeaveListing", "trackLeaveLockedArticle", "trackLeaveLockedAudioPage", "trackLeaveLockedVideoPage", "trackLeavePage", "trackLeaveSportsPage", "trackLeaveVideoPage", "trackLeaveWeather", "trackViewArticle", "trackViewAudioPage", "trackViewError", "trackViewFrontpage", "trackViewHealthPage", "trackViewLandingpage", "trackViewListing", "trackViewLockedArticle", "trackViewLockedAudioPage", "trackViewLockedVideoPage", "trackViewPage", "trackViewSportsPage", "trackViewTitle", "trackViewVideoPage", "trackViewWeather", "trackLegacyViewArticle", "trackLegacyViewLoginPoster", "trackLegacyViewSalesPoster", "trackLegacyViewListing", "trackLegacyViewFrontpage", "trackLegacyViewPage", "trackLegacyViewUIElement", "trackLegacyClickUIElement"];
|
|
21
21
|
export declare function isPulseProxyMessage(message: unknown): message is Message;
|
|
22
22
|
export type TrackInvocation = {
|
|
23
23
|
method: 'track';
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "8.0.0-rc.
|
|
1
|
+
export declare const SDK_VERSION = "8.0.0-rc.7";
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
type ComponentViewCallback = (node: HTMLElement) => void;
|
|
2
|
+
export interface ObserverOptions {
|
|
3
|
+
threshold?: number;
|
|
4
|
+
}
|
|
2
5
|
/**
|
|
3
6
|
* Observes visibility of elements matching a selector using MutationObserver and IntersectionObserver.
|
|
4
7
|
*/
|
|
@@ -16,9 +19,11 @@ export declare class VisibilityObserver {
|
|
|
16
19
|
* Uses {@link https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver | MutationObserver} to monitor the DOM for dynamically loaded content.
|
|
17
20
|
* Callback is invoked only once per element.
|
|
18
21
|
* @param selector The CSS selector for elements to track.
|
|
22
|
+
* @param options {ObserverOptions} Optional configuration for the observer.
|
|
23
|
+
* @param options.threshold Which ratio triggers the Observer callback.
|
|
19
24
|
* @throws Error if called more than once.
|
|
20
25
|
*/
|
|
21
|
-
observe(selector: string): void;
|
|
26
|
+
observe(selector: string, { threshold }: ObserverOptions): void;
|
|
22
27
|
/**
|
|
23
28
|
* @returns {HTMLElement[]} An array of elements that match the selector in the document.
|
|
24
29
|
*/
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
type NavigationType = 'navigation' | 'alternative' | 'refresh' | 'unknown';
|
|
2
|
-
|
|
2
|
+
declare const LEGACY_PAGE_TYPE_VALUES: readonly ["Article", "Listing", "Frontpage", "SalesPoster", "Page", "LoginPoster"];
|
|
3
|
+
export declare function isLegacyPageType(value: string): value is PageType;
|
|
4
|
+
type PageType = (typeof LEGACY_PAGE_TYPE_VALUES)[number];
|
|
3
5
|
type TargetCategory = 'Article' | 'Audio' | 'Video' | 'Weather' | 'Title' | 'other';
|
|
4
6
|
type TargetType = 'Article' | 'ArticleReference' | 'ExternalContent';
|
|
5
7
|
type SalesPosterType = 'Ip' | 'Login' | 'Paid' | 'Meter' | 'Personalised';
|
|
@@ -41,6 +41,7 @@ exports.buildCompletedHealthActionEvent = buildCompletedHealthActionEvent;
|
|
|
41
41
|
exports.buildEngagementHealthUIElementEvent = buildEngagementHealthUIElementEvent;
|
|
42
42
|
exports.buildViewHealthPageEvent = buildViewHealthPageEvent;
|
|
43
43
|
exports.buildImpressionHealthUIElementEvent = buildImpressionHealthUIElementEvent;
|
|
44
|
+
exports.buildImpressionAdSlotEvent = buildImpressionAdSlotEvent;
|
|
44
45
|
exports.buildImpressionFormEvent = buildImpressionFormEvent;
|
|
45
46
|
exports.buildImpressionOfferEvent = buildImpressionOfferEvent;
|
|
46
47
|
exports.buildImpressionPlayerEvent = buildImpressionPlayerEvent;
|
|
@@ -192,7 +193,7 @@ function buildLeaveVideoPageEvent(input, dependencies) {
|
|
|
192
193
|
function buildLeaveWeatherEvent(input, dependencies) {
|
|
193
194
|
const createdAt = new Date();
|
|
194
195
|
const { autoTrackerVersion, isHybrid, version, providerId, user, experiments } = dependencies;
|
|
195
|
-
return (0, ts_deepmerge_1.merge)(input, tpaas_schemas_1.LeaveWeather, (0, time_1.builder)(createdAt), (0, trackerBuilder_1.builder)(autoTrackerVersion, isHybrid, version), (0, baseEvent_1.builder)(), (0, provider_1.builder)(providerId), (0, user_1.builder)(user), (0, experiments_1.builder)(experiments, input.experiments), (0, consents_1.builder)(dependencies.consents), (0, device_1.builder)(dependencies.environmentId, dependencies.jwe), (0, catalogVersion_1.builder)());
|
|
196
|
+
return (0, ts_deepmerge_1.merge)(normalizePageInput(input), tpaas_schemas_1.LeaveWeather, (0, time_1.builder)(createdAt), (0, trackerBuilder_1.builder)(autoTrackerVersion, isHybrid, version), (0, baseEvent_1.builder)(), (0, provider_1.builder)(providerId), (0, user_1.builder)(user), (0, experiments_1.builder)(experiments, input.experiments), (0, consents_1.builder)(dependencies.consents), (0, device_1.builder)(dependencies.environmentId, dependencies.jwe), (0, catalogVersion_1.builder)(), (0, navigationType_1.builder)(input.page?.navigationType), (0, pageviewId_1.builder)(dependencies.pageviewId), (0, pageInfo_1.builder)(dependencies.currentPage));
|
|
196
197
|
}
|
|
197
198
|
// #endregion
|
|
198
199
|
// #region Engagement Event Builders
|
|
@@ -236,6 +237,9 @@ function buildImpressionHealthUIElementEvent(input, dependencies) {
|
|
|
236
237
|
}
|
|
237
238
|
// #endregion
|
|
238
239
|
// #region Impression Event Builders
|
|
240
|
+
function buildImpressionAdSlotEvent(input, dependencies) {
|
|
241
|
+
return (0, ts_deepmerge_1.merge)(normalizePageInput(input), tpaas_schemas_1.ImpressionAdSlot, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
|
|
242
|
+
}
|
|
239
243
|
function buildImpressionFormEvent(input, dependencies) {
|
|
240
244
|
return (0, ts_deepmerge_1.merge)(normalizePageInput(input), tpaas_schemas_1.ImpressionForm, (0, exports.getCommonBuildersOutput)(new Date(), dependencies), (0, experiments_1.builder)(dependencies.experiments, input.experiments));
|
|
241
245
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPageType = isPageType;
|
|
4
|
+
const tpaas_schemas_1 = require("@schibsted/tpaas-schemas");
|
|
5
|
+
function isPageType(pageType) {
|
|
6
|
+
return tpaas_schemas_1.PAGE_TYPE_VALUES.some((val) => val === pageType);
|
|
7
|
+
}
|
|
@@ -14,4 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.isPageType = void 0;
|
|
17
18
|
__exportStar(require("./builders"), exports);
|
|
19
|
+
var guards_1 = require("./guards");
|
|
20
|
+
Object.defineProperty(exports, "isPageType", { enumerable: true, get: function () { return guards_1.isPageType; } });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnonymousViewUIElement, CompletedHealthAction, EngagementAudio, EngagementForm, EngagementHealthUIElement, EngagementOffer, EngagementTeaser, EngagementUIElement, EngagementVideo, EngagementVideoAd, EngagementWidget, ImpressionForm, ImpressionHealthUIElement, ImpressionOffer, ImpressionPlayer, ImpressionTeaser, ImpressionUIElement, ImpressionWidget, LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudioPage, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewAudioPage, ViewError, ViewFrontpage, ViewHealthPage, ViewLandingpage, ViewListing, ViewLockedArticle, ViewLockedAudioPage, ViewLockedVideoPage, ViewPage, ViewSportsPage, ViewTitle, ViewVideoPage, ViewWeather, } from '@schibsted/tpaas-schemas';
|
|
1
|
+
import { AnonymousViewUIElement, CompletedHealthAction, EngagementAudio, EngagementForm, EngagementHealthUIElement, EngagementOffer, EngagementTeaser, EngagementUIElement, EngagementVideo, EngagementVideoAd, EngagementWidget, ImpressionAdSlot, ImpressionForm, ImpressionHealthUIElement, ImpressionOffer, ImpressionPlayer, ImpressionTeaser, ImpressionUIElement, ImpressionWidget, LeaveArticle, LeaveAudioPage, LeaveError, LeaveFrontpage, LeaveLandingpage, LeaveListing, LeaveLockedArticle, LeaveLockedAudioPage, LeaveLockedVideoPage, LeavePage, LeaveSportsPage, LeaveVideoPage, LeaveWeather, ViewArticle, ViewAudioPage, ViewError, ViewFrontpage, ViewHealthPage, ViewLandingpage, ViewListing, ViewLockedArticle, ViewLockedAudioPage, ViewLockedVideoPage, ViewPage, ViewSportsPage, ViewTitle, ViewVideoPage, ViewWeather, } from '@schibsted/tpaas-schemas';
|
|
2
2
|
import { merge } from 'ts-deepmerge';
|
|
3
3
|
import { builder as anonymousBuilder } from './builders/anonymous';
|
|
4
4
|
import { builder as baseEventBuilder } from './builders/baseEvent';
|
|
@@ -142,7 +142,7 @@ export function buildLeaveVideoPageEvent(input, dependencies) {
|
|
|
142
142
|
export function buildLeaveWeatherEvent(input, dependencies) {
|
|
143
143
|
const createdAt = new Date();
|
|
144
144
|
const { autoTrackerVersion, isHybrid, version, providerId, user, experiments } = dependencies;
|
|
145
|
-
return merge(input, LeaveWeather, timeBuilder(createdAt), trackerBuilder(autoTrackerVersion, isHybrid, version), baseEventBuilder(), providerBuilder(providerId), userBuilder(user), experimentsBuilder(experiments, input.experiments), consentsBuilder(dependencies.consents), deviceBuilder(dependencies.environmentId, dependencies.jwe), catalogVersionBuilder());
|
|
145
|
+
return merge(normalizePageInput(input), LeaveWeather, timeBuilder(createdAt), trackerBuilder(autoTrackerVersion, isHybrid, version), baseEventBuilder(), providerBuilder(providerId), userBuilder(user), experimentsBuilder(experiments, input.experiments), consentsBuilder(dependencies.consents), deviceBuilder(dependencies.environmentId, dependencies.jwe), catalogVersionBuilder(), navigationTypeBuilder(input.page?.navigationType), pageviewIdBuilder(dependencies.pageviewId), pageInfoBuilder(dependencies.currentPage));
|
|
146
146
|
}
|
|
147
147
|
// #endregion
|
|
148
148
|
// #region Engagement Event Builders
|
|
@@ -186,6 +186,9 @@ export function buildImpressionHealthUIElementEvent(input, dependencies) {
|
|
|
186
186
|
}
|
|
187
187
|
// #endregion
|
|
188
188
|
// #region Impression Event Builders
|
|
189
|
+
export function buildImpressionAdSlotEvent(input, dependencies) {
|
|
190
|
+
return merge(normalizePageInput(input), ImpressionAdSlot, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
|
|
191
|
+
}
|
|
189
192
|
export function buildImpressionFormEvent(input, dependencies) {
|
|
190
193
|
return merge(normalizePageInput(input), ImpressionForm, getCommonBuildersOutput(new Date(), dependencies), experimentsBuilder(dependencies.experiments, input.experiments));
|
|
191
194
|
}
|