@zernio/node 0.2.996 → 0.2.997

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
@@ -37807,19 +37807,27 @@ type UpdateAdCampaignStatusData = {
37807
37807
  };
37808
37808
  type UpdateAdCampaignStatusResponse = ({
37809
37809
  /**
37810
- * The status written to the campaign
37810
+ * The campaign's delivery status derived from its switch as read back (`paused` when the switch is off). Echoes the request when the platform could not be read.
37811
37811
  */
37812
37812
  status?: 'active' | 'paused';
37813
37813
  /**
37814
- * Number of ads whose own stored status changed too. 0 is normal on a resume whose ads are all awaiting the platform.
37814
+ * The campaign's own switch as read back from the platform, in the raw platform vocabulary (Meta effective_status, TikTok ENABLE / DISABLE, Google ENABLED / PAUSED, ChatGPT (OpenAI) status). Null when the platform could not be read, which is always the case on Pinterest, LinkedIn and X (no single-campaign read).
37815
37815
  */
37816
- updated?: number;
37816
+ platformCampaignStatus?: (string) | null;
37817
37817
  /**
37818
- * Number of ads whose own status was left as it was
37818
+ * When the switch was read back. Null when it could not be read.
37819
37819
  */
37820
- skipped?: number;
37820
+ statusReadAt?: (string) | null;
37821
+ /**
37822
+ * 1 when the campaign's switch was written.
37823
+ */
37824
+ updated?: 0 | 1;
37821
37825
  /**
37822
- * Why each group of ads was skipped
37826
+ * 1 when a live read showed the campaign already in the requested state, so nothing was written.
37827
+ */
37828
+ skipped?: 0 | 1;
37829
+ /**
37830
+ * Why the write was skipped, for example "Campaign already switched off".
37823
37831
  */
37824
37832
  skippedReasons?: Array<(string)>;
37825
37833
  });
@@ -38204,8 +38212,12 @@ type BulkUpdateAdCampaignStatusResponse = ({
38204
38212
  results?: Array<{
38205
38213
  platformCampaignId?: string;
38206
38214
  platform?: string;
38207
- updated?: number;
38208
- skipped?: number;
38215
+ updated?: 0 | 1;
38216
+ skipped?: 0 | 1;
38217
+ /**
38218
+ * The campaign's own switch read back from the platform; null when it could not be read.
38219
+ */
38220
+ platformCampaignStatus?: (string) | null;
38209
38221
  error?: string;
38210
38222
  }>;
38211
38223
  });
@@ -38862,20 +38874,23 @@ type UpdateAdSetResponse = ({
38862
38874
  budget?: AdBudget;
38863
38875
  budgetLevel?: 'adset';
38864
38876
  /**
38865
- * The status written to the ad set switch
38877
+ * As in PUT /v1/ads/ad-sets/{adSetId}/status: delivery derived from the switches read back.
38866
38878
  */
38867
38879
  status?: 'active' | 'paused';
38868
38880
  /**
38869
- * Number of ads whose own stored status changed alongside the ad set switch
38881
+ * The ad set's own switch read back from the platform; null when it could not be read.
38870
38882
  */
38871
- statusUpdated?: number;
38883
+ platformAdSetStatus?: (string) | null;
38884
+ platformCampaignStatus?: (string) | null;
38885
+ statusReadAt?: (string) | null;
38872
38886
  /**
38873
- * Number of ads whose own status was left as it was
38887
+ * 1 when the ad set's switch was written.
38874
38888
  */
38875
- statusSkipped?: number;
38889
+ statusUpdated?: 0 | 1;
38876
38890
  /**
38877
- * Why each group of ads was skipped
38891
+ * 1 when a live read showed it already in the requested state.
38878
38892
  */
38893
+ statusSkipped?: 0 | 1;
38879
38894
  statusSkippedReasons?: Array<(string)>;
38880
38895
  bidStrategy?: BidStrategy;
38881
38896
  bidAmount?: (number) | null;
@@ -38919,19 +38934,31 @@ type UpdateAdSetStatusData = {
38919
38934
  };
38920
38935
  type UpdateAdSetStatusResponse = ({
38921
38936
  /**
38922
- * The status written to the ad set switch
38937
+ * The ad set's delivery status derived from the switches read back: `paused` when its own switch or its campaign's switch is off. Echoes the request when the platform could not be read.
38923
38938
  */
38924
38939
  status?: 'active' | 'paused';
38925
38940
  /**
38926
- * Number of ads whose own stored status changed too. 0 is normal on a resume whose ads are all awaiting the platform.
38941
+ * The ad set's own switch as read back from the platform, in the raw platform vocabulary (Meta effective_status, TikTok ENABLE / DISABLE, Google ENABLED / PAUSED, LinkedIn and Pinterest ACTIVE / PAUSED, ChatGPT (OpenAI) status). Null when the platform could not be read, which is always the case on X.
38927
38942
  */
38928
- updated?: number;
38943
+ platformAdSetStatus?: (string) | null;
38929
38944
  /**
38930
- * Number of ads whose own status was left as it was
38945
+ * The parent campaign's switch, read in the same call where the platform returns it, otherwise the stored value.
38931
38946
  */
38932
- skipped?: number;
38947
+ platformCampaignStatus?: (string) | null;
38948
+ /**
38949
+ * When the ad set switch was read back. Null when it could not be read.
38950
+ */
38951
+ statusReadAt?: (string) | null;
38952
+ /**
38953
+ * 1 when the ad set's switch was written.
38954
+ */
38955
+ updated?: 0 | 1;
38956
+ /**
38957
+ * 1 when a live read showed the ad set already in the requested state, so nothing was written.
38958
+ */
38959
+ skipped?: 0 | 1;
38933
38960
  /**
38934
- * Why each group of ads was skipped (for example "2 ads already switched off", read from each ad's own switch)
38961
+ * Why the write was skipped, for example "Ad set already switched off".
38935
38962
  */
38936
38963
  skippedReasons?: Array<(string)>;
38937
38964
  });
package/dist/index.d.ts CHANGED
@@ -37807,19 +37807,27 @@ type UpdateAdCampaignStatusData = {
37807
37807
  };
37808
37808
  type UpdateAdCampaignStatusResponse = ({
37809
37809
  /**
37810
- * The status written to the campaign
37810
+ * The campaign's delivery status derived from its switch as read back (`paused` when the switch is off). Echoes the request when the platform could not be read.
37811
37811
  */
37812
37812
  status?: 'active' | 'paused';
37813
37813
  /**
37814
- * Number of ads whose own stored status changed too. 0 is normal on a resume whose ads are all awaiting the platform.
37814
+ * The campaign's own switch as read back from the platform, in the raw platform vocabulary (Meta effective_status, TikTok ENABLE / DISABLE, Google ENABLED / PAUSED, ChatGPT (OpenAI) status). Null when the platform could not be read, which is always the case on Pinterest, LinkedIn and X (no single-campaign read).
37815
37815
  */
37816
- updated?: number;
37816
+ platformCampaignStatus?: (string) | null;
37817
37817
  /**
37818
- * Number of ads whose own status was left as it was
37818
+ * When the switch was read back. Null when it could not be read.
37819
37819
  */
37820
- skipped?: number;
37820
+ statusReadAt?: (string) | null;
37821
+ /**
37822
+ * 1 when the campaign's switch was written.
37823
+ */
37824
+ updated?: 0 | 1;
37821
37825
  /**
37822
- * Why each group of ads was skipped
37826
+ * 1 when a live read showed the campaign already in the requested state, so nothing was written.
37827
+ */
37828
+ skipped?: 0 | 1;
37829
+ /**
37830
+ * Why the write was skipped, for example "Campaign already switched off".
37823
37831
  */
37824
37832
  skippedReasons?: Array<(string)>;
37825
37833
  });
@@ -38204,8 +38212,12 @@ type BulkUpdateAdCampaignStatusResponse = ({
38204
38212
  results?: Array<{
38205
38213
  platformCampaignId?: string;
38206
38214
  platform?: string;
38207
- updated?: number;
38208
- skipped?: number;
38215
+ updated?: 0 | 1;
38216
+ skipped?: 0 | 1;
38217
+ /**
38218
+ * The campaign's own switch read back from the platform; null when it could not be read.
38219
+ */
38220
+ platformCampaignStatus?: (string) | null;
38209
38221
  error?: string;
38210
38222
  }>;
38211
38223
  });
@@ -38862,20 +38874,23 @@ type UpdateAdSetResponse = ({
38862
38874
  budget?: AdBudget;
38863
38875
  budgetLevel?: 'adset';
38864
38876
  /**
38865
- * The status written to the ad set switch
38877
+ * As in PUT /v1/ads/ad-sets/{adSetId}/status: delivery derived from the switches read back.
38866
38878
  */
38867
38879
  status?: 'active' | 'paused';
38868
38880
  /**
38869
- * Number of ads whose own stored status changed alongside the ad set switch
38881
+ * The ad set's own switch read back from the platform; null when it could not be read.
38870
38882
  */
38871
- statusUpdated?: number;
38883
+ platformAdSetStatus?: (string) | null;
38884
+ platformCampaignStatus?: (string) | null;
38885
+ statusReadAt?: (string) | null;
38872
38886
  /**
38873
- * Number of ads whose own status was left as it was
38887
+ * 1 when the ad set's switch was written.
38874
38888
  */
38875
- statusSkipped?: number;
38889
+ statusUpdated?: 0 | 1;
38876
38890
  /**
38877
- * Why each group of ads was skipped
38891
+ * 1 when a live read showed it already in the requested state.
38878
38892
  */
38893
+ statusSkipped?: 0 | 1;
38879
38894
  statusSkippedReasons?: Array<(string)>;
38880
38895
  bidStrategy?: BidStrategy;
38881
38896
  bidAmount?: (number) | null;
@@ -38919,19 +38934,31 @@ type UpdateAdSetStatusData = {
38919
38934
  };
38920
38935
  type UpdateAdSetStatusResponse = ({
38921
38936
  /**
38922
- * The status written to the ad set switch
38937
+ * The ad set's delivery status derived from the switches read back: `paused` when its own switch or its campaign's switch is off. Echoes the request when the platform could not be read.
38923
38938
  */
38924
38939
  status?: 'active' | 'paused';
38925
38940
  /**
38926
- * Number of ads whose own stored status changed too. 0 is normal on a resume whose ads are all awaiting the platform.
38941
+ * The ad set's own switch as read back from the platform, in the raw platform vocabulary (Meta effective_status, TikTok ENABLE / DISABLE, Google ENABLED / PAUSED, LinkedIn and Pinterest ACTIVE / PAUSED, ChatGPT (OpenAI) status). Null when the platform could not be read, which is always the case on X.
38927
38942
  */
38928
- updated?: number;
38943
+ platformAdSetStatus?: (string) | null;
38929
38944
  /**
38930
- * Number of ads whose own status was left as it was
38945
+ * The parent campaign's switch, read in the same call where the platform returns it, otherwise the stored value.
38931
38946
  */
38932
- skipped?: number;
38947
+ platformCampaignStatus?: (string) | null;
38948
+ /**
38949
+ * When the ad set switch was read back. Null when it could not be read.
38950
+ */
38951
+ statusReadAt?: (string) | null;
38952
+ /**
38953
+ * 1 when the ad set's switch was written.
38954
+ */
38955
+ updated?: 0 | 1;
38956
+ /**
38957
+ * 1 when a live read showed the ad set already in the requested state, so nothing was written.
38958
+ */
38959
+ skipped?: 0 | 1;
38933
38960
  /**
38934
- * Why each group of ads was skipped (for example "2 ads already switched off", read from each ad's own switch)
38961
+ * Why the write was skipped, for example "Ad set already switched off".
38935
38962
  */
38936
38963
  skippedReasons?: Array<(string)>;
38937
38964
  });
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: "@zernio/node",
39
- version: "0.2.996",
39
+ version: "0.2.997",
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: "@zernio/node",
8
- version: "0.2.996",
8
+ version: "0.2.997",
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": "@zernio/node",
3
- "version": "0.2.996",
3
+ "version": "0.2.997",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -9306,40 +9306,19 @@ export const createAdCampaign = <ThrowOnError extends boolean = false>(options:
9306
9306
 
9307
9307
  /**
9308
9308
  * Pause or resume a campaign
9309
- * Writes the campaign's own on/off switch, then lets the platform cascade delivery to its ad sets and ads.
9310
- *
9311
- * **What the write touches (current semantics, per platform).** TikTok: the campaign, every
9312
- * ad group and every ad under it that is not in a terminal status (rejected, completed,
9313
- * cancelled), on pause and on resume alike, so a resume also switches those ad groups and ads
9314
- * on. LinkedIn: the campaign group plus the campaigns and creatives of its non-terminal ads.
9315
- * Google: `paused` writes the campaign alone; `active` also switches on the ad groups and ads
9316
- * Zernio tracks under it (see below). Pinterest: the campaign plus one tracked ad and its ad
9317
- * group. X: the campaign plus one tracked line item. Meta and ChatGPT (OpenAI): the campaign
9318
- * switch only.
9319
- *
9320
- * **Counts and readback.** Before the write, each ad's own switch is read live from the
9321
- * platform (up to 20 ads; beyond that the stored switch is used), and `updated` / `skipped`
9322
- * are computed against that live state. After the write each ad's own switch and delivery
9323
- * status are read again and stored, and the campaign switch is re-read and stored, so an
9324
- * immediate GET returns what the platform now reports.
9325
- *
9326
- * The switch is always written, whatever delivery status the ads underneath report: an ad still in review
9327
- * does not block resuming its campaign. The echoed `status` is the confirmation that it landed.
9328
- *
9329
- * `updated` / `skipped` describe only the ads whose own status changed alongside it, so
9330
- * `updated: 0` is a normal successful response, not a no-op. Ads are skipped when they are in a terminal
9331
- * status (rejected, completed, cancelled), already in the target state, or switched on but not yet
9332
- * delivering. The last group keeps its `pending_review` / `error` status until the platform reports what
9333
- * it became. `skippedReasons` names which case applies.
9334
- *
9335
- * On Meta this flips the campaign only. An ad set paused in its own right stays paused, so pair this with
9336
- * PUT /v1/ads/ad-sets/{adSetId}/status when you also need the ad set switched back on.
9337
- *
9338
- * Google keeps an independent on/off switch at campaign, ad group and ad level and the most restrictive
9339
- * one wins, so `active` switches the campaign on TOGETHER with the ad groups and ads Zernio tracks under
9340
- * it, in one mutate. Without that the campaign reads ENABLED while a paused ad group or ad keeps it from
9341
- * serving. `paused` writes the campaign alone, which already stops delivery and leaves each ad's own
9342
- * switch as you set it.
9309
+ * Writes the campaign's own on/off switch and nothing else, on every platform (Meta, TikTok,
9310
+ * Google, LinkedIn campaign group, Pinterest, X, ChatGPT (OpenAI)). Its ad sets and ads keep
9311
+ * their own switches: pausing stops their delivery through the campaign, and resuming lets
9312
+ * each of them deliver again only if its own switch is on. An ad set or ad you paused
9313
+ * individually stays paused; resume it with PUT /v1/ads/ad-sets/{adSetId}/status or
9314
+ * PUT /v1/ads/{adId}/status. See the Status model in the Ad Campaigns tag.
9315
+ *
9316
+ * **Live read, then write.** The campaign's switch is read from the platform first. When that
9317
+ * live read shows it already in the requested state nothing is written (`updated: 0`,
9318
+ * `skipped: 1`, with the reason). Otherwise the switch is written (`updated: 1`), read back and
9319
+ * stored, and the delivery status of the ads under it (up to 20) is re-read and stored, so an
9320
+ * immediate GET returns what the platform now reports. A stored switch never skips a write, and
9321
+ * when the platform cannot be read the write always goes out.
9343
9322
  *
9344
9323
  */
9345
9324
  export const updateAdCampaignStatus = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdCampaignStatusData, ThrowOnError>) => {
@@ -9554,9 +9533,10 @@ export const replaceCampaignNegativeKeywords = <ThrowOnError extends boolean = f
9554
9533
  * Pause or resume many campaigns
9555
9534
  * Process up to 50 campaigns in one call. Each campaign is updated
9556
9535
  * concurrently and the response contains a per-campaign result so a
9557
- * single bad row does not fail the whole batch. Each campaign is written,
9558
- * counted and re-read exactly as PUT /v1/ads/campaigns/{campaignId}/status
9559
- * describes, including which child ad sets and ads each platform writes.
9536
+ * single bad row does not fail the whole batch. Each campaign is read,
9537
+ * written and re-read exactly as PUT /v1/ads/campaigns/{campaignId}/status
9538
+ * describes: only the campaign's own switch is written, never its ad sets'
9539
+ * or ads'. `updated` / `skipped` count campaigns.
9560
9540
  *
9561
9541
  */
9562
9542
  export const bulkUpdateAdCampaignStatus = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<BulkUpdateAdCampaignStatusData, ThrowOnError>) => {
@@ -9827,9 +9807,9 @@ export const getAdSetDetails = <ThrowOnError extends boolean = false>(options: O
9827
9807
  * PUT /v1/ads/campaigns/{campaignId} instead.
9828
9808
  *
9829
9809
  * `status` behaves exactly as PUT /v1/ads/ad-sets/{adSetId}/status
9830
- * describes, including which child ads each platform writes with the ad
9831
- * set and how `statusUpdated` / `statusSkipped` are counted against the
9832
- * ads' live switches.
9810
+ * describes: only the ad set's own switch is written, its ads keep
9811
+ * theirs, and `statusUpdated` / `statusSkipped` report whether that switch
9812
+ * was written or a live read showed it already in place.
9833
9813
  *
9834
9814
  */
9835
9815
  export const updateAdSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdSetData, ThrowOnError>) => {
@@ -9865,35 +9845,23 @@ export const deleteAdSet = <ThrowOnError extends boolean = false>(options: Optio
9865
9845
  * status toggle and prefer a symmetric URL to
9866
9846
  * /v1/ads/campaigns/{campaignId}/status.
9867
9847
  *
9868
- * Writes the ad set's own on/off switch on every platform (Meta
9869
- * `configured_status`, TikTok ad group `operation_status`, Google ad group
9870
- * status, LinkedIn campaign, Pinterest ad group, X line item, OpenAI ad
9871
- * group), whatever delivery status its ads report: an ad still in review
9872
- * or paused by its campaign does not block it. The echoed `status` is the
9873
- * confirmation that it landed.
9874
- *
9875
- * **What the write touches (current semantics, per platform).** On TikTok the ad group AND
9876
- * every ad under it that is not in a terminal status (rejected, completed, cancelled) are
9877
- * written to the target state, on pause and on resume alike, so a resume also switches those
9878
- * ads on. Pinterest and ChatGPT (OpenAI) do the same with their ads. On Meta, Google, LinkedIn
9879
- * (campaign) and X (line item) only the ad set's own switch is written and each ad keeps its
9880
- * own switch.
9881
- *
9882
- * **Counts and readback.** Before the write, each ad's own switch is read live from the
9883
- * platform (up to 20 ads; beyond that the stored switch is used), and `updated` / `skipped`
9884
- * are computed against that live state, not against a stored switch a change in the
9885
- * platform's UI may have left stale. After the write each ad's own switch and delivery
9886
- * status are read again and stored, and the ad set switch is re-read and stored, so an
9887
- * immediate GET returns what the platform now reports.
9888
- *
9889
- * `updated` / `skipped` describe only the ads whose own status changed
9890
- * alongside the switch, so `updated: 0` is a normal successful response.
9891
- * See `skippedReasons` for which of the three cases applies (terminal,
9892
- * own switch already in the target state, or switched on but not yet
9893
- * delivering).
9894
- *
9895
- * A campaign created paused needs its campaign resumed as well: pair this
9896
- * with PUT /v1/ads/campaigns/{campaignId}/status.
9848
+ * Writes the ad set's own on/off switch and nothing else, on every platform
9849
+ * (Meta `configured_status`, TikTok ad group `operation_status`, Google ad
9850
+ * group status, LinkedIn campaign, Pinterest ad group, X line item, ChatGPT
9851
+ * (OpenAI) ad group). Its ads keep their own switches: an ad you paused
9852
+ * individually stays paused when the ad set resumes. The campaign above is
9853
+ * not touched either, so an ad set resumed under a paused campaign reads
9854
+ * `status: paused` until the campaign is resumed too. See the Status model
9855
+ * in the Ad Campaigns tag.
9856
+ *
9857
+ * **Live read, then write.** The ad set's switch is read from the platform
9858
+ * first. When that live read shows it already in the requested state
9859
+ * nothing is written (`updated: 0`, `skipped: 1`, with the reason).
9860
+ * Otherwise the switch is written (`updated: 1`), read back and stored, and
9861
+ * the delivery status of its ads (up to 20) is re-read and stored, so an
9862
+ * immediate GET returns what the platform now reports. A stored switch
9863
+ * never skips a write, and when the platform cannot be read the write
9864
+ * always goes out.
9897
9865
  *
9898
9866
  */
9899
9867
  export const updateAdSetStatus = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdSetStatusData, ThrowOnError>) => {
@@ -38175,19 +38175,27 @@ export type UpdateAdCampaignStatusData = {
38175
38175
 
38176
38176
  export type UpdateAdCampaignStatusResponse = ({
38177
38177
  /**
38178
- * The status written to the campaign
38178
+ * The campaign's delivery status derived from its switch as read back (`paused` when the switch is off). Echoes the request when the platform could not be read.
38179
38179
  */
38180
38180
  status?: 'active' | 'paused';
38181
38181
  /**
38182
- * Number of ads whose own stored status changed too. 0 is normal on a resume whose ads are all awaiting the platform.
38182
+ * The campaign's own switch as read back from the platform, in the raw platform vocabulary (Meta effective_status, TikTok ENABLE / DISABLE, Google ENABLED / PAUSED, ChatGPT (OpenAI) status). Null when the platform could not be read, which is always the case on Pinterest, LinkedIn and X (no single-campaign read).
38183
38183
  */
38184
- updated?: number;
38184
+ platformCampaignStatus?: (string) | null;
38185
38185
  /**
38186
- * Number of ads whose own status was left as it was
38186
+ * When the switch was read back. Null when it could not be read.
38187
38187
  */
38188
- skipped?: number;
38188
+ statusReadAt?: (string) | null;
38189
+ /**
38190
+ * 1 when the campaign's switch was written.
38191
+ */
38192
+ updated?: 0 | 1;
38189
38193
  /**
38190
- * Why each group of ads was skipped
38194
+ * 1 when a live read showed the campaign already in the requested state, so nothing was written.
38195
+ */
38196
+ skipped?: 0 | 1;
38197
+ /**
38198
+ * Why the write was skipped, for example "Campaign already switched off".
38191
38199
  */
38192
38200
  skippedReasons?: Array<(string)>;
38193
38201
  });
@@ -38599,8 +38607,12 @@ export type BulkUpdateAdCampaignStatusResponse = ({
38599
38607
  results?: Array<{
38600
38608
  platformCampaignId?: string;
38601
38609
  platform?: string;
38602
- updated?: number;
38603
- skipped?: number;
38610
+ updated?: 0 | 1;
38611
+ skipped?: 0 | 1;
38612
+ /**
38613
+ * The campaign's own switch read back from the platform; null when it could not be read.
38614
+ */
38615
+ platformCampaignStatus?: (string) | null;
38604
38616
  error?: string;
38605
38617
  }>;
38606
38618
  });
@@ -39284,20 +39296,23 @@ export type UpdateAdSetResponse = ({
39284
39296
  budget?: AdBudget;
39285
39297
  budgetLevel?: 'adset';
39286
39298
  /**
39287
- * The status written to the ad set switch
39299
+ * As in PUT /v1/ads/ad-sets/{adSetId}/status: delivery derived from the switches read back.
39288
39300
  */
39289
39301
  status?: 'active' | 'paused';
39290
39302
  /**
39291
- * Number of ads whose own stored status changed alongside the ad set switch
39303
+ * The ad set's own switch read back from the platform; null when it could not be read.
39292
39304
  */
39293
- statusUpdated?: number;
39305
+ platformAdSetStatus?: (string) | null;
39306
+ platformCampaignStatus?: (string) | null;
39307
+ statusReadAt?: (string) | null;
39294
39308
  /**
39295
- * Number of ads whose own status was left as it was
39309
+ * 1 when the ad set's switch was written.
39296
39310
  */
39297
- statusSkipped?: number;
39311
+ statusUpdated?: 0 | 1;
39298
39312
  /**
39299
- * Why each group of ads was skipped
39313
+ * 1 when a live read showed it already in the requested state.
39300
39314
  */
39315
+ statusSkipped?: 0 | 1;
39301
39316
  statusSkippedReasons?: Array<(string)>;
39302
39317
  bidStrategy?: BidStrategy;
39303
39318
  bidAmount?: (number) | null;
@@ -39347,19 +39362,31 @@ export type UpdateAdSetStatusData = {
39347
39362
 
39348
39363
  export type UpdateAdSetStatusResponse = ({
39349
39364
  /**
39350
- * The status written to the ad set switch
39365
+ * The ad set's delivery status derived from the switches read back: `paused` when its own switch or its campaign's switch is off. Echoes the request when the platform could not be read.
39351
39366
  */
39352
39367
  status?: 'active' | 'paused';
39353
39368
  /**
39354
- * Number of ads whose own stored status changed too. 0 is normal on a resume whose ads are all awaiting the platform.
39369
+ * The ad set's own switch as read back from the platform, in the raw platform vocabulary (Meta effective_status, TikTok ENABLE / DISABLE, Google ENABLED / PAUSED, LinkedIn and Pinterest ACTIVE / PAUSED, ChatGPT (OpenAI) status). Null when the platform could not be read, which is always the case on X.
39355
39370
  */
39356
- updated?: number;
39371
+ platformAdSetStatus?: (string) | null;
39357
39372
  /**
39358
- * Number of ads whose own status was left as it was
39373
+ * The parent campaign's switch, read in the same call where the platform returns it, otherwise the stored value.
39359
39374
  */
39360
- skipped?: number;
39375
+ platformCampaignStatus?: (string) | null;
39376
+ /**
39377
+ * When the ad set switch was read back. Null when it could not be read.
39378
+ */
39379
+ statusReadAt?: (string) | null;
39380
+ /**
39381
+ * 1 when the ad set's switch was written.
39382
+ */
39383
+ updated?: 0 | 1;
39384
+ /**
39385
+ * 1 when a live read showed the ad set already in the requested state, so nothing was written.
39386
+ */
39387
+ skipped?: 0 | 1;
39361
39388
  /**
39362
- * Why each group of ads was skipped (for example "2 ads already switched off", read from each ad's own switch)
39389
+ * Why the write was skipped, for example "Ad set already switched off".
39363
39390
  */
39364
39391
  skippedReasons?: Array<(string)>;
39365
39392
  });