@encorekit/web-sdk 2.1.2 → 2.1.4
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/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/umd/encore.min.js +1 -1
- package/dist/umd/encore.min.js.map +1 -1
- package/package.json +1 -1
- package/types/analytics/AnalyticsClient.d.ts +8 -0
- package/types/analytics/AnalyticsClient.d.ts.map +1 -1
- package/types/analytics/ReliableOutbox.d.ts +10 -0
- package/types/analytics/ReliableOutbox.d.ts.map +1 -1
- package/types/analytics/transport.d.ts +16 -1
- package/types/analytics/transport.d.ts.map +1 -1
- package/types/api/APIClient.d.ts +4 -1
- package/types/api/APIClient.d.ts.map +1 -1
- package/types/api/generated/types.d.ts +13 -5
- package/types/api/generated/types.d.ts.map +1 -1
- package/types/core/Encore.d.ts +0 -3
- package/types/core/Encore.d.ts.map +1 -1
- package/types/core/apiKeyKind.d.ts +42 -0
- package/types/core/apiKeyKind.d.ts.map +1 -0
- package/types/core/giftVariant.d.ts +4 -3
- package/types/core/giftVariant.d.ts.map +1 -1
- package/types/core/version.d.ts +1 -1
- package/types/types.d.ts +31 -0
- package/types/types.d.ts.map +1 -1
- package/types/ui/GiftPicker.d.ts +105 -0
- package/types/ui/GiftPicker.d.ts.map +1 -0
- package/types/ui/GiftPickerHero.d.ts +31 -0
- package/types/ui/GiftPickerHero.d.ts.map +1 -0
- package/types/ui/giftCopy.d.ts +10 -1
- package/types/ui/giftCopy.d.ts.map +1 -1
- package/types/ui/styles.d.ts.map +1 -1
- package/types/ui/termsLine.d.ts +8 -3
- package/types/ui/termsLine.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -13,6 +13,14 @@ import type { StorageManager } from '../core/StorageManager';
|
|
|
13
13
|
export declare class AnalyticsClient {
|
|
14
14
|
#private;
|
|
15
15
|
constructor(apiKey: string, analyticsBaseURL: string, storage?: StorageManager);
|
|
16
|
+
/**
|
|
17
|
+
* Stamp `demo_variant` on every event from here on (`EncoreConfig.demoVariant`).
|
|
18
|
+
*
|
|
19
|
+
* A SETTER rather than a constructor argument because the demo page changes the
|
|
20
|
+
* flow between presentations by calling configure() again, and this client is
|
|
21
|
+
* created once. `null` clears it. Null for every publisher.
|
|
22
|
+
*/
|
|
23
|
+
setDemoVariant(demoVariant: string | null): void;
|
|
16
24
|
/**
|
|
17
25
|
* Track an analytics event (fire-and-forget).
|
|
18
26
|
* Throttles dedup-eligible events; silently drops UX never blocks on this.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsClient.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAgB7D,qBAAa,eAAe;;
|
|
1
|
+
{"version":3,"file":"AnalyticsClient.d.ts","sourceRoot":"","sources":["../../src/analytics/AnalyticsClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAgB7D,qBAAa,eAAe;;gBAOd,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IAM9E;;;;;;OAMG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIhD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;CA+CtE"}
|
|
@@ -33,6 +33,16 @@ export declare class ReliableOutbox {
|
|
|
33
33
|
* marking the epoch logged (and re-enqueue on the next trigger) instead of
|
|
34
34
|
* silently dropping the event.
|
|
35
35
|
*/
|
|
36
|
+
/**
|
|
37
|
+
* Stamp `demo_variant` on every event enqueued from here on
|
|
38
|
+
* (`EncoreConfig.demoVariant`). A setter, not a constructor argument, for the
|
|
39
|
+
* reason `AnalyticsClient.setDemoVariant` gives. `null` clears it.
|
|
40
|
+
*
|
|
41
|
+
* Only NEW enqueues are affected. An envelope already persisted keeps the marker
|
|
42
|
+
* it was built with, which is right: it belongs to the presentation that produced
|
|
43
|
+
* it, not to whatever flow is selected when the retry happens to land.
|
|
44
|
+
*/
|
|
45
|
+
setDemoVariant(demoVariant: string | null): void;
|
|
36
46
|
enqueue(event: AnalyticsEvent, eventId: string): boolean;
|
|
37
47
|
/** Replay every persisted envelope (init recovery + unload flush). */
|
|
38
48
|
flush(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReliableOutbox.d.ts","sourceRoot":"","sources":["../../src/analytics/ReliableOutbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,UAAU,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,qBAAa,cAAc;;
|
|
1
|
+
{"version":3,"file":"ReliableOutbox.d.ts","sourceRoot":"","sources":["../../src/analytics/ReliableOutbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,UAAU,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,qBAAa,cAAc;;gBASb,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM;IAQjG;;;;;;;OAOG;IACH;;;;;;;;OAQG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIhD,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAaxD,sEAAsE;IACtE,KAAK,IAAI,IAAI;CAoDd"}
|
|
@@ -10,8 +10,23 @@ import type { AnalyticsEvent, EventEnvelope } from './models';
|
|
|
10
10
|
* Wrap an event in the analytics wire envelope, injecting the shared web metadata
|
|
11
11
|
* (platform, agent_type, device_os, sdk_version, app_bundle_id). `eventId` defaults to a
|
|
12
12
|
* fresh UUID; callers needing idempotent retries pass a stable id.
|
|
13
|
+
*
|
|
14
|
+
* `demoVariant` is Encore's internal demo-page marker (`EncoreConfig.demoVariant`),
|
|
15
|
+
* stamped as `demo_variant`. Injected HERE, beside the other session-wide metadata,
|
|
16
|
+
* because this is the single path every outbox uses — the alternative was a
|
|
17
|
+
* thirteenth parameter on each of the twelve event factories that carry
|
|
18
|
+
* `variant_id`, and a factory that forgot it would leave an unfilterable row.
|
|
19
|
+
*
|
|
20
|
+
* 🔴 IT IS THE REQUESTED NAME, NOT THE SERVED ONE. The point is to mark the
|
|
21
|
+
* TRAFFIC, so a readout can exclude it with
|
|
22
|
+
* `JSON_VALUE(properties,'$.demo_variant') IS NULL` — which only works if the row
|
|
23
|
+
* is marked whether or not the server honoured the request. What was actually
|
|
24
|
+
* served is already on the row, as `variant_id`.
|
|
25
|
+
*
|
|
26
|
+
* Absent for every publisher, since the option is Encore-internal and omitted when
|
|
27
|
+
* unset: an envelope built without it is byte-identical to before it existed.
|
|
13
28
|
*/
|
|
14
|
-
export declare function buildEnvelope(event: AnalyticsEvent, eventId?: string): EventEnvelope;
|
|
29
|
+
export declare function buildEnvelope(event: AnalyticsEvent, eventId?: string, demoVariant?: string | null): EventEnvelope;
|
|
15
30
|
/**
|
|
16
31
|
* POST an envelope to the analytics ingest endpoint. Returns the fetch promise so
|
|
17
32
|
* callers choose their own delivery policy (fire-and-forget vs. await + retry).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/analytics/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkD9D
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/analytics/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkD9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,MAAuB,EAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,aAAa,CAsBf;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,QAAQ,CAAC,CAWnB"}
|
package/types/api/APIClient.d.ts
CHANGED
|
@@ -130,8 +130,11 @@ export declare class APIClient {
|
|
|
130
130
|
* carry it) passes one. Its response resolves that surface in `ui`
|
|
131
131
|
* INCLUDING experiments — which the prefetch block, carrying only default
|
|
132
132
|
* variants, cannot do.
|
|
133
|
+
*
|
|
134
|
+
* `demoVariant` is Encore's internal demo-page override and rides both. See
|
|
135
|
+
* `EncoreConfig.demoVariant`; the backend ignores it for every non-demo app.
|
|
133
136
|
*/
|
|
134
|
-
fetchConfig(userId: string, sdkVersion: string, useCase?: UseCase): Promise<RemoteConfigResponse>;
|
|
137
|
+
fetchConfig(userId: string, sdkVersion: string, useCase?: UseCase, demoVariant?: string): Promise<RemoteConfigResponse>;
|
|
135
138
|
/**
|
|
136
139
|
* Report a client error (fire-and-forget)
|
|
137
140
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/api/APIClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/api/APIClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -323,7 +323,7 @@ export interface paths {
|
|
|
323
323
|
* @description SDUI variant ID from frontend config fetch. If provided, filters creatives by variant assignment. If not provided, no variant filtering is applied.
|
|
324
324
|
*/
|
|
325
325
|
variantId?: string;
|
|
326
|
-
/** @description Publisher-defined surface label for where the offer is shown (e.g. 'paywall', 'onboarding', 'settings').
|
|
326
|
+
/** @description Publisher-defined surface label for where the offer is shown (e.g. 'paywall', 'onboarding', 'settings'). Stamped onto the sdk_offer_requested event so publisher analytics can break the funnel out by placement. An Encore admin can also configure a per-placement offer rule for an app, in which case this label SELECTS and ORDERS the offers returned for that placement; with no rule configured, which is the default for every app, it stays analytics-only and changes nothing about what is served. Max 64 chars. SDKs may send their own auto-generated `placement_<8 hex>` id when the publisher supplied none — that is expected and is folded into the '(unlabeled)' bucket at read time; do NOT substitute '(unlabeled)' or an empty string yourself. */
|
|
327
327
|
placementId?: string;
|
|
328
328
|
/** @description Strict unlock mode: only include campaigns whose postback latency is less than or equal to this value (in milliseconds). Omit for no filtering. Bounded 1000..120000. */
|
|
329
329
|
maxPostbackTimeMs?: number;
|
|
@@ -519,6 +519,8 @@ export interface paths {
|
|
|
519
519
|
}[];
|
|
520
520
|
/** @description Display name of the campaign category, e.g. "Music and Audio". Free string: the taxonomy is admin-editable, so accept any value. */
|
|
521
521
|
category?: string | null;
|
|
522
|
+
/** @description The gift-sheet group this campaign files under: "Watch & listen", "Money" or "Everyday". Derived from `category` by the server so a native chip strip shows what web tabs show without holding the taxonomy map. Always set: an absent, blank or unmapped category files under "Everyday", so every offer sits in some group. Whether a strip is worth drawing is the client's call, because only it knows which offers its sheet lists. /offers/search only: web-sdk holds its own copy of the map and groups `category` itself. */
|
|
523
|
+
categoryGroup?: string | null;
|
|
522
524
|
}[];
|
|
523
525
|
metadata: {
|
|
524
526
|
/** @description Total offers available */
|
|
@@ -627,7 +629,7 @@ export interface paths {
|
|
|
627
629
|
* @enum {string}
|
|
628
630
|
*/
|
|
629
631
|
platform?: "android" | "ios" | "web";
|
|
630
|
-
/** @description Optional publisher-defined label for the surface this offer is shown on (e.g. 'cancel_flow', 'home_feed', 'post_purchase'). Stamped onto the impression AND onto the click it produces, so publisher analytics can break the funnel out by placement. Normalised server-side: a blank value is treated as absent, anything longer than 64 characters is TRUNCATED rather than rejected, and the stored label NEVER carries leading or trailing whitespace
|
|
632
|
+
/** @description Optional publisher-defined label for the surface this offer is shown on (e.g. 'cancel_flow', 'home_feed', 'post_purchase'). Stamped onto the impression AND onto the click it produces, so publisher analytics can break the funnel out by placement. Normalised server-side: a blank value is treated as absent, anything longer than 64 characters is TRUNCATED rather than rejected, and the stored label NEVER carries leading or trailing whitespace, including after truncation, so ' my label ' and 'my label' are always one placement and can never show up as two rows. Case IS significant: 'Cancel_Flow' and 'cancel_flow' are different placements. Omit it and this traffic groups under '(unlabeled)', the same bucket as an SDK integration that supplies no placement. A per-placement offer rule NEVER applies here. `/offers/catalog` returns inventory rather than a served set, so a rule configured for this label does not select or order what comes back. Scope an inventory pull on your own filters, never on a rule. */
|
|
631
633
|
placementId?: string;
|
|
632
634
|
/** @description CONFIG-TIME ONLY. When true, skips geo-filtering and returns the full addressable inventory for your app (entitlement still applies), with each offer's targetCountries — use this to build your curation. Do NOT use for offers displayed to an end user; those must come from a geo-scoped request (countryCode or forwarded IP). When true, no geography signal is required and countryCode is ignored. */
|
|
633
635
|
includeAllRegions?: boolean;
|
|
@@ -791,7 +793,7 @@ export interface paths {
|
|
|
791
793
|
*/
|
|
792
794
|
platform?: "android" | "ios" | "web";
|
|
793
795
|
};
|
|
794
|
-
/** @description Optional publisher-defined label for the surface this offer is shown on (e.g. 'cancel_flow', 'home_feed', 'post_purchase'). Stamped onto the impression AND onto the click it produces, so publisher analytics can break the funnel out by placement. Normalised server-side: a blank value is treated as absent, anything longer than 64 characters is TRUNCATED rather than rejected, and the stored label NEVER carries leading or trailing whitespace
|
|
796
|
+
/** @description Optional publisher-defined label for the surface this offer is shown on (e.g. 'cancel_flow', 'home_feed', 'post_purchase'). Stamped onto the impression AND onto the click it produces, so publisher analytics can break the funnel out by placement. Normalised server-side: a blank value is treated as absent, anything longer than 64 characters is TRUNCATED rather than rejected, and the stored label NEVER carries leading or trailing whitespace, including after truncation, so ' my label ' and 'my label' are always one placement and can never show up as two rows. Case IS significant: 'Cancel_Flow' and 'cancel_flow' are different placements. Omit it and this traffic groups under '(unlabeled)', the same bucket as an SDK integration that supplies no placement. An Encore admin can also configure a per-placement offer rule for an app, in which case this label SELECTS and ORDERS the offers returned for that placement; with no rule configured, which is the default for every app, it stays analytics-only and changes nothing about what is served. */
|
|
795
797
|
placementId?: string;
|
|
796
798
|
};
|
|
797
799
|
};
|
|
@@ -927,7 +929,7 @@ export interface paths {
|
|
|
927
929
|
* @default 10
|
|
928
930
|
*/
|
|
929
931
|
limit?: number;
|
|
930
|
-
/** @description Optional publisher-defined label for the surface this offer is shown on (e.g. 'cancel_flow', 'home_feed', 'post_purchase'). Stamped onto the impression AND onto the click it produces, so publisher analytics can break the funnel out by placement. Normalised server-side: a blank value is treated as absent, anything longer than 64 characters is TRUNCATED rather than rejected, and the stored label NEVER carries leading or trailing whitespace
|
|
932
|
+
/** @description Optional publisher-defined label for the surface this offer is shown on (e.g. 'cancel_flow', 'home_feed', 'post_purchase'). Stamped onto the impression AND onto the click it produces, so publisher analytics can break the funnel out by placement. Normalised server-side: a blank value is treated as absent, anything longer than 64 characters is TRUNCATED rather than rejected, and the stored label NEVER carries leading or trailing whitespace, including after truncation, so ' my label ' and 'my label' are always one placement and can never show up as two rows. Case IS significant: 'Cancel_Flow' and 'cancel_flow' are different placements. Omit it and this traffic groups under '(unlabeled)', the same bucket as an SDK integration that supplies no placement. An Encore admin can also configure a per-placement offer rule for an app, in which case this label SELECTS and ORDERS the offers returned for that placement; with no rule configured, which is the default for every app, it stays analytics-only and changes nothing about what is served. */
|
|
931
933
|
placementId?: string;
|
|
932
934
|
};
|
|
933
935
|
};
|
|
@@ -2299,7 +2301,7 @@ export interface paths {
|
|
|
2299
2301
|
path?: never;
|
|
2300
2302
|
cookie?: never;
|
|
2301
2303
|
};
|
|
2302
|
-
/** @description Get unified SDK configuration including SDUI, entitlements, experiments, and remote config. This endpoint replaces /ui-config with a cleaner structure. Entitlement mode is implicit: if entitlements.iap.productId exists, use IAP mode; otherwise use Native mode. Pass `useCase` to configure a surface other than churn-intervention; the response echoes it as ui.useCase. Requesting a surface is all it takes to be served it — no setup call is required. A surface Encore has explicitly switched off for this app, or one with no variant available, returns ui.template: null — clients must no-op, never reuse another use case's template. */
|
|
2304
|
+
/** @description Get unified SDK configuration including SDUI, entitlements, experiments, and remote config. This endpoint replaces /ui-config with a cleaner structure. Entitlement mode is implicit: if entitlements.iap.productId exists, use IAP mode; otherwise use Native mode. Pass `useCase` to configure a surface other than churn-intervention; the response echoes it as ui.useCase. `demoVariant` names an SDUI variant to serve for this request. It is honoured on a TEST key (pk_test_*) for any app, and ignored silently (never an error) on a live key — so it can never affect live traffic. It exists for demos and previews: Encore's own demo pages, and a publisher who wants to see the other variants against their own test key. Requesting a surface is all it takes to be served it — no setup call is required. A surface Encore has explicitly switched off for this app, or one with no variant available, returns ui.template: null — clients must no-op, never reuse another use case's template. */
|
|
2303
2305
|
get: {
|
|
2304
2306
|
parameters: {
|
|
2305
2307
|
query: {
|
|
@@ -2311,6 +2313,8 @@ export interface paths {
|
|
|
2311
2313
|
language?: string;
|
|
2312
2314
|
/** @description Which Encore surface is being configured. Omit for today's behaviour. Requesting a surface is all it takes to be served it — no setup call is required. A surface Encore has explicitly switched off for this app, or one with no variant available, resolves to template: null — it NEVER falls back to another use case's template. */
|
|
2313
2315
|
useCase?: "churn-intervention" | "post-action-reward";
|
|
2316
|
+
/** @description Demos and previews only. The SDUI variant file stem to serve for this request, e.g. 'giftUnwrap'. Honoured on a TEST key (pk_test_*) for any app; on a live key it is ignored silently and resolution is unchanged, never an error — so it can never affect live traffic. Intended for Encore's internal demos and for a publisher previewing the other variants against their own test key. An honoured value bypasses app targeting, experiments and arm weights, and WIDENS the status filter from 'active' to 'active' or 'valid' — the filter is widened, not removed, so a draft, testing, invalid or archived variant is still refused. The use-case partition, the per-app kill switch and the SDK version gate all still apply. Note that a test key also serves the demo campaign catalog rather than live advertiser inventory, and tags the request as test traffic in analytics. */
|
|
2317
|
+
demoVariant?: string;
|
|
2314
2318
|
};
|
|
2315
2319
|
header?: never;
|
|
2316
2320
|
path?: never;
|
|
@@ -4806,6 +4810,8 @@ export interface components {
|
|
|
4806
4810
|
}[];
|
|
4807
4811
|
/** @description Display name of the campaign category, e.g. "Music and Audio". Free string: the taxonomy is admin-editable, so accept any value. */
|
|
4808
4812
|
category?: string | null;
|
|
4813
|
+
/** @description The gift-sheet group this campaign files under: "Watch & listen", "Money" or "Everyday". Derived from `category` by the server so a native chip strip shows what web tabs show without holding the taxonomy map. Always set: an absent, blank or unmapped category files under "Everyday", so every offer sits in some group. Whether a strip is worth drawing is the client's call, because only it knows which offers its sheet lists. /offers/search only: web-sdk holds its own copy of the map and groups `category` itself. */
|
|
4814
|
+
categoryGroup?: string | null;
|
|
4809
4815
|
}[];
|
|
4810
4816
|
metadata: {
|
|
4811
4817
|
/** @description Total offers available */
|
|
@@ -5000,6 +5006,8 @@ export interface components {
|
|
|
5000
5006
|
}[];
|
|
5001
5007
|
/** @description Display name of the campaign category, e.g. "Music and Audio". Free string: the taxonomy is admin-editable, so accept any value. */
|
|
5002
5008
|
category?: string | null;
|
|
5009
|
+
/** @description The gift-sheet group this campaign files under: "Watch & listen", "Money" or "Everyday". Derived from `category` by the server so a native chip strip shows what web tabs show without holding the taxonomy map. Always set: an absent, blank or unmapped category files under "Everyday", so every offer sits in some group. Whether a strip is worth drawing is the client's call, because only it knows which offers its sheet lists. /offers/search only: web-sdk holds its own copy of the map and groups `category` itself. */
|
|
5010
|
+
categoryGroup?: string | null;
|
|
5003
5011
|
};
|
|
5004
5012
|
Creative: {
|
|
5005
5013
|
/** Format: uuid */
|