@getlatedev/node 0.2.1379 → 0.2.1381

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
@@ -4253,6 +4253,27 @@ type AdTreeAdSet = {
4253
4253
  pixel_id?: string;
4254
4254
  page_id?: string;
4255
4255
  } | null;
4256
+ /**
4257
+ * Meta only. Where the ad set sends people (Meta `destination_type`), e.g. WEBSITE, MESSENGER, WHATSAPP, INSTAGRAM_DIRECT, ON_AD. Meta answers UNDEFINED for an ad set with no explicit destination. As of the last sync; null on other platforms and for ad sets not yet synced.
4258
+ */
4259
+ destinationType?: (string) | null;
4260
+ /**
4261
+ * Meta only. The ad set's conversion attribution windows (Meta `attribution_spec`), in the same shape `attributionSpec` takes on ad creation so a clone can send it back unchanged. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
4262
+ */
4263
+ attributionSpec?: Array<{
4264
+ eventType?: 'CLICK_THROUGH' | 'VIEW_THROUGH' | 'ENGAGED_VIDEO_VIEW';
4265
+ windowDays?: 1 | 7 | 28;
4266
+ }> | null;
4267
+ /**
4268
+ * Meta only. Regional regulated categories declared on the ad set (Meta `regional_regulated_categories`), e.g. AUSTRALIA_FINSERV, TAIWAN_UNIVERSAL, SINGAPORE_UNIVERSAL or VOLUNTARY_VERIFICATION. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
4269
+ */
4270
+ regionalRegulatedCategories?: Array<(string)> | null;
4271
+ /**
4272
+ * Meta only. Verified identity IDs per regional regulation role (Meta `regional_regulation_identities`), keyed by Meta's role name. IDs are strings because they can exceed a JSON number's precision. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
4273
+ */
4274
+ regionalRegulationIdentities?: {
4275
+ [key: string]: (string);
4276
+ } | null;
4256
4277
  /**
4257
4278
  * Individual ads within this ad set (capped at 100). When the ad set has more than 100 ads these are the 100 highest-spending over the requested date range, so this array depends on `fromDate`/`toDate`; `adCount` is always the true ad set size. Returns a subset of Ad fields from the aggregation: `_id`, `name`, `platform`, `status`, `configuredStatus`, `reviewStatus`, `budget`, `metrics`, `creative`, `goal` and the `platform*` ids are always included; `targeting` and `schedule` may be absent. `configuredStatus` (the ad's own on/off toggle) and `reviewStatus` (the platform's review verdict) are part of this contract, not incidental: a rejected ad is only distinguishable from a healthy one through `reviewStatus`. When `timeIncrement=1&dailyLevel=ad`, each entry also carries a `daily[]` array of `AdDailyMetrics`.
4258
4279
  */
@@ -49046,9 +49067,21 @@ type DuplicateAdCampaignResponse = ({
49046
49067
  * Platform ID of the new campaign
49047
49068
  */
49048
49069
  copiedCampaignId?: string;
49070
+ /**
49071
+ * Meta only: source ad set ID to copied ad set ID. Empty when `deepCopy` is false.
49072
+ */
49073
+ adSetIdMap?: {
49074
+ [key: string]: (string);
49075
+ };
49076
+ /**
49077
+ * Meta only: source ad ID to copied ad ID, across every copied ad set. Empty when `deepCopy` is false.
49078
+ */
49079
+ adIdMap?: {
49080
+ [key: string]: (string);
49081
+ };
49049
49082
  discovery?: 'triggered' | 'skipped' | 'failed';
49050
49083
  /**
49051
- * Platform-native response from the copy endpoint (Meta includes ad_object_ids for child copies)
49084
+ * Platform-native response from the copy (TikTok and LinkedIn). Absent on Meta, which returns `adSetIdMap` and `adIdMap` instead.
49052
49085
  */
49053
49086
  raw?: {
49054
49087
  [key: string]: unknown;
@@ -49599,9 +49632,19 @@ type DuplicateAdSetResponse = ({
49599
49632
  * Platform ID of the new ad set
49600
49633
  */
49601
49634
  copiedAdSetId?: string;
49635
+ /**
49636
+ * Platform IDs of the copied ads
49637
+ */
49638
+ copiedAdIds?: Array<(string)>;
49639
+ /**
49640
+ * Meta only: source ad ID to copied ad ID. Empty when `deepCopy` is false.
49641
+ */
49642
+ adIdMap?: {
49643
+ [key: string]: (string);
49644
+ };
49602
49645
  discovery?: 'triggered' | 'skipped' | 'failed';
49603
49646
  /**
49604
- * Meta's native copy response (includes ad_object_ids for child copies)
49647
+ * Platform-native response from the copy (TikTok). Absent on Meta, which returns `adIdMap` instead.
49605
49648
  */
49606
49649
  raw?: {
49607
49650
  [key: string]: unknown;
package/dist/index.d.ts CHANGED
@@ -4253,6 +4253,27 @@ type AdTreeAdSet = {
4253
4253
  pixel_id?: string;
4254
4254
  page_id?: string;
4255
4255
  } | null;
4256
+ /**
4257
+ * Meta only. Where the ad set sends people (Meta `destination_type`), e.g. WEBSITE, MESSENGER, WHATSAPP, INSTAGRAM_DIRECT, ON_AD. Meta answers UNDEFINED for an ad set with no explicit destination. As of the last sync; null on other platforms and for ad sets not yet synced.
4258
+ */
4259
+ destinationType?: (string) | null;
4260
+ /**
4261
+ * Meta only. The ad set's conversion attribution windows (Meta `attribution_spec`), in the same shape `attributionSpec` takes on ad creation so a clone can send it back unchanged. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
4262
+ */
4263
+ attributionSpec?: Array<{
4264
+ eventType?: 'CLICK_THROUGH' | 'VIEW_THROUGH' | 'ENGAGED_VIDEO_VIEW';
4265
+ windowDays?: 1 | 7 | 28;
4266
+ }> | null;
4267
+ /**
4268
+ * Meta only. Regional regulated categories declared on the ad set (Meta `regional_regulated_categories`), e.g. AUSTRALIA_FINSERV, TAIWAN_UNIVERSAL, SINGAPORE_UNIVERSAL or VOLUNTARY_VERIFICATION. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
4269
+ */
4270
+ regionalRegulatedCategories?: Array<(string)> | null;
4271
+ /**
4272
+ * Meta only. Verified identity IDs per regional regulation role (Meta `regional_regulation_identities`), keyed by Meta's role name. IDs are strings because they can exceed a JSON number's precision. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
4273
+ */
4274
+ regionalRegulationIdentities?: {
4275
+ [key: string]: (string);
4276
+ } | null;
4256
4277
  /**
4257
4278
  * Individual ads within this ad set (capped at 100). When the ad set has more than 100 ads these are the 100 highest-spending over the requested date range, so this array depends on `fromDate`/`toDate`; `adCount` is always the true ad set size. Returns a subset of Ad fields from the aggregation: `_id`, `name`, `platform`, `status`, `configuredStatus`, `reviewStatus`, `budget`, `metrics`, `creative`, `goal` and the `platform*` ids are always included; `targeting` and `schedule` may be absent. `configuredStatus` (the ad's own on/off toggle) and `reviewStatus` (the platform's review verdict) are part of this contract, not incidental: a rejected ad is only distinguishable from a healthy one through `reviewStatus`. When `timeIncrement=1&dailyLevel=ad`, each entry also carries a `daily[]` array of `AdDailyMetrics`.
4258
4279
  */
@@ -49046,9 +49067,21 @@ type DuplicateAdCampaignResponse = ({
49046
49067
  * Platform ID of the new campaign
49047
49068
  */
49048
49069
  copiedCampaignId?: string;
49070
+ /**
49071
+ * Meta only: source ad set ID to copied ad set ID. Empty when `deepCopy` is false.
49072
+ */
49073
+ adSetIdMap?: {
49074
+ [key: string]: (string);
49075
+ };
49076
+ /**
49077
+ * Meta only: source ad ID to copied ad ID, across every copied ad set. Empty when `deepCopy` is false.
49078
+ */
49079
+ adIdMap?: {
49080
+ [key: string]: (string);
49081
+ };
49049
49082
  discovery?: 'triggered' | 'skipped' | 'failed';
49050
49083
  /**
49051
- * Platform-native response from the copy endpoint (Meta includes ad_object_ids for child copies)
49084
+ * Platform-native response from the copy (TikTok and LinkedIn). Absent on Meta, which returns `adSetIdMap` and `adIdMap` instead.
49052
49085
  */
49053
49086
  raw?: {
49054
49087
  [key: string]: unknown;
@@ -49599,9 +49632,19 @@ type DuplicateAdSetResponse = ({
49599
49632
  * Platform ID of the new ad set
49600
49633
  */
49601
49634
  copiedAdSetId?: string;
49635
+ /**
49636
+ * Platform IDs of the copied ads
49637
+ */
49638
+ copiedAdIds?: Array<(string)>;
49639
+ /**
49640
+ * Meta only: source ad ID to copied ad ID. Empty when `deepCopy` is false.
49641
+ */
49642
+ adIdMap?: {
49643
+ [key: string]: (string);
49644
+ };
49602
49645
  discovery?: 'triggered' | 'skipped' | 'failed';
49603
49646
  /**
49604
- * Meta's native copy response (includes ad_object_ids for child copies)
49647
+ * Platform-native response from the copy (TikTok). Absent on Meta, which returns `adIdMap` instead.
49605
49648
  */
49606
49649
  raw?: {
49607
49650
  [key: string]: unknown;
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.1379",
39
+ version: "0.2.1381",
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.1379",
8
+ version: "0.2.1381",
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.1379",
3
+ "version": "0.2.1381",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -11783,7 +11783,14 @@ export const bulkUpdateAdCampaignStatus = <ThrowOnError extends boolean = false>
11783
11783
  * so callers can review before launching.
11784
11784
  *
11785
11785
  * Per-platform implementation:
11786
- * - **Meta** uses the native `POST /{campaign-id}/copies` endpoint.
11786
+ * - **Meta** copies one level at a time with Meta's `/copies` endpoint:
11787
+ * the campaign, then each of its ad sets (DELETED and ARCHIVED ones
11788
+ * are skipped), then each ad of every ad set, so a campaign of any
11789
+ * size copies (Meta refuses a single deep copy of 3 or more objects).
11790
+ * `statusOption` applies at every level. If any child copy fails,
11791
+ * the partial copy is deleted and the request fails with Meta's error,
11792
+ * so a retry starts clean. Each copied object takes a few seconds,
11793
+ * so a large campaign takes minutes to answer.
11787
11794
  * - **TikTok** has no native copy primitive; Zernio walks the source
11788
11795
  * graph (`/v2/campaign/get/`, `/v2/adgroup/get/`, `/v2/ad/get/`) and
11789
11796
  * recreates each entity via the corresponding `/create/` endpoints,
@@ -12009,9 +12016,12 @@ export const createAdSet = <ThrowOnError extends boolean = false>(options: Optio
12009
12016
  * The copy is created paused so callers can review before launching.
12010
12017
  * `campaignId` retargets the copy into another campaign; omitted = the source's own campaign.
12011
12018
  *
12012
- * Meta: ads and creatives are included by default (`deepCopy: true`) via Meta's native
12013
- * `POST /{adset-id}/copies`; the new hierarchy materializes asynchronously and sync discovery
12014
- * is triggered automatically (`syncAfter: false` to skip).
12019
+ * Meta: ads and creatives are included by default (`deepCopy: true`). The ad set is copied
12020
+ * with Meta's `/copies` endpoint, then each of its ads (DELETED and ARCHIVED ones are skipped)
12021
+ * into the new ad set, so an ad set with any number of ads copies (Meta refuses a single deep
12022
+ * copy of 3 or more objects). `statusOption` applies to the ad set and every ad. If an ad copy
12023
+ * fails, the partial ad set copy is deleted and the request fails with Meta's error. Sync
12024
+ * discovery is triggered automatically (`syncAfter: false` to skip).
12015
12025
  *
12016
12026
  * TikTok: the ad group is read and recreated under the campaign with its targeting, bidding,
12017
12027
  * budget and schedule (start reset to now); `deepCopy: true` recreates its ads too (default
@@ -2078,6 +2078,27 @@ export type AdTreeAdSet = {
2078
2078
  pixel_id?: string;
2079
2079
  page_id?: string;
2080
2080
  } | null;
2081
+ /**
2082
+ * Meta only. Where the ad set sends people (Meta `destination_type`), e.g. WEBSITE, MESSENGER, WHATSAPP, INSTAGRAM_DIRECT, ON_AD. Meta answers UNDEFINED for an ad set with no explicit destination. As of the last sync; null on other platforms and for ad sets not yet synced.
2083
+ */
2084
+ destinationType?: (string) | null;
2085
+ /**
2086
+ * Meta only. The ad set's conversion attribution windows (Meta `attribution_spec`), in the same shape `attributionSpec` takes on ad creation so a clone can send it back unchanged. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
2087
+ */
2088
+ attributionSpec?: Array<{
2089
+ eventType?: 'CLICK_THROUGH' | 'VIEW_THROUGH' | 'ENGAGED_VIDEO_VIEW';
2090
+ windowDays?: 1 | 7 | 28;
2091
+ }> | null;
2092
+ /**
2093
+ * Meta only. Regional regulated categories declared on the ad set (Meta `regional_regulated_categories`), e.g. AUSTRALIA_FINSERV, TAIWAN_UNIVERSAL, SINGAPORE_UNIVERSAL or VOLUNTARY_VERIFICATION. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
2094
+ */
2095
+ regionalRegulatedCategories?: Array<(string)> | null;
2096
+ /**
2097
+ * Meta only. Verified identity IDs per regional regulation role (Meta `regional_regulation_identities`), keyed by Meta's role name. IDs are strings because they can exceed a JSON number's precision. As of the last sync; null on other platforms, for ad sets not yet synced and when Meta reports none.
2098
+ */
2099
+ regionalRegulationIdentities?: {
2100
+ [key: string]: (string);
2101
+ } | null;
2081
2102
  /**
2082
2103
  * Individual ads within this ad set (capped at 100). When the ad set has more than 100 ads these are the 100 highest-spending over the requested date range, so this array depends on `fromDate`/`toDate`; `adCount` is always the true ad set size. Returns a subset of Ad fields from the aggregation: `_id`, `name`, `platform`, `status`, `configuredStatus`, `reviewStatus`, `budget`, `metrics`, `creative`, `goal` and the `platform*` ids are always included; `targeting` and `schedule` may be absent. `configuredStatus` (the ad's own on/off toggle) and `reviewStatus` (the platform's review verdict) are part of this contract, not incidental: a rejected ad is only distinguishable from a healthy one through `reviewStatus`. When `timeIncrement=1&dailyLevel=ad`, each entry also carries a `daily[]` array of `AdDailyMetrics`.
2083
2104
  */
@@ -49815,9 +49836,21 @@ export type DuplicateAdCampaignResponse = ({
49815
49836
  * Platform ID of the new campaign
49816
49837
  */
49817
49838
  copiedCampaignId?: string;
49839
+ /**
49840
+ * Meta only: source ad set ID to copied ad set ID. Empty when `deepCopy` is false.
49841
+ */
49842
+ adSetIdMap?: {
49843
+ [key: string]: (string);
49844
+ };
49845
+ /**
49846
+ * Meta only: source ad ID to copied ad ID, across every copied ad set. Empty when `deepCopy` is false.
49847
+ */
49848
+ adIdMap?: {
49849
+ [key: string]: (string);
49850
+ };
49818
49851
  discovery?: 'triggered' | 'skipped' | 'failed';
49819
49852
  /**
49820
- * Platform-native response from the copy endpoint (Meta includes ad_object_ids for child copies)
49853
+ * Platform-native response from the copy (TikTok and LinkedIn). Absent on Meta, which returns `adSetIdMap` and `adIdMap` instead.
49821
49854
  */
49822
49855
  raw?: {
49823
49856
  [key: string]: unknown;
@@ -50383,9 +50416,19 @@ export type DuplicateAdSetResponse = ({
50383
50416
  * Platform ID of the new ad set
50384
50417
  */
50385
50418
  copiedAdSetId?: string;
50419
+ /**
50420
+ * Platform IDs of the copied ads
50421
+ */
50422
+ copiedAdIds?: Array<(string)>;
50423
+ /**
50424
+ * Meta only: source ad ID to copied ad ID. Empty when `deepCopy` is false.
50425
+ */
50426
+ adIdMap?: {
50427
+ [key: string]: (string);
50428
+ };
50386
50429
  discovery?: 'triggered' | 'skipped' | 'failed';
50387
50430
  /**
50388
- * Meta's native copy response (includes ad_object_ids for child copies)
50431
+ * Platform-native response from the copy (TikTok). Absent on Meta, which returns `adIdMap` instead.
50389
50432
  */
50390
50433
  raw?: {
50391
50434
  [key: string]: unknown;