@getlatedev/node 0.2.489 → 0.2.491

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/index.d.mts CHANGED
@@ -10265,11 +10265,11 @@ type CreatePostData = {
10265
10265
  [key: string]: unknown;
10266
10266
  };
10267
10267
  /**
10268
- * Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
10268
+ * Root-level TikTok settings applied to the TikTok platforms sent in the same request. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
10269
10269
  */
10270
10270
  tiktokSettings?: TikTokPlatformData;
10271
10271
  /**
10272
- * Root-level Facebook settings applied to all Facebook platforms. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
10272
+ * Root-level Facebook settings applied to the Facebook platforms sent in the same request. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
10273
10273
  */
10274
10274
  facebookSettings?: FacebookSettings;
10275
10275
  recycling?: RecyclingConfig;
@@ -10423,11 +10423,11 @@ type UpdatePostData = {
10423
10423
  */
10424
10424
  queueId?: string;
10425
10425
  /**
10426
- * Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
10426
+ * Root-level TikTok settings applied to the TikTok platforms sent in the same request. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence. Returns 400 if sent without a platforms array.
10427
10427
  */
10428
10428
  tiktokSettings?: TikTokPlatformData;
10429
10429
  /**
10430
- * Root-level Facebook settings applied to all Facebook platforms. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
10430
+ * Root-level Facebook settings applied to the Facebook platforms sent in the same request. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence. Returns 400 if sent without a platforms array.
10431
10431
  */
10432
10432
  facebookSettings?: FacebookSettings;
10433
10433
  recycling?: RecyclingConfig;
@@ -27205,11 +27205,18 @@ type BoostPostData = {
27205
27205
  advantage_audience?: 0 | 1;
27206
27206
  };
27207
27207
  /**
27208
- * Meta only. A verbatim Meta-native targeting spec (e.g.
27209
- * `{ "geo_locations": { "cities": [{ "key": "...", "radius": 15, "distance_unit": "kilometer" }] } }`),
27210
- * forwarded unchanged. Mutually exclusive with `targeting` (sending both is a 400).
27211
- * Use for advanced fields the structured object does not expose (flexible_spec,
27212
- * excluded audiences, business places).
27208
+ * Meta only. A Meta-native targeting spec (e.g.
27209
+ * `{ "geo_locations": { "cities": [{ "key": "...", "radius": 15, "distance_unit": "kilometer" }] } }`).
27210
+ * Sent alone it is forwarded unchanged. Use for advanced fields the structured
27211
+ * object does not expose (flexible_spec, excluded audiences, business places,
27212
+ * user_os, wireless_carrier).
27213
+ *
27214
+ * Can be combined with `targeting`: rawTargeting is the BASE layer and the
27215
+ * built camelCase spec is merged on top, key by key (camelCase wins on
27216
+ * collision). The merge goes one level deep inside `geo_locations` and
27217
+ * `excluded_geo_locations` (built sub-keys win; raw-only sub-keys such as
27218
+ * `location_types` survive). Array values (`flexible_spec`, ...) are replaced
27219
+ * as a whole key, never element-merged.
27213
27220
  *
27214
27221
  */
27215
27222
  rawTargeting?: {
@@ -27449,7 +27456,7 @@ type CreateStandaloneAdData = {
27449
27456
  */
27450
27457
  linkUrl?: string;
27451
27458
  /**
27452
- * Meta Lead Gen forms only (facebook/instagram). The leadgen_forms ID to attach to the ad's creative — create one via POST /v1/ads/lead-forms. REQUIRED when `goal` is `lead_generation`, and on every ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Ignored otherwise. The ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on instant-form lead ads — the form is attached for you, and for `dynamicCreative` the ad set is created as a Dynamic Creative ad set automatically (Meta requires that for any multi-text feed; there is no non-DCO multi-text path). Send a single `imageUrls` entry plus your text variations to get Meta's "Multiple Text Options" behavior on a lead ad.
27459
+ * Meta Lead Gen forms only (facebook/instagram). The leadgen_forms ID to attach to the ad's creative — create one via POST /v1/ads/lead-forms. REQUIRED when `goal` is `lead_generation`, and on every ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Ignored otherwise. The ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on instant-form lead ads — the form is attached for you, and for `dynamicCreative` the ad set is created as a Dynamic Creative ad set automatically (Meta requires that for any multi-text feed; there is no non-DCO multi-text path). Send a single `imageUrls` (or `videoUrls`) entry plus your text variations to get Meta's "Multiple Text Options" behavior on a lead ad.
27453
27460
  */
27454
27461
  leadGenFormId?: string;
27455
27462
  /**
@@ -27719,14 +27726,24 @@ type CreateStandaloneAdData = {
27719
27726
  */
27720
27727
  savedTargetingId?: string;
27721
27728
  /**
27722
- * Meta only. A raw Meta-native targeting spec passed to the ad set VERBATIM (snake_case:
27723
- * `geo_locations`, `age_min`, `excluded_custom_audiences`, `flexible_spec`, `targeting_automation`,
27724
- * business places, etc.) — exactly the shape `GET /v1/ads/{adId}` returns for external ads. Use it to
27725
- * clone a campaign's targeting EXACTLY, preserving advanced fields the camelCase targeting fields can't
27726
- * model. Mutually exclusive with the camelCase targeting fields (countries/regions/cities/interests/
27727
- * ageMin/...), `audienceId`, and `savedTargetingId` (sending both → 422). Sent as-is; Meta validates and
27728
- * surfaces any errors. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those are
27729
- * separate fields, not part of targeting).
27729
+ * Meta only. A raw Meta-native targeting spec (snake_case: `geo_locations`, `age_min`,
27730
+ * `excluded_custom_audiences`, `flexible_spec`, `targeting_automation`, `user_os`,
27731
+ * `wireless_carrier`, business places, etc.) — exactly the shape `GET /v1/ads/{adId}` returns for
27732
+ * external ads. Sent alone it reaches the ad set VERBATIM (the clone-a-campaign's-targeting-exactly
27733
+ * path). Meta validates and surfaces any errors.
27734
+ *
27735
+ * Can be combined with the camelCase targeting fields (countries/regions/cities/interests/ageMin/...,
27736
+ * `targeting`, `savedTargetingId`, `audienceId`): rawTargeting is the BASE layer and the built
27737
+ * camelCase spec is merged on top, key by key, with the camelCase side winning on collision (the
27738
+ * camelCase precedence chain stays `savedTargetingId` < `targeting` < flat fields). The merge goes
27739
+ * one level deep inside `geo_locations` and `excluded_geo_locations`: built sub-keys win, raw-only
27740
+ * sub-keys such as `location_types` survive alongside built `countries`. Array values
27741
+ * (`flexible_spec`, ...) are replaced as a WHOLE key when the camelCase spec builds them, never
27742
+ * element-merged. When rawTargeting is present the defaults the camelCase builder normally injects
27743
+ * (US geo, `targeting_automation.advantage_audience: 0`) are suppressed, so raw's values are not
27744
+ * clobbered — include `targeting_automation` in the raw spec (or send `advantageAudience`) as Meta
27745
+ * requires it on create. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those
27746
+ * are separate fields, not part of targeting).
27730
27747
  *
27731
27748
  */
27732
27749
  rawTargeting?: {
@@ -27771,15 +27788,20 @@ type CreateStandaloneAdData = {
27771
27788
  * optimises them into the best-performing variations within a single ad (mapped to the
27772
27789
  * creative's `asset_feed_spec`). When set, the top-level single-creative fields
27773
27790
  * (`imageUrl`, `headline`, `body`, `linkUrl`, `callToAction`) are ignored. Mutually
27774
- * exclusive with the `creatives[]` multi-creative shape. Meta limits: ≤10 images,
27775
- * ≤5 bodies / titles / descriptions.
27791
+ * exclusive with the `creatives[]` multi-creative shape. Exactly ONE of `imageUrls` /
27792
+ * `videoUrls` is required (Meta allows one ad format per asset feed; sending both →
27793
+ * 400). Meta limits: ≤10 images or ≤10 videos, ≤5 bodies / titles / descriptions.
27776
27794
  *
27777
27795
  */
27778
27796
  dynamicCreative?: {
27779
27797
  /**
27780
- * Pool of image URLs (1-10). Uploaded to the ad account and referenced by hash in the asset feed.
27798
+ * Pool of image URLs (1-10). Uploaded to the ad account and referenced by hash in the asset feed. Mutually exclusive with `videoUrls`.
27799
+ */
27800
+ imageUrls?: Array<(string)>;
27801
+ /**
27802
+ * Pool of video URLs (1-10). Uploaded to the ad account and referenced by video id in the asset feed. No thumbnails are needed: Meta auto-generates a poster per video. Mutually exclusive with `imageUrls`; `adFormat` defaults to SINGLE_VIDEO.
27781
27803
  */
27782
- imageUrls: Array<(string)>;
27804
+ videoUrls?: Array<(string)>;
27783
27805
  /**
27784
27806
  * Primary-text variations (the body copy).
27785
27807
  */
@@ -27801,9 +27823,9 @@ type CreateStandaloneAdData = {
27801
27823
  */
27802
27824
  callToActionTypes?: Array<('LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE' | 'ADD_TO_CART' | 'APPLY_NOW' | 'BOOK_NOW' | 'BUY_TICKETS' | 'DONATE' | 'DONATE_NOW' | 'GET_DIRECTIONS' | 'GET_SHOWTIMES' | 'LISTEN_NOW' | 'ORDER_NOW' | 'PLAY_GAME' | 'REQUEST_TIME' | 'SEE_MENU' | 'START_ORDER' | 'INSTALL_MOBILE_APP' | 'USE_APP' | 'REGISTER' | 'JOIN' | 'ATTEND' | 'REQUEST_DEMO' | 'VIEW_QUOTE' | 'APPLY' | 'SEE_MORE' | 'BUY_NOW')>;
27803
27825
  /**
27804
- * Asset-feed ad format. Defaults to SINGLE_IMAGE.
27826
+ * Asset-feed ad format. Must match the pool: SINGLE_IMAGE / CAROUSEL_IMAGE require `imageUrls`, SINGLE_VIDEO requires `videoUrls` (400 otherwise). Defaults to SINGLE_IMAGE with `imageUrls`, SINGLE_VIDEO with `videoUrls`.
27805
27827
  */
27806
- adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
27828
+ adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE' | 'SINGLE_VIDEO';
27807
27829
  };
27808
27830
  /**
27809
27831
  * Meta only. Hand-built carousel: 2-10 authored cards in DETERMINISTIC order, mapped to
package/dist/index.d.ts CHANGED
@@ -10265,11 +10265,11 @@ type CreatePostData = {
10265
10265
  [key: string]: unknown;
10266
10266
  };
10267
10267
  /**
10268
- * Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
10268
+ * Root-level TikTok settings applied to the TikTok platforms sent in the same request. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
10269
10269
  */
10270
10270
  tiktokSettings?: TikTokPlatformData;
10271
10271
  /**
10272
- * Root-level Facebook settings applied to all Facebook platforms. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
10272
+ * Root-level Facebook settings applied to the Facebook platforms sent in the same request. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
10273
10273
  */
10274
10274
  facebookSettings?: FacebookSettings;
10275
10275
  recycling?: RecyclingConfig;
@@ -10423,11 +10423,11 @@ type UpdatePostData = {
10423
10423
  */
10424
10424
  queueId?: string;
10425
10425
  /**
10426
- * Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
10426
+ * Root-level TikTok settings applied to the TikTok platforms sent in the same request. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence. Returns 400 if sent without a platforms array.
10427
10427
  */
10428
10428
  tiktokSettings?: TikTokPlatformData;
10429
10429
  /**
10430
- * Root-level Facebook settings applied to all Facebook platforms. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
10430
+ * Root-level Facebook settings applied to the Facebook platforms sent in the same request. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence. Returns 400 if sent without a platforms array.
10431
10431
  */
10432
10432
  facebookSettings?: FacebookSettings;
10433
10433
  recycling?: RecyclingConfig;
@@ -27205,11 +27205,18 @@ type BoostPostData = {
27205
27205
  advantage_audience?: 0 | 1;
27206
27206
  };
27207
27207
  /**
27208
- * Meta only. A verbatim Meta-native targeting spec (e.g.
27209
- * `{ "geo_locations": { "cities": [{ "key": "...", "radius": 15, "distance_unit": "kilometer" }] } }`),
27210
- * forwarded unchanged. Mutually exclusive with `targeting` (sending both is a 400).
27211
- * Use for advanced fields the structured object does not expose (flexible_spec,
27212
- * excluded audiences, business places).
27208
+ * Meta only. A Meta-native targeting spec (e.g.
27209
+ * `{ "geo_locations": { "cities": [{ "key": "...", "radius": 15, "distance_unit": "kilometer" }] } }`).
27210
+ * Sent alone it is forwarded unchanged. Use for advanced fields the structured
27211
+ * object does not expose (flexible_spec, excluded audiences, business places,
27212
+ * user_os, wireless_carrier).
27213
+ *
27214
+ * Can be combined with `targeting`: rawTargeting is the BASE layer and the
27215
+ * built camelCase spec is merged on top, key by key (camelCase wins on
27216
+ * collision). The merge goes one level deep inside `geo_locations` and
27217
+ * `excluded_geo_locations` (built sub-keys win; raw-only sub-keys such as
27218
+ * `location_types` survive). Array values (`flexible_spec`, ...) are replaced
27219
+ * as a whole key, never element-merged.
27213
27220
  *
27214
27221
  */
27215
27222
  rawTargeting?: {
@@ -27449,7 +27456,7 @@ type CreateStandaloneAdData = {
27449
27456
  */
27450
27457
  linkUrl?: string;
27451
27458
  /**
27452
- * Meta Lead Gen forms only (facebook/instagram). The leadgen_forms ID to attach to the ad's creative — create one via POST /v1/ads/lead-forms. REQUIRED when `goal` is `lead_generation`, and on every ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Ignored otherwise. The ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on instant-form lead ads — the form is attached for you, and for `dynamicCreative` the ad set is created as a Dynamic Creative ad set automatically (Meta requires that for any multi-text feed; there is no non-DCO multi-text path). Send a single `imageUrls` entry plus your text variations to get Meta's "Multiple Text Options" behavior on a lead ad.
27459
+ * Meta Lead Gen forms only (facebook/instagram). The leadgen_forms ID to attach to the ad's creative — create one via POST /v1/ads/lead-forms. REQUIRED when `goal` is `lead_generation`, and on every ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Ignored otherwise. The ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on instant-form lead ads — the form is attached for you, and for `dynamicCreative` the ad set is created as a Dynamic Creative ad set automatically (Meta requires that for any multi-text feed; there is no non-DCO multi-text path). Send a single `imageUrls` (or `videoUrls`) entry plus your text variations to get Meta's "Multiple Text Options" behavior on a lead ad.
27453
27460
  */
27454
27461
  leadGenFormId?: string;
27455
27462
  /**
@@ -27719,14 +27726,24 @@ type CreateStandaloneAdData = {
27719
27726
  */
27720
27727
  savedTargetingId?: string;
27721
27728
  /**
27722
- * Meta only. A raw Meta-native targeting spec passed to the ad set VERBATIM (snake_case:
27723
- * `geo_locations`, `age_min`, `excluded_custom_audiences`, `flexible_spec`, `targeting_automation`,
27724
- * business places, etc.) — exactly the shape `GET /v1/ads/{adId}` returns for external ads. Use it to
27725
- * clone a campaign's targeting EXACTLY, preserving advanced fields the camelCase targeting fields can't
27726
- * model. Mutually exclusive with the camelCase targeting fields (countries/regions/cities/interests/
27727
- * ageMin/...), `audienceId`, and `savedTargetingId` (sending both → 422). Sent as-is; Meta validates and
27728
- * surfaces any errors. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those are
27729
- * separate fields, not part of targeting).
27729
+ * Meta only. A raw Meta-native targeting spec (snake_case: `geo_locations`, `age_min`,
27730
+ * `excluded_custom_audiences`, `flexible_spec`, `targeting_automation`, `user_os`,
27731
+ * `wireless_carrier`, business places, etc.) — exactly the shape `GET /v1/ads/{adId}` returns for
27732
+ * external ads. Sent alone it reaches the ad set VERBATIM (the clone-a-campaign's-targeting-exactly
27733
+ * path). Meta validates and surfaces any errors.
27734
+ *
27735
+ * Can be combined with the camelCase targeting fields (countries/regions/cities/interests/ageMin/...,
27736
+ * `targeting`, `savedTargetingId`, `audienceId`): rawTargeting is the BASE layer and the built
27737
+ * camelCase spec is merged on top, key by key, with the camelCase side winning on collision (the
27738
+ * camelCase precedence chain stays `savedTargetingId` < `targeting` < flat fields). The merge goes
27739
+ * one level deep inside `geo_locations` and `excluded_geo_locations`: built sub-keys win, raw-only
27740
+ * sub-keys such as `location_types` survive alongside built `countries`. Array values
27741
+ * (`flexible_spec`, ...) are replaced as a WHOLE key when the camelCase spec builds them, never
27742
+ * element-merged. When rawTargeting is present the defaults the camelCase builder normally injects
27743
+ * (US geo, `targeting_automation.advantage_audience: 0`) are suppressed, so raw's values are not
27744
+ * clobbered — include `targeting_automation` in the raw spec (or send `advantageAudience`) as Meta
27745
+ * requires it on create. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those
27746
+ * are separate fields, not part of targeting).
27730
27747
  *
27731
27748
  */
27732
27749
  rawTargeting?: {
@@ -27771,15 +27788,20 @@ type CreateStandaloneAdData = {
27771
27788
  * optimises them into the best-performing variations within a single ad (mapped to the
27772
27789
  * creative's `asset_feed_spec`). When set, the top-level single-creative fields
27773
27790
  * (`imageUrl`, `headline`, `body`, `linkUrl`, `callToAction`) are ignored. Mutually
27774
- * exclusive with the `creatives[]` multi-creative shape. Meta limits: ≤10 images,
27775
- * ≤5 bodies / titles / descriptions.
27791
+ * exclusive with the `creatives[]` multi-creative shape. Exactly ONE of `imageUrls` /
27792
+ * `videoUrls` is required (Meta allows one ad format per asset feed; sending both →
27793
+ * 400). Meta limits: ≤10 images or ≤10 videos, ≤5 bodies / titles / descriptions.
27776
27794
  *
27777
27795
  */
27778
27796
  dynamicCreative?: {
27779
27797
  /**
27780
- * Pool of image URLs (1-10). Uploaded to the ad account and referenced by hash in the asset feed.
27798
+ * Pool of image URLs (1-10). Uploaded to the ad account and referenced by hash in the asset feed. Mutually exclusive with `videoUrls`.
27799
+ */
27800
+ imageUrls?: Array<(string)>;
27801
+ /**
27802
+ * Pool of video URLs (1-10). Uploaded to the ad account and referenced by video id in the asset feed. No thumbnails are needed: Meta auto-generates a poster per video. Mutually exclusive with `imageUrls`; `adFormat` defaults to SINGLE_VIDEO.
27781
27803
  */
27782
- imageUrls: Array<(string)>;
27804
+ videoUrls?: Array<(string)>;
27783
27805
  /**
27784
27806
  * Primary-text variations (the body copy).
27785
27807
  */
@@ -27801,9 +27823,9 @@ type CreateStandaloneAdData = {
27801
27823
  */
27802
27824
  callToActionTypes?: Array<('LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE' | 'ADD_TO_CART' | 'APPLY_NOW' | 'BOOK_NOW' | 'BUY_TICKETS' | 'DONATE' | 'DONATE_NOW' | 'GET_DIRECTIONS' | 'GET_SHOWTIMES' | 'LISTEN_NOW' | 'ORDER_NOW' | 'PLAY_GAME' | 'REQUEST_TIME' | 'SEE_MENU' | 'START_ORDER' | 'INSTALL_MOBILE_APP' | 'USE_APP' | 'REGISTER' | 'JOIN' | 'ATTEND' | 'REQUEST_DEMO' | 'VIEW_QUOTE' | 'APPLY' | 'SEE_MORE' | 'BUY_NOW')>;
27803
27825
  /**
27804
- * Asset-feed ad format. Defaults to SINGLE_IMAGE.
27826
+ * Asset-feed ad format. Must match the pool: SINGLE_IMAGE / CAROUSEL_IMAGE require `imageUrls`, SINGLE_VIDEO requires `videoUrls` (400 otherwise). Defaults to SINGLE_IMAGE with `imageUrls`, SINGLE_VIDEO with `videoUrls`.
27805
27827
  */
27806
- adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
27828
+ adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE' | 'SINGLE_VIDEO';
27807
27829
  };
27808
27830
  /**
27809
27831
  * Meta only. Hand-built carousel: 2-10 authored cards in DETERMINISTIC order, mapped to
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(index_exports);
36
36
  // package.json
37
37
  var package_default = {
38
38
  name: "@getlatedev/node",
39
- version: "0.2.489",
39
+ version: "0.2.491",
40
40
  description: "The official Node.js library for the Zernio API",
41
41
  main: "dist/index.js",
42
42
  module: "dist/index.mjs",
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5
5
  // package.json
6
6
  var package_default = {
7
7
  name: "@getlatedev/node",
8
- version: "0.2.489",
8
+ version: "0.2.491",
9
9
  description: "The official Node.js library for the Zernio API",
10
10
  main: "dist/index.js",
11
11
  module: "dist/index.mjs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getlatedev/node",
3
- "version": "0.2.489",
3
+ "version": "0.2.491",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -9494,11 +9494,11 @@ export type CreatePostData = {
9494
9494
  [key: string]: unknown;
9495
9495
  };
9496
9496
  /**
9497
- * Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
9497
+ * Root-level TikTok settings applied to the TikTok platforms sent in the same request. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
9498
9498
  */
9499
9499
  tiktokSettings?: TikTokPlatformData;
9500
9500
  /**
9501
- * Root-level Facebook settings applied to all Facebook platforms. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
9501
+ * Root-level Facebook settings applied to the Facebook platforms sent in the same request. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
9502
9502
  */
9503
9503
  facebookSettings?: FacebookSettings;
9504
9504
  recycling?: RecyclingConfig;
@@ -9661,11 +9661,11 @@ export type UpdatePostData = {
9661
9661
  */
9662
9662
  queueId?: string;
9663
9663
  /**
9664
- * Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
9664
+ * Root-level TikTok settings applied to the TikTok platforms sent in the same request. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence. Returns 400 if sent without a platforms array.
9665
9665
  */
9666
9666
  tiktokSettings?: TikTokPlatformData;
9667
9667
  /**
9668
- * Root-level Facebook settings applied to all Facebook platforms. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence.
9668
+ * Root-level Facebook settings applied to the Facebook platforms sent in the same request. Merged into each platform's platformSpecificData.facebookSettings, with platform-specific settings taking precedence. Returns 400 if sent without a platforms array.
9669
9669
  */
9670
9670
  facebookSettings?: FacebookSettings;
9671
9671
  recycling?: RecyclingConfig;
@@ -27732,11 +27732,18 @@ export type BoostPostData = {
27732
27732
  advantage_audience?: 0 | 1;
27733
27733
  };
27734
27734
  /**
27735
- * Meta only. A verbatim Meta-native targeting spec (e.g.
27736
- * `{ "geo_locations": { "cities": [{ "key": "...", "radius": 15, "distance_unit": "kilometer" }] } }`),
27737
- * forwarded unchanged. Mutually exclusive with `targeting` (sending both is a 400).
27738
- * Use for advanced fields the structured object does not expose (flexible_spec,
27739
- * excluded audiences, business places).
27735
+ * Meta only. A Meta-native targeting spec (e.g.
27736
+ * `{ "geo_locations": { "cities": [{ "key": "...", "radius": 15, "distance_unit": "kilometer" }] } }`).
27737
+ * Sent alone it is forwarded unchanged. Use for advanced fields the structured
27738
+ * object does not expose (flexible_spec, excluded audiences, business places,
27739
+ * user_os, wireless_carrier).
27740
+ *
27741
+ * Can be combined with `targeting`: rawTargeting is the BASE layer and the
27742
+ * built camelCase spec is merged on top, key by key (camelCase wins on
27743
+ * collision). The merge goes one level deep inside `geo_locations` and
27744
+ * `excluded_geo_locations` (built sub-keys win; raw-only sub-keys such as
27745
+ * `location_types` survive). Array values (`flexible_spec`, ...) are replaced
27746
+ * as a whole key, never element-merged.
27740
27747
  *
27741
27748
  */
27742
27749
  rawTargeting?: {
@@ -27979,7 +27986,7 @@ export type CreateStandaloneAdData = {
27979
27986
  */
27980
27987
  linkUrl?: string;
27981
27988
  /**
27982
- * Meta Lead Gen forms only (facebook/instagram). The leadgen_forms ID to attach to the ad's creative — create one via POST /v1/ads/lead-forms. REQUIRED when `goal` is `lead_generation`, and on every ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Ignored otherwise. The ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on instant-form lead ads — the form is attached for you, and for `dynamicCreative` the ad set is created as a Dynamic Creative ad set automatically (Meta requires that for any multi-text feed; there is no non-DCO multi-text path). Send a single `imageUrls` entry plus your text variations to get Meta's "Multiple Text Options" behavior on a lead ad.
27989
+ * Meta Lead Gen forms only (facebook/instagram). The leadgen_forms ID to attach to the ad's creative — create one via POST /v1/ads/lead-forms. REQUIRED when `goal` is `lead_generation`, and on every ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Ignored otherwise. The ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on instant-form lead ads — the form is attached for you, and for `dynamicCreative` the ad set is created as a Dynamic Creative ad set automatically (Meta requires that for any multi-text feed; there is no non-DCO multi-text path). Send a single `imageUrls` (or `videoUrls`) entry plus your text variations to get Meta's "Multiple Text Options" behavior on a lead ad.
27983
27990
  */
27984
27991
  leadGenFormId?: string;
27985
27992
  /**
@@ -28249,14 +28256,24 @@ export type CreateStandaloneAdData = {
28249
28256
  */
28250
28257
  savedTargetingId?: string;
28251
28258
  /**
28252
- * Meta only. A raw Meta-native targeting spec passed to the ad set VERBATIM (snake_case:
28253
- * `geo_locations`, `age_min`, `excluded_custom_audiences`, `flexible_spec`, `targeting_automation`,
28254
- * business places, etc.) — exactly the shape `GET /v1/ads/{adId}` returns for external ads. Use it to
28255
- * clone a campaign's targeting EXACTLY, preserving advanced fields the camelCase targeting fields can't
28256
- * model. Mutually exclusive with the camelCase targeting fields (countries/regions/cities/interests/
28257
- * ageMin/...), `audienceId`, and `savedTargetingId` (sending both → 422). Sent as-is; Meta validates and
28258
- * surfaces any errors. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those are
28259
- * separate fields, not part of targeting).
28259
+ * Meta only. A raw Meta-native targeting spec (snake_case: `geo_locations`, `age_min`,
28260
+ * `excluded_custom_audiences`, `flexible_spec`, `targeting_automation`, `user_os`,
28261
+ * `wireless_carrier`, business places, etc.) — exactly the shape `GET /v1/ads/{adId}` returns for
28262
+ * external ads. Sent alone it reaches the ad set VERBATIM (the clone-a-campaign's-targeting-exactly
28263
+ * path). Meta validates and surfaces any errors.
28264
+ *
28265
+ * Can be combined with the camelCase targeting fields (countries/regions/cities/interests/ageMin/...,
28266
+ * `targeting`, `savedTargetingId`, `audienceId`): rawTargeting is the BASE layer and the built
28267
+ * camelCase spec is merged on top, key by key, with the camelCase side winning on collision (the
28268
+ * camelCase precedence chain stays `savedTargetingId` < `targeting` < flat fields). The merge goes
28269
+ * one level deep inside `geo_locations` and `excluded_geo_locations`: built sub-keys win, raw-only
28270
+ * sub-keys such as `location_types` survive alongside built `countries`. Array values
28271
+ * (`flexible_spec`, ...) are replaced as a WHOLE key when the camelCase spec builds them, never
28272
+ * element-merged. When rawTargeting is present the defaults the camelCase builder normally injects
28273
+ * (US geo, `targeting_automation.advantage_audience: 0`) are suppressed, so raw's values are not
28274
+ * clobbered — include `targeting_automation` in the raw spec (or send `advantageAudience`) as Meta
28275
+ * requires it on create. If cloning an EU campaign, also pass `dsaBeneficiary` / `dsaPayor` (those
28276
+ * are separate fields, not part of targeting).
28260
28277
  *
28261
28278
  */
28262
28279
  rawTargeting?: {
@@ -28301,15 +28318,20 @@ export type CreateStandaloneAdData = {
28301
28318
  * optimises them into the best-performing variations within a single ad (mapped to the
28302
28319
  * creative's `asset_feed_spec`). When set, the top-level single-creative fields
28303
28320
  * (`imageUrl`, `headline`, `body`, `linkUrl`, `callToAction`) are ignored. Mutually
28304
- * exclusive with the `creatives[]` multi-creative shape. Meta limits: ≤10 images,
28305
- * ≤5 bodies / titles / descriptions.
28321
+ * exclusive with the `creatives[]` multi-creative shape. Exactly ONE of `imageUrls` /
28322
+ * `videoUrls` is required (Meta allows one ad format per asset feed; sending both →
28323
+ * 400). Meta limits: ≤10 images or ≤10 videos, ≤5 bodies / titles / descriptions.
28306
28324
  *
28307
28325
  */
28308
28326
  dynamicCreative?: {
28309
28327
  /**
28310
- * Pool of image URLs (1-10). Uploaded to the ad account and referenced by hash in the asset feed.
28328
+ * Pool of image URLs (1-10). Uploaded to the ad account and referenced by hash in the asset feed. Mutually exclusive with `videoUrls`.
28329
+ */
28330
+ imageUrls?: Array<(string)>;
28331
+ /**
28332
+ * Pool of video URLs (1-10). Uploaded to the ad account and referenced by video id in the asset feed. No thumbnails are needed: Meta auto-generates a poster per video. Mutually exclusive with `imageUrls`; `adFormat` defaults to SINGLE_VIDEO.
28311
28333
  */
28312
- imageUrls: Array<(string)>;
28334
+ videoUrls?: Array<(string)>;
28313
28335
  /**
28314
28336
  * Primary-text variations (the body copy).
28315
28337
  */
@@ -28331,9 +28353,9 @@ export type CreateStandaloneAdData = {
28331
28353
  */
28332
28354
  callToActionTypes?: Array<('LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE' | 'ADD_TO_CART' | 'APPLY_NOW' | 'BOOK_NOW' | 'BUY_TICKETS' | 'DONATE' | 'DONATE_NOW' | 'GET_DIRECTIONS' | 'GET_SHOWTIMES' | 'LISTEN_NOW' | 'ORDER_NOW' | 'PLAY_GAME' | 'REQUEST_TIME' | 'SEE_MENU' | 'START_ORDER' | 'INSTALL_MOBILE_APP' | 'USE_APP' | 'REGISTER' | 'JOIN' | 'ATTEND' | 'REQUEST_DEMO' | 'VIEW_QUOTE' | 'APPLY' | 'SEE_MORE' | 'BUY_NOW')>;
28333
28355
  /**
28334
- * Asset-feed ad format. Defaults to SINGLE_IMAGE.
28356
+ * Asset-feed ad format. Must match the pool: SINGLE_IMAGE / CAROUSEL_IMAGE require `imageUrls`, SINGLE_VIDEO requires `videoUrls` (400 otherwise). Defaults to SINGLE_IMAGE with `imageUrls`, SINGLE_VIDEO with `videoUrls`.
28335
28357
  */
28336
- adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
28358
+ adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE' | 'SINGLE_VIDEO';
28337
28359
  };
28338
28360
  /**
28339
28361
  * Meta only. Hand-built carousel: 2-10 authored cards in DETERMINISTIC order, mapped to