@surfside/ads-core 2.0.17 → 2.0.18

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.
Files changed (50) hide show
  1. package/lib/cjs/Api.js +11 -7
  2. package/lib/cjs/Api.js.map +1 -1
  3. package/lib/cjs/BuildInfo.js +1 -1
  4. package/lib/cjs/BuildInfo.js.map +1 -1
  5. package/lib/cjs/helpers/Functions.js +8 -0
  6. package/lib/cjs/helpers/Functions.js.map +1 -0
  7. package/lib/cjs/helpers/index.js +1 -0
  8. package/lib/cjs/helpers/index.js.map +1 -1
  9. package/lib/cjs/helpers/response/Carousel.js +50 -37
  10. package/lib/cjs/helpers/response/Carousel.js.map +1 -1
  11. package/lib/cjs/helpers/response/ProductCard.js +51 -4
  12. package/lib/cjs/helpers/response/ProductCard.js.map +1 -1
  13. package/lib/cjs/models/retail/Configuration.js +10 -0
  14. package/lib/cjs/models/retail/Configuration.js.map +1 -1
  15. package/lib/cjs/models/rtb/NativeRequest.js +6 -1
  16. package/lib/cjs/models/rtb/NativeRequest.js.map +1 -1
  17. package/lib/cjs/services/Tracker.js +71 -0
  18. package/lib/cjs/services/Tracker.js.map +1 -0
  19. package/lib/cjs/services/index.js +1 -0
  20. package/lib/cjs/services/index.js.map +1 -1
  21. package/lib/esm/Api.js +11 -7
  22. package/lib/esm/Api.js.map +1 -1
  23. package/lib/esm/BuildInfo.js +1 -1
  24. package/lib/esm/BuildInfo.js.map +1 -1
  25. package/lib/esm/helpers/Functions.js +3 -0
  26. package/lib/esm/helpers/Functions.js.map +1 -0
  27. package/lib/esm/helpers/index.js +1 -0
  28. package/lib/esm/helpers/index.js.map +1 -1
  29. package/lib/esm/helpers/response/Carousel.js +50 -37
  30. package/lib/esm/helpers/response/Carousel.js.map +1 -1
  31. package/lib/esm/helpers/response/ProductCard.js +50 -4
  32. package/lib/esm/helpers/response/ProductCard.js.map +1 -1
  33. package/lib/esm/models/retail/Configuration.js +8 -1
  34. package/lib/esm/models/retail/Configuration.js.map +1 -1
  35. package/lib/esm/models/rtb/NativeRequest.js +6 -1
  36. package/lib/esm/models/rtb/NativeRequest.js.map +1 -1
  37. package/lib/esm/services/Tracker.js +67 -0
  38. package/lib/esm/services/Tracker.js.map +1 -0
  39. package/lib/esm/services/index.js +1 -0
  40. package/lib/esm/services/index.js.map +1 -1
  41. package/lib/types/Api.d.ts +8 -1
  42. package/lib/types/helpers/Functions.d.ts +2 -0
  43. package/lib/types/helpers/index.d.ts +1 -0
  44. package/lib/types/helpers/response/Carousel.d.ts +5 -4
  45. package/lib/types/helpers/response/ProductCard.d.ts +20 -7
  46. package/lib/types/models/retail/Configuration.d.ts +11 -1
  47. package/lib/types/models/rtb/NativeRequest.d.ts +2 -0
  48. package/lib/types/services/Tracker.d.ts +25 -0
  49. package/lib/types/services/index.d.ts +1 -0
  50. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { EventTrackingMethods, EventTypes, NativeAssetId } from '../../models';
1
+ import { DefaultProductCallbackExtras, EventTrackingMethods, EventTypes, NativeAssetId } from '../../models';
2
2
  import { Ctx, Err, Ok, TryDo } from '../../services';
3
3
  import { ConsumeAllAsync, GenerateArray } from '../Generator';
4
4
  import { TryGet } from '../TryGet';
@@ -6,8 +6,6 @@ import { MissingAdmError } from './BuiltResponse';
6
6
  import { BuildClickthroughUrl } from './Clickthrough';
7
7
  ;
8
8
  ;
9
- ;
10
- ;
11
9
  export const BuildAllSponsoredProductCardResponses = async (logger, getAllSponsoredProducts, getAllSponsoredBrandProducts, windowInfo, configuration, bids) => {
12
10
  const log = Ctx(logger)?.with('BuildProductCardResponse');
13
11
  log?.info('Building product card responses');
@@ -67,7 +65,42 @@ const getTrackers = (logger, bid, native) => {
67
65
  type: tracker.method,
68
66
  url: tracker.url
69
67
  })) ?? [];
70
- return Ok({ win, imp, others });
68
+ const eventNames = Object.entries(EventTypes).reduce((acc, [key, value]) => {
69
+ acc[value] = key[0].toLowerCase() + key.substring(1); // camelCase
70
+ return acc;
71
+ }, {});
72
+ const namedTrackers = native.native.eventtrackers
73
+ ?.reduce((acc, tracker) => {
74
+ const { method: type, url } = tracker;
75
+ if (url === undefined) {
76
+ return acc;
77
+ }
78
+ const eventName = eventNames[tracker.event];
79
+ const key = (eventName === 'imp') ? 'impression' : (eventName ?? `event_${tracker.event}`);
80
+ acc[key] = acc[key] ?? [];
81
+ switch (type) {
82
+ case EventTrackingMethods.Img: {
83
+ acc[key].push({
84
+ type: 'pixel',
85
+ url
86
+ });
87
+ break;
88
+ }
89
+ case EventTrackingMethods.JS: {
90
+ acc[key].push({
91
+ type: 'script',
92
+ src: url
93
+ });
94
+ }
95
+ }
96
+ log?.debug('Adding named tracker', name, url);
97
+ return acc;
98
+ }, {}) ?? {};
99
+ namedTrackers['win'] = [{
100
+ type: 'pixel',
101
+ url: win
102
+ }];
103
+ return Ok({ win, imp, others, namedTrackers });
71
104
  };
72
105
  const fetchProductsFromBid = async (logger, getAllSponsoredProducts, getAllSponsoredBrandProducts, bid) => {
73
106
  try {
@@ -213,4 +246,17 @@ export class MissingProductIdError extends Error {
213
246
  this.native = native;
214
247
  }
215
248
  }
249
+ export const NamedTrackersToCallbacks = (namedTrackers) => namedTrackers === undefined
250
+ ? DefaultProductCallbackExtras()
251
+ : Object
252
+ .entries(namedTrackers)
253
+ .reduce((acc, [name, trackers]) => {
254
+ acc.trackers[name] = async () => {
255
+ await Promise.allSettled(trackers
256
+ .filter(imp => imp.type === 'callback')
257
+ .map(tracker => tracker.callback)
258
+ .map(async (callback) => await callback()));
259
+ };
260
+ return acc;
261
+ }, DefaultProductCallbackExtras());
216
262
  //# sourceMappingURL=ProductCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductCard.js","sourceRoot":"src/","sources":["helpers/response/ProductCard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductCard.js","sourceRoot":"src/","sources":["helpers/response/ProductCard.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { AsyncNothing } from '../../helpers/Functions';
1
2
  ;
2
3
  ;
3
4
  ;
@@ -5,5 +6,11 @@
5
6
  ;
6
7
  ;
7
8
  ;
8
- export {};
9
+ export const DefaultProductCallbackExtras = () => ({
10
+ trackers: {
11
+ addToCart: AsyncNothing,
12
+ imp: AsyncNothing,
13
+ click: AsyncNothing
14
+ }
15
+ });
9
16
  //# sourceMappingURL=Configuration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Configuration.js","sourceRoot":"src/","sources":["models/retail/Configuration.ts"],"names":[],"mappings":"AA+BC,CAAC;AAQD,CAAC;AASD,CAAC;AAQD,CAAC;AAWD,CAAC;AAOD,CAAC;AAOD,CAAC"}
1
+ {"version":3,"file":"Configuration.js","sourceRoot":"src/","sources":["models/retail/Configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA4CtD,CAAC;AAQD,CAAC;AASD,CAAC;AAQD,CAAC;AAWD,CAAC;AAOD,CAAC;AAOD,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAA0B,EAAE,CAAC,CAAC;IACtE,QAAQ,EAAE;QACN,SAAS,EAAE,YAAY;QACvB,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,YAAY;KACtB;CACJ,CAAC,CAAC"}
@@ -67,7 +67,12 @@ export const EventTypes = {
67
67
  Imp: 1,
68
68
  ViewableMRC50: 2,
69
69
  ViewableMRC100: 3,
70
- ViewableVIDEO50: 4
70
+ ViewableVIDEO50: 4,
71
+ /* Surfside extensions of OpenRTB Native Ads 1.2 "Event Types" */
72
+ /* Represents a full page redirect */
73
+ Click: 500,
74
+ /* Represents a dynamic "add to cart" without redirecting to the product page */
75
+ AddToCart: 501
71
76
  };
72
77
  /**
73
78
  * The context of the page for the native ad unit, i.e what type of content is being displayed
@@ -1 +1 @@
1
- {"version":3,"file":"NativeRequest.js","sourceRoot":"src/","sources":["models/rtb/NativeRequest.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;CACP,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;CACD,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,EAAE;IAEX,6BAA6B;IAC7B,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,eAAe,EAAE,GAAG;CACd,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IAER,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,eAAe,EAAE,GAAG;CACd,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,GAAG,EAAE,CAAC;IACN,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;CACJ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,CAAC;CACX,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,GAAG,EAAE,CAAC;IACN,EAAE,EAAE,CAAC;CACC,CAAC"}
1
+ {"version":3,"file":"NativeRequest.js","sourceRoot":"src/","sources":["models/rtb/NativeRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { Ctx } from './Logger';
2
+ export const InitTrackerService = (logger, accountId, siteId, locationId, channelId, windowInfo, userAgent, geo, device, userId, host) => {
3
+ const initTracker = (path, eventName) => (product) => async (context) => {
4
+ const log = Ctx(logger)?.with('recommended tracker').with(eventName);
5
+ try {
6
+ log?.info('Calling event tracker');
7
+ const url = new URL(`${windowInfo.protocol}//${host}/${path}`);
8
+ url.searchParams.set('location_id', locationId);
9
+ url.searchParams.set('item_id', product.id ?? 'undefined');
10
+ url.searchParams.set('next_type', context?.nextType ?? 'page');
11
+ url.searchParams.set('recommendation_model', context?.recommend ?? 'top-products');
12
+ url.searchParams.set('recommendation_page', String(context?.page ?? 1));
13
+ url.searchParams.set('recommendation_position_absolute', String(context?.positionAbsolute ?? 1));
14
+ url.searchParams.set('recommendation_position_relative', String(context?.positionRelative ?? 1));
15
+ url.searchParams.set('recommendation_value', String(context?.recommendationValue ?? 1));
16
+ url.searchParams.set('strategy', context?.strategy ?? 'hybrid');
17
+ url.searchParams.set('zone_id', context?.zoneId ?? 'undefined');
18
+ url.searchParams.set('account_id', accountId);
19
+ url.searchParams.set('event_name', eventName);
20
+ if (geo !== undefined) {
21
+ url.searchParams.set('geo_city', geo.city);
22
+ url.searchParams.set('geo_country', geo.country);
23
+ url.searchParams.set('geo_metro', geo.city);
24
+ url.searchParams.set('geo_region', geo.region);
25
+ url.searchParams.set('geo_utcoffset', String(geo.utcoffset));
26
+ url.searchParams.set('geo_zip', geo.zip);
27
+ url.searchParams.set('ip', geo.ip);
28
+ url.searchParams.set('lat', String(geo.coords.latitude));
29
+ url.searchParams.set('lon', String(geo.coords.longitude));
30
+ }
31
+ url.searchParams.set('isp', 'undefined');
32
+ if (device !== undefined) {
33
+ url.searchParams.set('device_type', String(device.devicetype));
34
+ url.searchParams.set('make', device.make ?? 'undefined');
35
+ url.searchParams.set('model', device.model ?? 'undefined');
36
+ url.searchParams.set('os', device.os ?? 'undefined');
37
+ url.searchParams.set('osv', device.osv ?? 'undefined');
38
+ }
39
+ url.searchParams.set('pub_bundle', windowInfo.host);
40
+ url.searchParams.set('pub_channel_id', channelId);
41
+ url.searchParams.set('pub_domain', windowInfo.host);
42
+ url.searchParams.set('pub_id', siteId);
43
+ url.searchParams.set('pub_name', windowInfo.host);
44
+ url.searchParams.set('pub_site_id', siteId);
45
+ url.searchParams.set('pub_store_id', locationId);
46
+ url.searchParams.set('pub_zone', context?.zoneId ?? 'undefined');
47
+ url.searchParams.set('ua', userAgent);
48
+ if (userId !== undefined) {
49
+ url.searchParams.set('user_id', userId ?? 'undefined');
50
+ }
51
+ const finalUrl = url.toString();
52
+ log?.debug(finalUrl);
53
+ await fetch(url);
54
+ }
55
+ catch (e) {
56
+ log?.error('Failed to call tracker. Got', e);
57
+ }
58
+ };
59
+ return {
60
+ recommended: {
61
+ getClickTracker: initTracker('rec/clk', 'click'),
62
+ getImpressionTracker: initTracker('rec/imp', 'imp'),
63
+ getAddToCartTracker: initTracker('rec/atc', 'atc')
64
+ }
65
+ };
66
+ };
67
+ //# sourceMappingURL=Tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracker.js","sourceRoot":"src/","sources":["services/Tracker.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,5 @@ export * from './Recommender';
9
9
  export * from './Memo';
10
10
  export * from './Template';
11
11
  export * from './Dynamic';
12
+ export * from './Tracker';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["services/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["services/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
@@ -6,6 +6,7 @@ import { type BuildHybridCarouselFn, type BuildHybridCarouselFromInitialBidFn, t
6
6
  import { type EvaluateClickthroughTemplateFn, type EvaluateProductCardTemplateFn } from './services/Template';
7
7
  import { type BuildDynamicZoneRequestFn, type GetDynamicZoneFn } from './services/Dynamic';
8
8
  import { type GenerateCategoriesFn } from './services/Category';
9
+ import { type InitTrackerServiceFn, type IProductTrackerService } from './services/Tracker';
9
10
  export declare const PROD_BIDDER = "//bid.surfside.io/rtb/bids/surfside";
10
11
  export declare const PROD_CONFIGURATION_SERVICE = "//r.surfside.io";
11
12
  export declare const PROD_SPONSORED_PRODUCT_FEED = "//creative.surfside.io";
@@ -48,6 +49,11 @@ export interface ISurfsideApi {
48
49
  * Generates categories for the site
49
50
  */
50
51
  generateCategories: GenerateCategoriesFn;
52
+ /**
53
+ * Creates a set of trackers from a product input. Builds a URL with all relevant info from the trackers
54
+ * and returns functions to call when the relevant events fire
55
+ */
56
+ trackers: IProductTrackerService;
51
57
  /**
52
58
  * A handlebars runtime instance, for evaluating templates
53
59
  */
@@ -145,6 +151,7 @@ export declare function InitSurfAdsCoreInternal(internalApiDto: {
145
151
  generateSponsoredProductCardResponse: GenerateSponsoredProductCardResponseFn;
146
152
  evaluateProductCardTemplate: EvaluateProductCardTemplateFn;
147
153
  evaluateClickthroughTemplate: EvaluateClickthroughTemplateFn;
154
+ initTrackerService: InitTrackerServiceFn;
148
155
  handlebars: typeof Handlebars;
149
156
  windowInfo: INativeTemplateDelegateWindow;
150
157
  screenInfo: IScreen;
@@ -158,7 +165,7 @@ export declare function InitSurfAdsCoreInternal(internalApiDto: {
158
165
  locationId: string;
159
166
  userId: string | undefined;
160
167
  }): AsyncResult<ISurfsideApi>;
161
- export declare const InitSurfAdsCoreServices: (logger: ILogger | undefined, bidderServiceUrl: string, configurationServiceUrl: string, productFeedUrl: string, recommendedProductFeedUrl: string, recommenderServiceUrl: string, dynamicZoneServiceUrl: string, windowInfo: INativeTemplateDelegateWindow, screenInfo: IScreen, navigator: INavigator, mobile: boolean, ip: string | undefined, geoProviderToken: string | undefined, accountId: string, siteId: string, channelId: string, locationId: string, userId: string | undefined) => AsyncResult<ISurfsideApi>;
168
+ export declare const InitSurfAdsCoreServices: (logger: ILogger | undefined, bidderServiceUrl: string, configurationServiceUrl: string, productFeedUrl: string, recommendedProductFeedUrl: string, recommenderServiceUrl: string, dynamicZoneServiceUrl: string, windowInfo: INativeTemplateDelegateWindow, screenInfo: IScreen, navigator: INavigator, mobile: boolean, ip: string | undefined, geoProviderToken: string | undefined, accountId: string, siteId: string, channelId: string, locationId: string, userId: string | undefined, initTrackerService?: InitTrackerServiceFn) => AsyncResult<ISurfsideApi>;
162
169
  export declare const InitSurfAdsCoreSSR: (windowInfo: INativeTemplateDelegateWindow, screen: IScreen, navigator: INavigator, mobile: boolean, ip: string, geoProviderToken: string, accountId: string, siteId: string, channelId: string, locationId: string, userId: string | undefined, logger?: ILogger) => AsyncResult<ISurfsideApi>;
163
170
  export declare const InitSurfAdsCore: (channelId: string, accountId: string, siteId: string, locationId: string, userId: string | undefined, logger?: ILogger) => AsyncResult<ISurfsideApi>;
164
171
  export declare class MissingConfigurationError extends Error {
@@ -0,0 +1,2 @@
1
+ export declare const Nothing: () => undefined;
2
+ export declare const AsyncNothing: () => Promise<undefined>;
@@ -5,3 +5,4 @@ export * from './Handlebars';
5
5
  export * from './TryGet';
6
6
  export * from './Window';
7
7
  export * from './Generator';
8
+ export * from './Functions';
@@ -1,6 +1,7 @@
1
- import type { IBid, IBidRequest } from '../../models';
1
+ import { type IBid, type IBidRequest } from '../../models';
2
2
  import { type ILogger, type NonPersonalRecommenderFn, type PersonalRecommenderFn, type RequestBidsFn, type Result } from '../../services';
3
3
  import { type EvaluateClickthroughTemplateFn } from '../../services/Template';
4
+ import { type IProductTrackerService } from '../../services/Tracker';
4
5
  import type { GenerateSponsoredProductCardResponseFn, IBuiltProductCardResponse } from './ProductCard';
5
6
  export type BuildSponsoredCarouselFn = (request: IBidRequest) => Result<IBuiltCarousel>;
6
7
  export type BuildSponsoredCarouselFromInitialBidFn = (request: IBidRequest, initialBid: IBid) => Result<IBuiltCarousel>;
@@ -42,9 +43,9 @@ export interface IPastPurchasesProductRecommender {
42
43
  export type ProductRecommender = ITopProductRecommender | IForYouProductRecommender | IPastPurchasesProductRecommender;
43
44
  export declare const BuildSponsoredCarousel: (logger: ILogger | undefined, requestBids: RequestBidsFn, generateProductCardResponse: GenerateSponsoredProductCardResponseFn, request: IBidRequest) => Result<IBuiltCarousel>;
44
45
  export declare const BuildSponsoredCarouselFromInitialBid: (logger: ILogger | undefined, requestBids: RequestBidsFn, generateProductCardResponse: GenerateSponsoredProductCardResponseFn, request: IBidRequest, initialBid: IBid) => Result<IBuiltCarousel>;
45
- export declare const BuildRecommendedCarousel: (logger: ILogger | undefined, evaluateClickthroughTemplate: EvaluateClickthroughTemplateFn, topProductGenerator: NonPersonalRecommenderFn, forYouProductGenerator: PersonalRecommenderFn, pastPurchasesProductGenerator: PersonalRecommenderFn, userId: string | undefined, recommenderType: PublicRecommenderType) => Result<IBuiltCarousel>;
46
- export declare const BuildHybridCarousel: (logger: ILogger | undefined, evaluateClickthroughTemplate: EvaluateClickthroughTemplateFn, requestBids: RequestBidsFn, generateProductCardResponse: GenerateSponsoredProductCardResponseFn, topProductGenerator: NonPersonalRecommenderFn, forYouProductGenerator: PersonalRecommenderFn, pastPurchasesProductGenerator: PersonalRecommenderFn, userId: string | undefined, recommenderType: PublicRecommenderType, request: IBidRequest) => Result<IBuiltCarousel>;
47
- export declare const BuildHybridCarouselFromInitialBid: (logger: ILogger | undefined, evaluateClickthroughTemplate: EvaluateClickthroughTemplateFn, requestBids: RequestBidsFn, generateProductCardResponse: GenerateSponsoredProductCardResponseFn, topProductGenerator: NonPersonalRecommenderFn, forYouProductGenerator: PersonalRecommenderFn, pastPurchasesProductGenerator: PersonalRecommenderFn, userId: string | undefined, recommenderType: PublicRecommenderType, request: IBidRequest, initialBid: IBid) => Result<IBuiltCarousel>;
46
+ export declare const BuildRecommendedCarousel: (logger: ILogger | undefined, evaluateClickthroughTemplate: EvaluateClickthroughTemplateFn, topProductGenerator: NonPersonalRecommenderFn, forYouProductGenerator: PersonalRecommenderFn, pastPurchasesProductGenerator: PersonalRecommenderFn, userId: string | undefined, trackers: IProductTrackerService, recommenderType: PublicRecommenderType) => Result<IBuiltCarousel>;
47
+ export declare const BuildHybridCarousel: (logger: ILogger | undefined, evaluateClickthroughTemplate: EvaluateClickthroughTemplateFn, requestBids: RequestBidsFn, generateProductCardResponse: GenerateSponsoredProductCardResponseFn, topProductGenerator: NonPersonalRecommenderFn, forYouProductGenerator: PersonalRecommenderFn, pastPurchasesProductGenerator: PersonalRecommenderFn, userId: string | undefined, trackers: IProductTrackerService, recommenderType: PublicRecommenderType, request: IBidRequest) => Result<IBuiltCarousel>;
48
+ export declare const BuildHybridCarouselFromInitialBid: (logger: ILogger | undefined, evaluateClickthroughTemplate: EvaluateClickthroughTemplateFn, requestBids: RequestBidsFn, generateProductCardResponse: GenerateSponsoredProductCardResponseFn, topProductGenerator: NonPersonalRecommenderFn, forYouProductGenerator: PersonalRecommenderFn, pastPurchasesProductGenerator: PersonalRecommenderFn, userId: string | undefined, trackers: IProductTrackerService, recommenderType: PublicRecommenderType, request: IBidRequest, initialBid: IBid) => Result<IBuiltCarousel>;
48
49
  export declare class InvalidRecommenderTypeError extends Error {
49
50
  type: string;
50
51
  constructor(type: string);
@@ -1,22 +1,34 @@
1
- import { type IBid, type ICompiledPublisherConfiguration, type INativeResponse, type INativeTemplateDelegateWindow, type IProductInformation } from '../../models';
1
+ import { type IBid, type ICompiledPublisherConfiguration, type INativeResponse, type INativeTemplateDelegateWindow, type IProductInformation, type ProductCallbackExtras } from '../../models';
2
2
  import { type AsyncResult, type GetAllSponsoredProductFromNativeIdFn, type ILogger } from '../../services';
3
+ import { type ProductTrackerCallback } from '../../services/Tracker';
3
4
  import { type IBuiltResponse } from './BuiltResponse';
4
5
  export type BuildAllSponsoredProductCardResponsesFn = (bids: IBid[]) => AsyncResult<IBuiltProductCardBidResponse[]>;
5
6
  export type GenerateSponsoredProductCardResponseFn = (bids: IBid[]) => AsyncGenerator<IBuiltProductCardBidResponse>;
6
- export interface ITracker {
7
- type: number;
7
+ export interface IPixelTracker {
8
+ type: 'pixel';
8
9
  url: string;
9
10
  }
10
- export interface IPixelTracker extends ITracker {
11
- type: 1;
11
+ export interface IScriptTracker {
12
+ type: 'script';
13
+ src: string;
14
+ }
15
+ export interface ICallbackTracker {
16
+ type: 'callback';
17
+ callback: ProductTrackerCallback;
12
18
  }
13
- export interface IScriptTracker extends ITracker {
14
- type: 2;
19
+ export type TrackerObject = IPixelTracker | IScriptTracker | ICallbackTracker;
20
+ export interface ITracker {
21
+ type: number;
22
+ url: string;
15
23
  }
16
24
  export interface ITrackerObject {
25
+ /** @deprecated */
17
26
  win: string;
27
+ /** @deprecated */
18
28
  imp: string[];
29
+ /** @deprecated */
19
30
  others: ITracker[];
31
+ namedTrackers: Record<string, TrackerObject[]>;
20
32
  }
21
33
  export type IBuiltProductCardBidResponse = IBuiltResponse & IBuiltProductCardResponse & {
22
34
  native: INativeResponse;
@@ -47,3 +59,4 @@ export declare class MissingProductIdError extends Error {
47
59
  readonly native: INativeResponse;
48
60
  constructor(bid: IBid, native: INativeResponse);
49
61
  }
62
+ export declare const NamedTrackersToCallbacks: (namedTrackers: Record<string, TrackerObject[]> | undefined) => ProductCallbackExtras;
@@ -1,6 +1,15 @@
1
1
  import type { IDynamicZone, IProductInformation } from '../../models';
2
2
  import type { ICompiledCategoryPublisherConfiguration, ICompiledCategoryPublisherConfigurationDTO } from './Category';
3
- export type ProductCallback = (e: Event, product: IProductInformation) => void;
3
+ export type TrackerCallback = () => Promise<void>;
4
+ export type ProductCallbackExtras = {
5
+ trackers: {
6
+ addToCart: TrackerCallback;
7
+ imp: TrackerCallback;
8
+ click: TrackerCallback;
9
+ [key: string]: TrackerCallback;
10
+ };
11
+ };
12
+ export type ProductCallback = (e: Event, product: IProductInformation, extras: ProductCallbackExtras) => void;
4
13
  export type Callbacks = Record<string, ProductCallback>;
5
14
  export type TemplateDelegate = (context: IProductContext) => string;
6
15
  export interface INativeTemplateDelegateWindow {
@@ -68,3 +77,4 @@ export interface ICompiledPublisherConfiguration {
68
77
  category: ICompiledCategoryPublisherConfiguration;
69
78
  dynamicZones?: Record<string, IDynamicZone>;
70
79
  }
80
+ export declare const DefaultProductCallbackExtras: () => ProductCallbackExtras;
@@ -67,6 +67,8 @@ export declare const EventTypes: {
67
67
  readonly ViewableMRC50: 2;
68
68
  readonly ViewableMRC100: 3;
69
69
  readonly ViewableVIDEO50: 4;
70
+ readonly Click: 500;
71
+ readonly AddToCart: 501;
70
72
  };
71
73
  /**
72
74
  * The context of the page for the native ad unit, i.e what type of content is being displayed
@@ -0,0 +1,25 @@
1
+ import type { RecommenderType } from '../helpers';
2
+ import type { IDevice, IGeoContext, INativeTemplateDelegateWindow, IProductInformation } from '../models';
3
+ import { type ILogger } from './Logger';
4
+ export interface ICarouselContext {
5
+ nextType: 'page' | 'product';
6
+ recommend: RecommenderType;
7
+ strategy: 'sponsored' | 'hybrid' | 'recommended';
8
+ page?: number;
9
+ positionAbsolute?: number;
10
+ positionRelative?: number;
11
+ recommendationValue: number;
12
+ zoneId: string;
13
+ }
14
+ export type ProductTrackerCallback = (context?: ICarouselContext) => Promise<void>;
15
+ export type ProductTrackerInitializer = (product: IProductInformation) => ProductTrackerCallback;
16
+ export interface IRecommendedTrackerService {
17
+ getClickTracker: ProductTrackerInitializer;
18
+ getAddToCartTracker: ProductTrackerInitializer;
19
+ getImpressionTracker: ProductTrackerInitializer;
20
+ }
21
+ export interface IProductTrackerService {
22
+ recommended: IRecommendedTrackerService;
23
+ }
24
+ export type InitTrackerServiceFn = (logger: ILogger | undefined, accountId: string, siteId: string, locationId: string, channelId: string, windowInfo: INativeTemplateDelegateWindow, userAgent: string, geo: IGeoContext | undefined, device: IDevice | undefined, userId: string | undefined, host: string) => IProductTrackerService;
25
+ export declare const InitTrackerService: (logger: ILogger | undefined, accountId: string, siteId: string, locationId: string, channelId: string, windowInfo: INativeTemplateDelegateWindow, userAgent: string, geo: IGeoContext | undefined, device: IDevice | undefined, userId: string | undefined, host: string) => IProductTrackerService;
@@ -9,3 +9,4 @@ export * from './Recommender';
9
9
  export * from './Memo';
10
10
  export * from './Template';
11
11
  export * from './Dynamic';
12
+ export * from './Tracker';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surfside/ads-core",
3
- "version": "2.0.17",
3
+ "version": "2.0.18",
4
4
  "module": "./lib/esm/index.js",
5
5
  "main": "./lib/cjs/index.js",
6
6
  "types": "./lib/types/index.d.ts",