@zernio/node 0.2.988 → 0.2.990

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
@@ -1960,7 +1960,7 @@ type Ad = {
1960
1960
  */
1961
1961
  status?: (AdStatus);
1962
1962
  /**
1963
- * The ad's own on/off switch as configured on the platform, independent of its parents: an ACTIVE ad under a paused ad set or campaign still reads ACTIVE here while `status` reads `paused`. Sources: Meta `configured_status`, TikTok ad `operation_status` (ENABLE -> ACTIVE, DISABLE -> PAUSED), ChatGPT (OpenAI) ad `status` (ACTIVE / PAUSED, plus ARCHIVED on OpenAI). Distinct from `status`, which is the ancestor-cascaded delivery status. Only present for Meta, TikTok and OpenAI ads created or synced after the field was added for that platform; null otherwise.
1963
+ * The ad's own on/off switch as configured on the platform, independent of its parents: an ACTIVE ad under a paused ad set or campaign still reads ACTIVE here while `status` reads `paused`. Sources: Meta `configured_status`, TikTok ad `operation_status` (ENABLE -> ACTIVE, DISABLE -> PAUSED), ChatGPT (OpenAI) ad `status` (ACTIVE / PAUSED, plus ARCHIVED on OpenAI). On create it is read back from the platform, not copied from the request, so it can read ACTIVE for a `PAUSED` create where the platform holds the pause at the campaign (some Meta create flows). A TikTok ad created `PAUSED` is switched off at the ad, ad group and campaign and reads PAUSED. Distinct from `status`, which is the ancestor-cascaded delivery status. Only present for Meta, TikTok and OpenAI ads created or synced after the field was added for that platform; null otherwise.
1964
1964
  */
1965
1965
  configuredStatus?: (string) | null;
1966
1966
  /**
@@ -38166,9 +38166,12 @@ type DuplicateAdCampaignData = {
38166
38166
  */
38167
38167
  statusOption?: 'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE';
38168
38168
  /**
38169
- * Reschedule the copied hierarchy's start time
38169
+ * Reschedule the copied hierarchy's start (ISO 8601). On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone; LinkedIn ad accounts carry no timezone, so there it is read as UTC. TikTok defaults to a start a few minutes after the copy.
38170
38170
  */
38171
38171
  startTime?: string;
38172
+ /**
38173
+ * Reschedule the copied hierarchy's end, read like `startTime`; a date-only end runs to 23:59:59 local. Defaults to the source's end.
38174
+ */
38172
38175
  endTime?: string;
38173
38176
  renameStrategy?: 'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME';
38174
38177
  renamePrefix?: string;
@@ -38538,9 +38541,12 @@ type DuplicateAdSetData = {
38538
38541
  deepCopy?: boolean;
38539
38542
  statusOption?: 'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE';
38540
38543
  /**
38541
- * Reschedule the copy's start time
38544
+ * Reschedule the copy's start (ISO 8601). A value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone.
38542
38545
  */
38543
38546
  startTime?: string;
38547
+ /**
38548
+ * Reschedule the copy's end, read like `startTime`; a date-only end runs to 23:59:59 local.
38549
+ */
38544
38550
  endTime?: string;
38545
38551
  renameStrategy?: 'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME';
38546
38552
  renamePrefix?: string;
@@ -42967,11 +42973,11 @@ type BoostPostData = {
42967
42973
  */
42968
42974
  currency?: string;
42969
42975
  /**
42970
- * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's `start_time`. When omitted the ad starts delivering immediately. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone. Same field as on POST /v1/ads/create.
42976
+ * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's `start_time`. When omitted the ad starts delivering immediately. On Meta, TikTok, X and Pinterest a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone. Same field as on POST /v1/ads/create.
42971
42977
  */
42972
42978
  startDate?: string;
42973
42979
  /**
42974
- * Ad-set end time (ISO 8601), mapped to the ad set's `end_time`. Required for lifetime budgets. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local. Same field as on POST /v1/ads/create.
42980
+ * Ad-set end time (ISO 8601), mapped to the ad set's `end_time`. Required for lifetime budgets. On Meta, TikTok, X and Pinterest a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local. Same field as on POST /v1/ads/create.
42975
42981
  */
42976
42982
  endDate?: string;
42977
42983
  /**
@@ -44110,16 +44116,18 @@ type CreateStandaloneAdData = {
44110
44116
  [key: string]: (number);
44111
44117
  };
44112
44118
  /**
44113
- * Required for lifetime budgets. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local.
44119
+ * Required for lifetime budgets. Read like `startDate` (account timezone on Meta, TikTok, X, Pinterest and OpenAI; whole account-local days on Google; UTC on LinkedIn), and a date-only end runs to 23:59:59 local.
44114
44120
  */
44115
44121
  endDate?: string;
44116
44122
  /**
44117
44123
  * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's
44118
44124
  * start (Meta `start_time`, TikTok ad group `schedule_start_time`, LinkedIn / Pinterest / X
44119
44125
  * / Google campaign start). When omitted the ad starts delivering immediately. For lifetime
44120
- * budgets Meta also requires `endDate`. On Meta and TikTok a value without an offset
44121
- * (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account
44122
- * timezone (Meta itself would read it as UTC). The created ad's `schedule` echoes the start
44126
+ * budgets Meta also requires `endDate`. On Meta, TikTok, X, Pinterest and OpenAI a value
44127
+ * without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read
44128
+ * in the ad account timezone (Meta itself would read it as UTC). Google runs whole days in
44129
+ * the customer account timezone and takes the value's calendar date as written. LinkedIn
44130
+ * ad accounts carry no timezone, so there a value without an offset is read as UTC. The created ad's `schedule` echoes the start
44123
44131
  * and end the platform stored, as UTC instants; when attaching to an existing ad set
44124
44132
  * (`adSetId`) it is that ad set's start and end. Same field as on `POST /v1/ads/boost`.
44125
44133
  *
package/dist/index.d.ts CHANGED
@@ -1960,7 +1960,7 @@ type Ad = {
1960
1960
  */
1961
1961
  status?: (AdStatus);
1962
1962
  /**
1963
- * The ad's own on/off switch as configured on the platform, independent of its parents: an ACTIVE ad under a paused ad set or campaign still reads ACTIVE here while `status` reads `paused`. Sources: Meta `configured_status`, TikTok ad `operation_status` (ENABLE -> ACTIVE, DISABLE -> PAUSED), ChatGPT (OpenAI) ad `status` (ACTIVE / PAUSED, plus ARCHIVED on OpenAI). Distinct from `status`, which is the ancestor-cascaded delivery status. Only present for Meta, TikTok and OpenAI ads created or synced after the field was added for that platform; null otherwise.
1963
+ * The ad's own on/off switch as configured on the platform, independent of its parents: an ACTIVE ad under a paused ad set or campaign still reads ACTIVE here while `status` reads `paused`. Sources: Meta `configured_status`, TikTok ad `operation_status` (ENABLE -> ACTIVE, DISABLE -> PAUSED), ChatGPT (OpenAI) ad `status` (ACTIVE / PAUSED, plus ARCHIVED on OpenAI). On create it is read back from the platform, not copied from the request, so it can read ACTIVE for a `PAUSED` create where the platform holds the pause at the campaign (some Meta create flows). A TikTok ad created `PAUSED` is switched off at the ad, ad group and campaign and reads PAUSED. Distinct from `status`, which is the ancestor-cascaded delivery status. Only present for Meta, TikTok and OpenAI ads created or synced after the field was added for that platform; null otherwise.
1964
1964
  */
1965
1965
  configuredStatus?: (string) | null;
1966
1966
  /**
@@ -38166,9 +38166,12 @@ type DuplicateAdCampaignData = {
38166
38166
  */
38167
38167
  statusOption?: 'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE';
38168
38168
  /**
38169
- * Reschedule the copied hierarchy's start time
38169
+ * Reschedule the copied hierarchy's start (ISO 8601). On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone; LinkedIn ad accounts carry no timezone, so there it is read as UTC. TikTok defaults to a start a few minutes after the copy.
38170
38170
  */
38171
38171
  startTime?: string;
38172
+ /**
38173
+ * Reschedule the copied hierarchy's end, read like `startTime`; a date-only end runs to 23:59:59 local. Defaults to the source's end.
38174
+ */
38172
38175
  endTime?: string;
38173
38176
  renameStrategy?: 'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME';
38174
38177
  renamePrefix?: string;
@@ -38538,9 +38541,12 @@ type DuplicateAdSetData = {
38538
38541
  deepCopy?: boolean;
38539
38542
  statusOption?: 'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE';
38540
38543
  /**
38541
- * Reschedule the copy's start time
38544
+ * Reschedule the copy's start (ISO 8601). A value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone.
38542
38545
  */
38543
38546
  startTime?: string;
38547
+ /**
38548
+ * Reschedule the copy's end, read like `startTime`; a date-only end runs to 23:59:59 local.
38549
+ */
38544
38550
  endTime?: string;
38545
38551
  renameStrategy?: 'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME';
38546
38552
  renamePrefix?: string;
@@ -42967,11 +42973,11 @@ type BoostPostData = {
42967
42973
  */
42968
42974
  currency?: string;
42969
42975
  /**
42970
- * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's `start_time`. When omitted the ad starts delivering immediately. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone. Same field as on POST /v1/ads/create.
42976
+ * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's `start_time`. When omitted the ad starts delivering immediately. On Meta, TikTok, X and Pinterest a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone. Same field as on POST /v1/ads/create.
42971
42977
  */
42972
42978
  startDate?: string;
42973
42979
  /**
42974
- * Ad-set end time (ISO 8601), mapped to the ad set's `end_time`. Required for lifetime budgets. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local. Same field as on POST /v1/ads/create.
42980
+ * Ad-set end time (ISO 8601), mapped to the ad set's `end_time`. Required for lifetime budgets. On Meta, TikTok, X and Pinterest a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local. Same field as on POST /v1/ads/create.
42975
42981
  */
42976
42982
  endDate?: string;
42977
42983
  /**
@@ -44110,16 +44116,18 @@ type CreateStandaloneAdData = {
44110
44116
  [key: string]: (number);
44111
44117
  };
44112
44118
  /**
44113
- * Required for lifetime budgets. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local.
44119
+ * Required for lifetime budgets. Read like `startDate` (account timezone on Meta, TikTok, X, Pinterest and OpenAI; whole account-local days on Google; UTC on LinkedIn), and a date-only end runs to 23:59:59 local.
44114
44120
  */
44115
44121
  endDate?: string;
44116
44122
  /**
44117
44123
  * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's
44118
44124
  * start (Meta `start_time`, TikTok ad group `schedule_start_time`, LinkedIn / Pinterest / X
44119
44125
  * / Google campaign start). When omitted the ad starts delivering immediately. For lifetime
44120
- * budgets Meta also requires `endDate`. On Meta and TikTok a value without an offset
44121
- * (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account
44122
- * timezone (Meta itself would read it as UTC). The created ad's `schedule` echoes the start
44126
+ * budgets Meta also requires `endDate`. On Meta, TikTok, X, Pinterest and OpenAI a value
44127
+ * without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read
44128
+ * in the ad account timezone (Meta itself would read it as UTC). Google runs whole days in
44129
+ * the customer account timezone and takes the value's calendar date as written. LinkedIn
44130
+ * ad accounts carry no timezone, so there a value without an offset is read as UTC. The created ad's `schedule` echoes the start
44123
44131
  * and end the platform stored, as UTC instants; when attaching to an existing ad set
44124
44132
  * (`adSetId`) it is that ad set's start and end. Same field as on `POST /v1/ads/boost`.
44125
44133
  *
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.988",
39
+ version: "0.2.990",
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.988",
8
+ version: "0.2.990",
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.988",
3
+ "version": "0.2.990",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -10028,7 +10028,10 @@ export const deleteAd = <ThrowOnError extends boolean = false>(options: OptionsL
10028
10028
  * effective story/media IDs). `platform` is inferred from the ad, so it's
10029
10029
  * not required in the body. Ads in terminal statuses (rejected, completed,
10030
10030
  * cancelled) are skipped, and so is a request whose target already matches
10031
- * the ad's own switch. The rolled-up `status` never decides a skip.
10031
+ * the ad's own switch as read LIVE from the platform (a stored value is
10032
+ * never trusted alone, since the switch may have been changed in the
10033
+ * platform's own UI). A skip also returns that live read. The rolled-up
10034
+ * `status` never decides a skip.
10032
10035
  *
10033
10036
  */
10034
10037
  export const updateAdStatus = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdStatusData, ThrowOnError>) => {
@@ -92,7 +92,7 @@ export type Ad = {
92
92
  */
93
93
  status?: (AdStatus);
94
94
  /**
95
- * The ad's own on/off switch as configured on the platform, independent of its parents: an ACTIVE ad under a paused ad set or campaign still reads ACTIVE here while `status` reads `paused`. Sources: Meta `configured_status`, TikTok ad `operation_status` (ENABLE -> ACTIVE, DISABLE -> PAUSED), ChatGPT (OpenAI) ad `status` (ACTIVE / PAUSED, plus ARCHIVED on OpenAI). Distinct from `status`, which is the ancestor-cascaded delivery status. Only present for Meta, TikTok and OpenAI ads created or synced after the field was added for that platform; null otherwise.
95
+ * The ad's own on/off switch as configured on the platform, independent of its parents: an ACTIVE ad under a paused ad set or campaign still reads ACTIVE here while `status` reads `paused`. Sources: Meta `configured_status`, TikTok ad `operation_status` (ENABLE -> ACTIVE, DISABLE -> PAUSED), ChatGPT (OpenAI) ad `status` (ACTIVE / PAUSED, plus ARCHIVED on OpenAI). On create it is read back from the platform, not copied from the request, so it can read ACTIVE for a `PAUSED` create where the platform holds the pause at the campaign (some Meta create flows). A TikTok ad created `PAUSED` is switched off at the ad, ad group and campaign and reads PAUSED. Distinct from `status`, which is the ancestor-cascaded delivery status. Only present for Meta, TikTok and OpenAI ads created or synced after the field was added for that platform; null otherwise.
96
96
  */
97
97
  configuredStatus?: (string) | null;
98
98
  /**
@@ -38556,9 +38556,12 @@ export type DuplicateAdCampaignData = {
38556
38556
  */
38557
38557
  statusOption?: 'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE';
38558
38558
  /**
38559
- * Reschedule the copied hierarchy's start time
38559
+ * Reschedule the copied hierarchy's start (ISO 8601). On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone; LinkedIn ad accounts carry no timezone, so there it is read as UTC. TikTok defaults to a start a few minutes after the copy.
38560
38560
  */
38561
38561
  startTime?: string;
38562
+ /**
38563
+ * Reschedule the copied hierarchy's end, read like `startTime`; a date-only end runs to 23:59:59 local. Defaults to the source's end.
38564
+ */
38562
38565
  endTime?: string;
38563
38566
  renameStrategy?: 'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME';
38564
38567
  renamePrefix?: string;
@@ -38943,9 +38946,12 @@ export type DuplicateAdSetData = {
38943
38946
  deepCopy?: boolean;
38944
38947
  statusOption?: 'ACTIVE' | 'PAUSED' | 'INHERITED_FROM_SOURCE';
38945
38948
  /**
38946
- * Reschedule the copy's start time
38949
+ * Reschedule the copy's start (ISO 8601). A value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone.
38947
38950
  */
38948
38951
  startTime?: string;
38952
+ /**
38953
+ * Reschedule the copy's end, read like `startTime`; a date-only end runs to 23:59:59 local.
38954
+ */
38949
38955
  endTime?: string;
38950
38956
  renameStrategy?: 'DEEP_RENAME' | 'ONLY_TOP_LEVEL_RENAME' | 'NO_RENAME';
38951
38957
  renamePrefix?: string;
@@ -43684,11 +43690,11 @@ export type BoostPostData = {
43684
43690
  */
43685
43691
  currency?: string;
43686
43692
  /**
43687
- * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's `start_time`. When omitted the ad starts delivering immediately. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone. Same field as on POST /v1/ads/create.
43693
+ * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's `start_time`. When omitted the ad starts delivering immediately. On Meta, TikTok, X and Pinterest a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone. Same field as on POST /v1/ads/create.
43688
43694
  */
43689
43695
  startDate?: string;
43690
43696
  /**
43691
- * Ad-set end time (ISO 8601), mapped to the ad set's `end_time`. Required for lifetime budgets. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local. Same field as on POST /v1/ads/create.
43697
+ * Ad-set end time (ISO 8601), mapped to the ad set's `end_time`. Required for lifetime budgets. On Meta, TikTok, X and Pinterest a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local. Same field as on POST /v1/ads/create.
43692
43698
  */
43693
43699
  endDate?: string;
43694
43700
  /**
@@ -44851,16 +44857,18 @@ export type CreateStandaloneAdData = {
44851
44857
  [key: string]: (number);
44852
44858
  };
44853
44859
  /**
44854
- * Required for lifetime budgets. On Meta and TikTok a value without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account timezone, and a date-only end runs to 23:59:59 local.
44860
+ * Required for lifetime budgets. Read like `startDate` (account timezone on Meta, TikTok, X, Pinterest and OpenAI; whole account-local days on Google; UTC on LinkedIn), and a date-only end runs to 23:59:59 local.
44855
44861
  */
44856
44862
  endDate?: string;
44857
44863
  /**
44858
44864
  * Ad-set start time (ISO 8601, e.g. "2026-06-10T09:00:00Z"), mapped to the ad set's
44859
44865
  * start (Meta `start_time`, TikTok ad group `schedule_start_time`, LinkedIn / Pinterest / X
44860
44866
  * / Google campaign start). When omitted the ad starts delivering immediately. For lifetime
44861
- * budgets Meta also requires `endDate`. On Meta and TikTok a value without an offset
44862
- * (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read in the ad account
44863
- * timezone (Meta itself would read it as UTC). The created ad's `schedule` echoes the start
44867
+ * budgets Meta also requires `endDate`. On Meta, TikTok, X, Pinterest and OpenAI a value
44868
+ * without an offset (`YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DDTHH:MM:SS`) is read
44869
+ * in the ad account timezone (Meta itself would read it as UTC). Google runs whole days in
44870
+ * the customer account timezone and takes the value's calendar date as written. LinkedIn
44871
+ * ad accounts carry no timezone, so there a value without an offset is read as UTC. The created ad's `schedule` echoes the start
44864
44872
  * and end the platform stored, as UTC instants; when attaching to an existing ad set
44865
44873
  * (`adSetId`) it is that ad set's start and end. Same field as on `POST /v1/ads/boost`.
44866
44874
  *