@getlatedev/node 0.2.478 → 0.2.480

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
@@ -1308,9 +1308,47 @@ type Ad = {
1308
1308
  */
1309
1309
  platformObjective?: (string) | null;
1310
1310
  /**
1311
- * Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION, LINK_CLICKS). Only present for Meta ads.
1311
+ * What the delivery system optimizes for, at ad-set level. The value space depends on `platform`:
1312
+ *
1313
+ * - Meta: ad set `optimization_goal` (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION, LINK_CLICKS).
1314
+ * - LinkedIn: the campaign's EFFECTIVE `optimizationTargetType`, refreshed from LinkedIn on every
1315
+ * sync rather than echoing what was passed on create. `NONE` means manual bidding, and it is a
1316
+ * real value, not missing data. Auto-bid values are MAX_IMPRESSION / MAX_CLICK / MAX_CONVERSION /
1317
+ * MAX_VIDEO_VIEW / MAX_LEAD / MAX_REACH; target-cost values are TARGET_COST_PER_CLICK /
1318
+ * TARGET_COST_PER_IMPRESSION / TARGET_COST_PER_VIDEO_VIEW; cost-cap values are the
1319
+ * CAP_COST_AND_MAXIMIZE_* family.
1320
+ *
1312
1321
  */
1313
1322
  optimizationGoal?: (string) | null;
1323
+ /**
1324
+ * LinkedIn only. The campaign's EFFECTIVE cost model (billing event) as applied by LinkedIn,
1325
+ * refreshed on every sync rather than echoing what was passed on create. One of `CPM` (cost per
1326
+ * thousand impressions), `CPC` (cost per click) or `CPV` (cost per video view). On LinkedIn this is
1327
+ * the axis that pairs with `bidAmount`; there is no `bidStrategy`. For campaign type
1328
+ * SPONSORED_INMAILS, `CPM` bills as cost-per-send x 1000. `null` for non-LinkedIn ads.
1329
+ *
1330
+ */
1331
+ costType?: (string) | null;
1332
+ /**
1333
+ * LinkedIn only. Why the parent campaign is (or is not) delivering, verbatim from LinkedIn.
1334
+ * A campaign can report `status: ACTIVE` and still serve nothing; this array is what says so.
1335
+ *
1336
+ * - `[]` means no serving data: a non-LinkedIn ad, or a LinkedIn ad not yet re-synced.
1337
+ * - `["RUNNABLE"]` means the campaign is eligible to serve.
1338
+ * - Anything else is a hold. Known values include ACCOUNT_SERVING_HOLD, ACCOUNT_TOTAL_BUDGET_HOLD,
1339
+ * ACCOUNT_END_DATE_HOLD, CAMPAIGN_START_DATE_HOLD, CAMPAIGN_END_DATE_HOLD,
1340
+ * CAMPAIGN_TOTAL_BUDGET_HOLD, CAMPAIGN_AUDIENCE_COUNT_HOLD, CAMPAIGN_GROUP_START_DATE_HOLD,
1341
+ * CAMPAIGN_GROUP_END_DATE_HOLD, CAMPAIGN_GROUP_TOTAL_BUDGET_HOLD, CAMPAIGN_GROUP_STATUS_HOLD and
1342
+ * STOPPED. The list is open on purpose, so treat unrecognized values as holds rather than errors.
1343
+ *
1344
+ * The end-date and total-budget holds are terminal and surface as `status: completed`; the rest
1345
+ * surface as `status: paused`. Note that a hold is not the only cause of zero delivery: with
1346
+ * manual, target-cost or cost-cap bidding, a `bidAmount` of 0 stops delivery while
1347
+ * `servingStatuses` still reads `["RUNNABLE"]`. Check `costType` / `bidAmount` /
1348
+ * `optimizationGoal` as well.
1349
+ *
1350
+ */
1351
+ servingStatuses?: Array<(string)>;
1314
1352
  /**
1315
1353
  * Human-readable advertiser/account name (Meta `AdAccount.name`, TikTok
1316
1354
  * `advertiser_name`, LinkedIn / X / Pinterest equivalents). Refreshed every
@@ -1338,13 +1376,19 @@ type Ad = {
1338
1376
  */
1339
1377
  bidStrategy?: (BidStrategy | null);
1340
1378
  /**
1341
- * Bid cap in WHOLE currency units of the ad account (USD: 5 = $5.00; JPY: 100 = ¥100).
1342
- * Populated when bidStrategy is `LOWEST_COST_WITH_BID_CAP` or `COST_CAP`. `null` for
1343
- * auto-bid (`LOWEST_COST_WITHOUT_CAP`).
1379
+ * Bid amount in WHOLE currency units of the ad account (USD: 5 = $5.00; JPY: 100 = ¥100).
1344
1380
  *
1345
- * - Meta source: `bid_amount` on the ad set (smallest-denomination int, decoded here).
1381
+ * - Meta source: `bid_amount` on the ad set (smallest-denomination int, decoded here). Populated
1382
+ * when bidStrategy is `LOWEST_COST_WITH_BID_CAP` or `COST_CAP`; `null` for auto-bid
1383
+ * (`LOWEST_COST_WITHOUT_CAP`).
1346
1384
  * - TikTok source: priority order `bid_price` -> `conversion_bid_price` -> `deep_cpa_bid`
1347
1385
  * (whichever is set on the ad group). TikTok stores all three in whole currency units.
1386
+ * - LinkedIn source: the campaign's EFFECTIVE `unitCost`, refreshed on every sync rather than
1387
+ * echoing what was passed on create. Its meaning depends on the bidding mode implied by
1388
+ * `optimizationGoal`: bid amount (manual), target cost, or cost cap. It pairs with `costType`,
1389
+ * NOT with `bidStrategy`, which LinkedIn does not have. A value of `0` is a real, delivery-
1390
+ * stopping configuration and not "unset", so do not gate this field on `bidStrategy` for
1391
+ * LinkedIn ads.
1348
1392
  *
1349
1393
  * Source: facebook-business-sdk-codegen api_specs/specs/AdSet.json (`bid_amount`).
1350
1394
  *
@@ -1439,6 +1483,21 @@ type Ad = {
1439
1483
  * All media URLs for this ad (carousel images, multiple assets). Populated for Meta (carousel child_attachments), Google Ads (responsive display marketing_images), and LinkedIn (multi-image posts).
1440
1484
  */
1441
1485
  mediaUrls?: Array<(string)>;
1486
+ /**
1487
+ * LinkedIn only. Whether LinkedIn is currently serving this specific creative. Complements the ad-level `servingStatuses`, which describes the parent campaign.
1488
+ */
1489
+ isServing?: (boolean) | null;
1490
+ /**
1491
+ * LinkedIn only. Why this specific creative is not being served. Empty when it is serving.
1492
+ * A superset of the ad-level `servingStatuses`: it repeats the inherited campaign, campaign
1493
+ * group and account holds AND adds creative-only causes such as UNDER_REVIEW, REJECTED,
1494
+ * PROCESSING, PROCESSING_FAILED, FORM_HOLD (lead-gen-form creatives),
1495
+ * REFERRED_CONTENT_QUALITY_HOLD, JOB_POSTING_ON_HOLD and JOB_POSTING_INVALID (job ads).
1496
+ * Some values are format-specific and will never appear on other ad formats. The list is
1497
+ * open, so treat unrecognized values as holds rather than errors.
1498
+ *
1499
+ */
1500
+ servingHoldReasons?: Array<(string)>;
1442
1501
  /**
1443
1502
  * Ad copy/text
1444
1503
  */
@@ -1559,7 +1618,7 @@ type AdCampaign = {
1559
1618
  */
1560
1619
  platformObjective?: (string) | null;
1561
1620
  /**
1562
- * Meta optimization goal shared across ad sets, or comma-separated values when ad sets differ (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
1621
+ * Optimization goal shared across ad sets, or comma-separated values when ad sets differ. Meta: e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION. LinkedIn: the campaign optimizationTargetType (e.g. MAX_CLICK, MAX_IMPRESSION, NONE); `NONE` with a manual costType is a campaign LinkedIn will not deliver.
1563
1622
  */
1564
1623
  optimizationGoal?: (string) | null;
1565
1624
  /**
@@ -1567,7 +1626,7 @@ type AdCampaign = {
1567
1626
  */
1568
1627
  bidStrategy?: (BidStrategy | null);
1569
1628
  /**
1570
- * Representative bid cap from the top-spending ad set (whole currency units). Populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
1629
+ * Representative bid from the top-spending ad set (whole currency units). Meta: populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. LinkedIn: the campaign unitCost, ungated, where 0 is a real delivery-stopping value.
1571
1630
  */
1572
1631
  bidAmount?: (number) | null;
1573
1632
  /**
@@ -1725,21 +1784,29 @@ type AdTreeAdSet = {
1725
1784
  } | null;
1726
1785
  metrics?: AdMetrics;
1727
1786
  /**
1728
- * Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
1787
+ * What the delivery system optimizes for. Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION), or on LinkedIn the campaign's effective optimizationTargetType (NONE means manual bidding). See the `optimizationGoal` field on `Ad` for the full value spaces.
1729
1788
  */
1730
1789
  optimizationGoal?: (string) | null;
1731
1790
  /**
1732
- * Bid strategy for this ad set (overrides campaign level when set)
1791
+ * Bid strategy for this ad set (overrides campaign level when set). Meta and TikTok only; LinkedIn uses `costType` instead.
1733
1792
  */
1734
1793
  bidStrategy?: (BidStrategy | null);
1735
1794
  /**
1736
- * Bid cap in whole currency units. Populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
1795
+ * Bid amount in whole currency units. On Meta/TikTok populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP; on LinkedIn it is the campaign's effective unitCost and pairs with `costType`, where 0 is a real, delivery-stopping value.
1737
1796
  */
1738
1797
  bidAmount?: (number) | null;
1739
1798
  /**
1740
1799
  * Minimum ROAS as a decimal multiplier (2.0 = 2.0x). Populated when bidStrategy is LOWEST_COST_WITH_MIN_ROAS.
1741
1800
  */
1742
1801
  roasAverageFloor?: (number) | null;
1802
+ /**
1803
+ * LinkedIn only. Effective cost model (billing event) of the LinkedIn campaign backing this ad set: CPM, CPC or CPV. Null for non-LinkedIn ad sets.
1804
+ */
1805
+ costType?: (string) | null;
1806
+ /**
1807
+ * LinkedIn only. Why the LinkedIn campaign backing this ad set is (or is not) delivering. A LinkedIn Campaign maps to this ad-set node, so this is the level where LinkedIn's holds actually apply. Empty means no serving data, ["RUNNABLE"] means eligible to serve, anything else is a hold. See the `servingStatuses` field on `Ad` for the known values.
1808
+ */
1809
+ servingStatuses?: Array<(string)>;
1743
1810
  /**
1744
1811
  * Meta promoted object for this ad set (conversion event details)
1745
1812
  */
@@ -1836,7 +1903,7 @@ type AdTreeCampaign = {
1836
1903
  */
1837
1904
  platformObjective?: (string) | null;
1838
1905
  /**
1839
- * Meta optimization goal shared across ad sets, or comma-separated values when ad sets differ (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
1906
+ * Optimization goal shared across ad sets, or comma-separated values when ad sets differ. Meta: e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION. LinkedIn: the campaign optimizationTargetType (e.g. MAX_CLICK, MAX_IMPRESSION, NONE); `NONE` with a manual costType is a campaign LinkedIn will not deliver.
1840
1907
  */
1841
1908
  optimizationGoal?: (string) | null;
1842
1909
  /**
@@ -1844,7 +1911,7 @@ type AdTreeCampaign = {
1844
1911
  */
1845
1912
  bidStrategy?: (BidStrategy | null);
1846
1913
  /**
1847
- * Representative bid cap for the campaign bubbled up from the top-spending ad set's `bid_amount` (whole currency units). Populated when the ad-set bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
1914
+ * Representative bid for the campaign, bubbled up from the top-spending ad set (whole currency units). Meta: populated when the ad-set bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. LinkedIn: the campaign unitCost, which has no bidStrategy gate and where 0 is a real, delivery-stopping value rather than unset.
1848
1915
  */
1849
1916
  bidAmount?: (number) | null;
1850
1917
  /**
@@ -22749,6 +22816,10 @@ type ListContactsData = {
22749
22816
  search?: string;
22750
22817
  skip?: number;
22751
22818
  tag?: string;
22819
+ /**
22820
+ * Comma-separated tags, matches contacts carrying any of them
22821
+ */
22822
+ tags?: string;
22752
22823
  };
22753
22824
  };
22754
22825
  type ListContactsResponse = ({
package/dist/index.d.ts CHANGED
@@ -1308,9 +1308,47 @@ type Ad = {
1308
1308
  */
1309
1309
  platformObjective?: (string) | null;
1310
1310
  /**
1311
- * Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION, LINK_CLICKS). Only present for Meta ads.
1311
+ * What the delivery system optimizes for, at ad-set level. The value space depends on `platform`:
1312
+ *
1313
+ * - Meta: ad set `optimization_goal` (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION, LINK_CLICKS).
1314
+ * - LinkedIn: the campaign's EFFECTIVE `optimizationTargetType`, refreshed from LinkedIn on every
1315
+ * sync rather than echoing what was passed on create. `NONE` means manual bidding, and it is a
1316
+ * real value, not missing data. Auto-bid values are MAX_IMPRESSION / MAX_CLICK / MAX_CONVERSION /
1317
+ * MAX_VIDEO_VIEW / MAX_LEAD / MAX_REACH; target-cost values are TARGET_COST_PER_CLICK /
1318
+ * TARGET_COST_PER_IMPRESSION / TARGET_COST_PER_VIDEO_VIEW; cost-cap values are the
1319
+ * CAP_COST_AND_MAXIMIZE_* family.
1320
+ *
1312
1321
  */
1313
1322
  optimizationGoal?: (string) | null;
1323
+ /**
1324
+ * LinkedIn only. The campaign's EFFECTIVE cost model (billing event) as applied by LinkedIn,
1325
+ * refreshed on every sync rather than echoing what was passed on create. One of `CPM` (cost per
1326
+ * thousand impressions), `CPC` (cost per click) or `CPV` (cost per video view). On LinkedIn this is
1327
+ * the axis that pairs with `bidAmount`; there is no `bidStrategy`. For campaign type
1328
+ * SPONSORED_INMAILS, `CPM` bills as cost-per-send x 1000. `null` for non-LinkedIn ads.
1329
+ *
1330
+ */
1331
+ costType?: (string) | null;
1332
+ /**
1333
+ * LinkedIn only. Why the parent campaign is (or is not) delivering, verbatim from LinkedIn.
1334
+ * A campaign can report `status: ACTIVE` and still serve nothing; this array is what says so.
1335
+ *
1336
+ * - `[]` means no serving data: a non-LinkedIn ad, or a LinkedIn ad not yet re-synced.
1337
+ * - `["RUNNABLE"]` means the campaign is eligible to serve.
1338
+ * - Anything else is a hold. Known values include ACCOUNT_SERVING_HOLD, ACCOUNT_TOTAL_BUDGET_HOLD,
1339
+ * ACCOUNT_END_DATE_HOLD, CAMPAIGN_START_DATE_HOLD, CAMPAIGN_END_DATE_HOLD,
1340
+ * CAMPAIGN_TOTAL_BUDGET_HOLD, CAMPAIGN_AUDIENCE_COUNT_HOLD, CAMPAIGN_GROUP_START_DATE_HOLD,
1341
+ * CAMPAIGN_GROUP_END_DATE_HOLD, CAMPAIGN_GROUP_TOTAL_BUDGET_HOLD, CAMPAIGN_GROUP_STATUS_HOLD and
1342
+ * STOPPED. The list is open on purpose, so treat unrecognized values as holds rather than errors.
1343
+ *
1344
+ * The end-date and total-budget holds are terminal and surface as `status: completed`; the rest
1345
+ * surface as `status: paused`. Note that a hold is not the only cause of zero delivery: with
1346
+ * manual, target-cost or cost-cap bidding, a `bidAmount` of 0 stops delivery while
1347
+ * `servingStatuses` still reads `["RUNNABLE"]`. Check `costType` / `bidAmount` /
1348
+ * `optimizationGoal` as well.
1349
+ *
1350
+ */
1351
+ servingStatuses?: Array<(string)>;
1314
1352
  /**
1315
1353
  * Human-readable advertiser/account name (Meta `AdAccount.name`, TikTok
1316
1354
  * `advertiser_name`, LinkedIn / X / Pinterest equivalents). Refreshed every
@@ -1338,13 +1376,19 @@ type Ad = {
1338
1376
  */
1339
1377
  bidStrategy?: (BidStrategy | null);
1340
1378
  /**
1341
- * Bid cap in WHOLE currency units of the ad account (USD: 5 = $5.00; JPY: 100 = ¥100).
1342
- * Populated when bidStrategy is `LOWEST_COST_WITH_BID_CAP` or `COST_CAP`. `null` for
1343
- * auto-bid (`LOWEST_COST_WITHOUT_CAP`).
1379
+ * Bid amount in WHOLE currency units of the ad account (USD: 5 = $5.00; JPY: 100 = ¥100).
1344
1380
  *
1345
- * - Meta source: `bid_amount` on the ad set (smallest-denomination int, decoded here).
1381
+ * - Meta source: `bid_amount` on the ad set (smallest-denomination int, decoded here). Populated
1382
+ * when bidStrategy is `LOWEST_COST_WITH_BID_CAP` or `COST_CAP`; `null` for auto-bid
1383
+ * (`LOWEST_COST_WITHOUT_CAP`).
1346
1384
  * - TikTok source: priority order `bid_price` -> `conversion_bid_price` -> `deep_cpa_bid`
1347
1385
  * (whichever is set on the ad group). TikTok stores all three in whole currency units.
1386
+ * - LinkedIn source: the campaign's EFFECTIVE `unitCost`, refreshed on every sync rather than
1387
+ * echoing what was passed on create. Its meaning depends on the bidding mode implied by
1388
+ * `optimizationGoal`: bid amount (manual), target cost, or cost cap. It pairs with `costType`,
1389
+ * NOT with `bidStrategy`, which LinkedIn does not have. A value of `0` is a real, delivery-
1390
+ * stopping configuration and not "unset", so do not gate this field on `bidStrategy` for
1391
+ * LinkedIn ads.
1348
1392
  *
1349
1393
  * Source: facebook-business-sdk-codegen api_specs/specs/AdSet.json (`bid_amount`).
1350
1394
  *
@@ -1439,6 +1483,21 @@ type Ad = {
1439
1483
  * All media URLs for this ad (carousel images, multiple assets). Populated for Meta (carousel child_attachments), Google Ads (responsive display marketing_images), and LinkedIn (multi-image posts).
1440
1484
  */
1441
1485
  mediaUrls?: Array<(string)>;
1486
+ /**
1487
+ * LinkedIn only. Whether LinkedIn is currently serving this specific creative. Complements the ad-level `servingStatuses`, which describes the parent campaign.
1488
+ */
1489
+ isServing?: (boolean) | null;
1490
+ /**
1491
+ * LinkedIn only. Why this specific creative is not being served. Empty when it is serving.
1492
+ * A superset of the ad-level `servingStatuses`: it repeats the inherited campaign, campaign
1493
+ * group and account holds AND adds creative-only causes such as UNDER_REVIEW, REJECTED,
1494
+ * PROCESSING, PROCESSING_FAILED, FORM_HOLD (lead-gen-form creatives),
1495
+ * REFERRED_CONTENT_QUALITY_HOLD, JOB_POSTING_ON_HOLD and JOB_POSTING_INVALID (job ads).
1496
+ * Some values are format-specific and will never appear on other ad formats. The list is
1497
+ * open, so treat unrecognized values as holds rather than errors.
1498
+ *
1499
+ */
1500
+ servingHoldReasons?: Array<(string)>;
1442
1501
  /**
1443
1502
  * Ad copy/text
1444
1503
  */
@@ -1559,7 +1618,7 @@ type AdCampaign = {
1559
1618
  */
1560
1619
  platformObjective?: (string) | null;
1561
1620
  /**
1562
- * Meta optimization goal shared across ad sets, or comma-separated values when ad sets differ (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
1621
+ * Optimization goal shared across ad sets, or comma-separated values when ad sets differ. Meta: e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION. LinkedIn: the campaign optimizationTargetType (e.g. MAX_CLICK, MAX_IMPRESSION, NONE); `NONE` with a manual costType is a campaign LinkedIn will not deliver.
1563
1622
  */
1564
1623
  optimizationGoal?: (string) | null;
1565
1624
  /**
@@ -1567,7 +1626,7 @@ type AdCampaign = {
1567
1626
  */
1568
1627
  bidStrategy?: (BidStrategy | null);
1569
1628
  /**
1570
- * Representative bid cap from the top-spending ad set (whole currency units). Populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
1629
+ * Representative bid from the top-spending ad set (whole currency units). Meta: populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. LinkedIn: the campaign unitCost, ungated, where 0 is a real delivery-stopping value.
1571
1630
  */
1572
1631
  bidAmount?: (number) | null;
1573
1632
  /**
@@ -1725,21 +1784,29 @@ type AdTreeAdSet = {
1725
1784
  } | null;
1726
1785
  metrics?: AdMetrics;
1727
1786
  /**
1728
- * Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
1787
+ * What the delivery system optimizes for. Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION), or on LinkedIn the campaign's effective optimizationTargetType (NONE means manual bidding). See the `optimizationGoal` field on `Ad` for the full value spaces.
1729
1788
  */
1730
1789
  optimizationGoal?: (string) | null;
1731
1790
  /**
1732
- * Bid strategy for this ad set (overrides campaign level when set)
1791
+ * Bid strategy for this ad set (overrides campaign level when set). Meta and TikTok only; LinkedIn uses `costType` instead.
1733
1792
  */
1734
1793
  bidStrategy?: (BidStrategy | null);
1735
1794
  /**
1736
- * Bid cap in whole currency units. Populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
1795
+ * Bid amount in whole currency units. On Meta/TikTok populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP; on LinkedIn it is the campaign's effective unitCost and pairs with `costType`, where 0 is a real, delivery-stopping value.
1737
1796
  */
1738
1797
  bidAmount?: (number) | null;
1739
1798
  /**
1740
1799
  * Minimum ROAS as a decimal multiplier (2.0 = 2.0x). Populated when bidStrategy is LOWEST_COST_WITH_MIN_ROAS.
1741
1800
  */
1742
1801
  roasAverageFloor?: (number) | null;
1802
+ /**
1803
+ * LinkedIn only. Effective cost model (billing event) of the LinkedIn campaign backing this ad set: CPM, CPC or CPV. Null for non-LinkedIn ad sets.
1804
+ */
1805
+ costType?: (string) | null;
1806
+ /**
1807
+ * LinkedIn only. Why the LinkedIn campaign backing this ad set is (or is not) delivering. A LinkedIn Campaign maps to this ad-set node, so this is the level where LinkedIn's holds actually apply. Empty means no serving data, ["RUNNABLE"] means eligible to serve, anything else is a hold. See the `servingStatuses` field on `Ad` for the known values.
1808
+ */
1809
+ servingStatuses?: Array<(string)>;
1743
1810
  /**
1744
1811
  * Meta promoted object for this ad set (conversion event details)
1745
1812
  */
@@ -1836,7 +1903,7 @@ type AdTreeCampaign = {
1836
1903
  */
1837
1904
  platformObjective?: (string) | null;
1838
1905
  /**
1839
- * Meta optimization goal shared across ad sets, or comma-separated values when ad sets differ (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
1906
+ * Optimization goal shared across ad sets, or comma-separated values when ad sets differ. Meta: e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION. LinkedIn: the campaign optimizationTargetType (e.g. MAX_CLICK, MAX_IMPRESSION, NONE); `NONE` with a manual costType is a campaign LinkedIn will not deliver.
1840
1907
  */
1841
1908
  optimizationGoal?: (string) | null;
1842
1909
  /**
@@ -1844,7 +1911,7 @@ type AdTreeCampaign = {
1844
1911
  */
1845
1912
  bidStrategy?: (BidStrategy | null);
1846
1913
  /**
1847
- * Representative bid cap for the campaign bubbled up from the top-spending ad set's `bid_amount` (whole currency units). Populated when the ad-set bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
1914
+ * Representative bid for the campaign, bubbled up from the top-spending ad set (whole currency units). Meta: populated when the ad-set bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. LinkedIn: the campaign unitCost, which has no bidStrategy gate and where 0 is a real, delivery-stopping value rather than unset.
1848
1915
  */
1849
1916
  bidAmount?: (number) | null;
1850
1917
  /**
@@ -22749,6 +22816,10 @@ type ListContactsData = {
22749
22816
  search?: string;
22750
22817
  skip?: number;
22751
22818
  tag?: string;
22819
+ /**
22820
+ * Comma-separated tags, matches contacts carrying any of them
22821
+ */
22822
+ tags?: string;
22752
22823
  };
22753
22824
  };
22754
22825
  type ListContactsResponse = ({
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.478",
39
+ version: "0.2.480",
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.478",
8
+ version: "0.2.480",
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.478",
3
+ "version": "0.2.480",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -124,9 +124,47 @@ export type Ad = {
124
124
  */
125
125
  platformObjective?: (string) | null;
126
126
  /**
127
- * Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION, LINK_CLICKS). Only present for Meta ads.
127
+ * What the delivery system optimizes for, at ad-set level. The value space depends on `platform`:
128
+ *
129
+ * - Meta: ad set `optimization_goal` (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION, LINK_CLICKS).
130
+ * - LinkedIn: the campaign's EFFECTIVE `optimizationTargetType`, refreshed from LinkedIn on every
131
+ * sync rather than echoing what was passed on create. `NONE` means manual bidding, and it is a
132
+ * real value, not missing data. Auto-bid values are MAX_IMPRESSION / MAX_CLICK / MAX_CONVERSION /
133
+ * MAX_VIDEO_VIEW / MAX_LEAD / MAX_REACH; target-cost values are TARGET_COST_PER_CLICK /
134
+ * TARGET_COST_PER_IMPRESSION / TARGET_COST_PER_VIDEO_VIEW; cost-cap values are the
135
+ * CAP_COST_AND_MAXIMIZE_* family.
136
+ *
128
137
  */
129
138
  optimizationGoal?: (string) | null;
139
+ /**
140
+ * LinkedIn only. The campaign's EFFECTIVE cost model (billing event) as applied by LinkedIn,
141
+ * refreshed on every sync rather than echoing what was passed on create. One of `CPM` (cost per
142
+ * thousand impressions), `CPC` (cost per click) or `CPV` (cost per video view). On LinkedIn this is
143
+ * the axis that pairs with `bidAmount`; there is no `bidStrategy`. For campaign type
144
+ * SPONSORED_INMAILS, `CPM` bills as cost-per-send x 1000. `null` for non-LinkedIn ads.
145
+ *
146
+ */
147
+ costType?: (string) | null;
148
+ /**
149
+ * LinkedIn only. Why the parent campaign is (or is not) delivering, verbatim from LinkedIn.
150
+ * A campaign can report `status: ACTIVE` and still serve nothing; this array is what says so.
151
+ *
152
+ * - `[]` means no serving data: a non-LinkedIn ad, or a LinkedIn ad not yet re-synced.
153
+ * - `["RUNNABLE"]` means the campaign is eligible to serve.
154
+ * - Anything else is a hold. Known values include ACCOUNT_SERVING_HOLD, ACCOUNT_TOTAL_BUDGET_HOLD,
155
+ * ACCOUNT_END_DATE_HOLD, CAMPAIGN_START_DATE_HOLD, CAMPAIGN_END_DATE_HOLD,
156
+ * CAMPAIGN_TOTAL_BUDGET_HOLD, CAMPAIGN_AUDIENCE_COUNT_HOLD, CAMPAIGN_GROUP_START_DATE_HOLD,
157
+ * CAMPAIGN_GROUP_END_DATE_HOLD, CAMPAIGN_GROUP_TOTAL_BUDGET_HOLD, CAMPAIGN_GROUP_STATUS_HOLD and
158
+ * STOPPED. The list is open on purpose, so treat unrecognized values as holds rather than errors.
159
+ *
160
+ * The end-date and total-budget holds are terminal and surface as `status: completed`; the rest
161
+ * surface as `status: paused`. Note that a hold is not the only cause of zero delivery: with
162
+ * manual, target-cost or cost-cap bidding, a `bidAmount` of 0 stops delivery while
163
+ * `servingStatuses` still reads `["RUNNABLE"]`. Check `costType` / `bidAmount` /
164
+ * `optimizationGoal` as well.
165
+ *
166
+ */
167
+ servingStatuses?: Array<(string)>;
130
168
  /**
131
169
  * Human-readable advertiser/account name (Meta `AdAccount.name`, TikTok
132
170
  * `advertiser_name`, LinkedIn / X / Pinterest equivalents). Refreshed every
@@ -154,13 +192,19 @@ export type Ad = {
154
192
  */
155
193
  bidStrategy?: (BidStrategy | null);
156
194
  /**
157
- * Bid cap in WHOLE currency units of the ad account (USD: 5 = $5.00; JPY: 100 = ¥100).
158
- * Populated when bidStrategy is `LOWEST_COST_WITH_BID_CAP` or `COST_CAP`. `null` for
159
- * auto-bid (`LOWEST_COST_WITHOUT_CAP`).
195
+ * Bid amount in WHOLE currency units of the ad account (USD: 5 = $5.00; JPY: 100 = ¥100).
160
196
  *
161
- * - Meta source: `bid_amount` on the ad set (smallest-denomination int, decoded here).
197
+ * - Meta source: `bid_amount` on the ad set (smallest-denomination int, decoded here). Populated
198
+ * when bidStrategy is `LOWEST_COST_WITH_BID_CAP` or `COST_CAP`; `null` for auto-bid
199
+ * (`LOWEST_COST_WITHOUT_CAP`).
162
200
  * - TikTok source: priority order `bid_price` -> `conversion_bid_price` -> `deep_cpa_bid`
163
201
  * (whichever is set on the ad group). TikTok stores all three in whole currency units.
202
+ * - LinkedIn source: the campaign's EFFECTIVE `unitCost`, refreshed on every sync rather than
203
+ * echoing what was passed on create. Its meaning depends on the bidding mode implied by
204
+ * `optimizationGoal`: bid amount (manual), target cost, or cost cap. It pairs with `costType`,
205
+ * NOT with `bidStrategy`, which LinkedIn does not have. A value of `0` is a real, delivery-
206
+ * stopping configuration and not "unset", so do not gate this field on `bidStrategy` for
207
+ * LinkedIn ads.
164
208
  *
165
209
  * Source: facebook-business-sdk-codegen api_specs/specs/AdSet.json (`bid_amount`).
166
210
  *
@@ -255,6 +299,21 @@ export type Ad = {
255
299
  * All media URLs for this ad (carousel images, multiple assets). Populated for Meta (carousel child_attachments), Google Ads (responsive display marketing_images), and LinkedIn (multi-image posts).
256
300
  */
257
301
  mediaUrls?: Array<(string)>;
302
+ /**
303
+ * LinkedIn only. Whether LinkedIn is currently serving this specific creative. Complements the ad-level `servingStatuses`, which describes the parent campaign.
304
+ */
305
+ isServing?: (boolean) | null;
306
+ /**
307
+ * LinkedIn only. Why this specific creative is not being served. Empty when it is serving.
308
+ * A superset of the ad-level `servingStatuses`: it repeats the inherited campaign, campaign
309
+ * group and account holds AND adds creative-only causes such as UNDER_REVIEW, REJECTED,
310
+ * PROCESSING, PROCESSING_FAILED, FORM_HOLD (lead-gen-form creatives),
311
+ * REFERRED_CONTENT_QUALITY_HOLD, JOB_POSTING_ON_HOLD and JOB_POSTING_INVALID (job ads).
312
+ * Some values are format-specific and will never appear on other ad formats. The list is
313
+ * open, so treat unrecognized values as holds rather than errors.
314
+ *
315
+ */
316
+ servingHoldReasons?: Array<(string)>;
258
317
  /**
259
318
  * Ad copy/text
260
319
  */
@@ -381,7 +440,7 @@ export type AdCampaign = {
381
440
  */
382
441
  platformObjective?: (string) | null;
383
442
  /**
384
- * Meta optimization goal shared across ad sets, or comma-separated values when ad sets differ (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
443
+ * Optimization goal shared across ad sets, or comma-separated values when ad sets differ. Meta: e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION. LinkedIn: the campaign optimizationTargetType (e.g. MAX_CLICK, MAX_IMPRESSION, NONE); `NONE` with a manual costType is a campaign LinkedIn will not deliver.
385
444
  */
386
445
  optimizationGoal?: (string) | null;
387
446
  /**
@@ -389,7 +448,7 @@ export type AdCampaign = {
389
448
  */
390
449
  bidStrategy?: (BidStrategy | null);
391
450
  /**
392
- * Representative bid cap from the top-spending ad set (whole currency units). Populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
451
+ * Representative bid from the top-spending ad set (whole currency units). Meta: populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. LinkedIn: the campaign unitCost, ungated, where 0 is a real delivery-stopping value.
393
452
  */
394
453
  bidAmount?: (number) | null;
395
454
  /**
@@ -553,21 +612,29 @@ export type AdTreeAdSet = {
553
612
  } | null;
554
613
  metrics?: AdMetrics;
555
614
  /**
556
- * Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
615
+ * What the delivery system optimizes for. Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION), or on LinkedIn the campaign's effective optimizationTargetType (NONE means manual bidding). See the `optimizationGoal` field on `Ad` for the full value spaces.
557
616
  */
558
617
  optimizationGoal?: (string) | null;
559
618
  /**
560
- * Bid strategy for this ad set (overrides campaign level when set)
619
+ * Bid strategy for this ad set (overrides campaign level when set). Meta and TikTok only; LinkedIn uses `costType` instead.
561
620
  */
562
621
  bidStrategy?: (BidStrategy | null);
563
622
  /**
564
- * Bid cap in whole currency units. Populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
623
+ * Bid amount in whole currency units. On Meta/TikTok populated when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP; on LinkedIn it is the campaign's effective unitCost and pairs with `costType`, where 0 is a real, delivery-stopping value.
565
624
  */
566
625
  bidAmount?: (number) | null;
567
626
  /**
568
627
  * Minimum ROAS as a decimal multiplier (2.0 = 2.0x). Populated when bidStrategy is LOWEST_COST_WITH_MIN_ROAS.
569
628
  */
570
629
  roasAverageFloor?: (number) | null;
630
+ /**
631
+ * LinkedIn only. Effective cost model (billing event) of the LinkedIn campaign backing this ad set: CPM, CPC or CPV. Null for non-LinkedIn ad sets.
632
+ */
633
+ costType?: (string) | null;
634
+ /**
635
+ * LinkedIn only. Why the LinkedIn campaign backing this ad set is (or is not) delivering. A LinkedIn Campaign maps to this ad-set node, so this is the level where LinkedIn's holds actually apply. Empty means no serving data, ["RUNNABLE"] means eligible to serve, anything else is a hold. See the `servingStatuses` field on `Ad` for the known values.
636
+ */
637
+ servingStatuses?: Array<(string)>;
571
638
  /**
572
639
  * Meta promoted object for this ad set (conversion event details)
573
640
  */
@@ -665,7 +732,7 @@ export type AdTreeCampaign = {
665
732
  */
666
733
  platformObjective?: (string) | null;
667
734
  /**
668
- * Meta optimization goal shared across ad sets, or comma-separated values when ad sets differ (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION)
735
+ * Optimization goal shared across ad sets, or comma-separated values when ad sets differ. Meta: e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION. LinkedIn: the campaign optimizationTargetType (e.g. MAX_CLICK, MAX_IMPRESSION, NONE); `NONE` with a manual costType is a campaign LinkedIn will not deliver.
669
736
  */
670
737
  optimizationGoal?: (string) | null;
671
738
  /**
@@ -673,7 +740,7 @@ export type AdTreeCampaign = {
673
740
  */
674
741
  bidStrategy?: (BidStrategy | null);
675
742
  /**
676
- * Representative bid cap for the campaign bubbled up from the top-spending ad set's `bid_amount` (whole currency units). Populated when the ad-set bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP.
743
+ * Representative bid for the campaign, bubbled up from the top-spending ad set (whole currency units). Meta: populated when the ad-set bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. LinkedIn: the campaign unitCost, which has no bidStrategy gate and where 0 is a real, delivery-stopping value rather than unset.
677
744
  */
678
745
  bidAmount?: (number) | null;
679
746
  /**
@@ -22960,6 +23027,10 @@ export type ListContactsData = {
22960
23027
  search?: string;
22961
23028
  skip?: number;
22962
23029
  tag?: string;
23030
+ /**
23031
+ * Comma-separated tags, matches contacts carrying any of them
23032
+ */
23033
+ tags?: string;
22963
23034
  };
22964
23035
  };
22965
23036