@zernio/node 0.2.724 → 0.2.726

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
@@ -20917,7 +20917,7 @@ type SendInboxMessageData = {
20917
20917
  */
20918
20918
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
20919
20919
  /**
20920
- * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without send-side reply support, including Instagram and Facebook Messenger (Meta's Send API rejects reply_to on Instagram and does not expose it on Messenger).
20920
+ * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Instagram and Facebook Messenger do not support send-side quote replies: the message is sent without a quote and the successful response includes a warnings entry with code ignored_field and param replyTo. Other platforms without send-side reply support ignore this field.
20921
20921
  */
20922
20922
  replyTo?: string;
20923
20923
  /**
@@ -20981,6 +20981,17 @@ type SendInboxMessageData = {
20981
20981
  };
20982
20982
  type SendInboxMessageResponse = ({
20983
20983
  success?: boolean;
20984
+ /**
20985
+ * Present when a successful send ignored replyTo on Instagram or Facebook Messenger. The message was sent without a quote; do not retry it to apply the reply.
20986
+ */
20987
+ warnings?: Array<{
20988
+ code: 'ignored_field';
20989
+ param: 'replyTo';
20990
+ /**
20991
+ * Human-readable explanation of the ignored field.
20992
+ */
20993
+ message: string;
20994
+ }>;
20984
20995
  data?: {
20985
20996
  /**
20986
20997
  * Platform id of the sent message (not returned for Reddit). For WhatsApp this is the raw Meta wamid, the same id delivered as message.platformMessageId on webhooks and delivery-status updates, and the value to pass as replyTo to quote-reply.
@@ -31015,6 +31026,22 @@ type GetCampaignTargetingResponse = ({
31015
31026
  * true = excluded location.
31016
31027
  */
31017
31028
  negative?: boolean;
31029
+ /**
31030
+ * Google's geo_target_constant.name, e.g. "United States"; null when the id could not be resolved.
31031
+ */
31032
+ name?: (string) | null;
31033
+ /**
31034
+ * Google's geo_target_constant.canonical_name, e.g. "California, United States"; null when the id could not be resolved.
31035
+ */
31036
+ canonicalName?: (string) | null;
31037
+ /**
31038
+ * Google's geo_target_constant.target_type, e.g. "Country", "Region", "City"; null when the id could not be resolved.
31039
+ */
31040
+ type?: (string) | null;
31041
+ /**
31042
+ * Google's geo_target_constant.country_code, an ISO 3166-1 alpha-2 code; null when the id could not be resolved.
31043
+ */
31044
+ countryCode?: (string) | null;
31018
31045
  }>;
31019
31046
  languages?: Array<{
31020
31047
  /**
@@ -31111,6 +31138,22 @@ type UpdateCampaignTargetingResponse = ({
31111
31138
  * true = excluded location.
31112
31139
  */
31113
31140
  negative?: boolean;
31141
+ /**
31142
+ * Google's geo_target_constant.name; see GET's description.
31143
+ */
31144
+ name?: (string) | null;
31145
+ /**
31146
+ * Google's geo_target_constant.canonical_name; see GET's description.
31147
+ */
31148
+ canonicalName?: (string) | null;
31149
+ /**
31150
+ * Google's geo_target_constant.target_type; see GET's description.
31151
+ */
31152
+ type?: (string) | null;
31153
+ /**
31154
+ * Google's geo_target_constant.country_code; see GET's description.
31155
+ */
31156
+ countryCode?: (string) | null;
31114
31157
  }>;
31115
31158
  languages?: Array<{
31116
31159
  code?: string;
@@ -31681,14 +31724,28 @@ type UpdateAdData = {
31681
31724
  */
31682
31725
  targeting?: {
31683
31726
  /**
31684
- * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
31727
+ * Google only. The FULL desired set of positive keywords for the entire ad group.
31728
+ * Omit to leave positives unchanged; [] removes all positives. Negatives are independent.
31729
+ * Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad;
31730
+ * an omitted matchType also defaults to BROAD. Matching case-insensitive text AND match type
31731
+ * retains the existing criterion ID, status, bid overrides, labels and history without a mutation.
31732
+ * A changed text or match type uses remove/create, without transferring the old criterion's
31733
+ * attributes or history. See Google keyword replacement above for an EXACT-to-BROAD example.
31734
+ * Mirrored to GET /v1/ads/keywords immediately.
31735
+ *
31685
31736
  */
31686
31737
  keywords?: Array<(string | {
31687
31738
  text: string;
31688
31739
  matchType?: 'exact' | 'phrase' | 'broad';
31689
31740
  })>;
31690
31741
  /**
31691
- * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
31742
+ * Google only. The FULL desired set of negative keywords for the entire ad group,
31743
+ * independent of positives. Omit to leave negatives unchanged; [] removes all negatives.
31744
+ * Uses the same text/match-type identity and preservation contract as keywords above.
31745
+ * Strings and objects without matchType default to BROAD, so resending an EXACT or PHRASE
31746
+ * negative as a bare string requests a different criterion. Campaign negatives are separate:
31747
+ * use /v1/ads/campaigns/{campaignId}/negative-keywords to manage those.
31748
+ *
31692
31749
  */
31693
31750
  negativeKeywords?: Array<(string | {
31694
31751
  text: string;
@@ -33943,14 +34000,16 @@ type CreateStandaloneAdData = {
33943
34000
  * multiple ads per ad set are allowed (unlike `dynamicCreative` which is limited to one).
33944
34001
  * Requires `imageUrl` or `video`, `linkUrl`, and `callToAction`. When set, the top-level
33945
34002
  * `body` field is used as the `object_story_spec.link_data.message` (the preview text) and
33946
- * `headlines` must also be present. Mutually exclusive with `dynamicCreative`,
33947
- * `placementAssets`, `carouselCards`, and `creatives[]`.
34003
+ * `headlines` must also be present. On a video creative the copy lands in
34004
+ * `video_data.message` / `video_data.title` instead of `link_data`. Mutually exclusive
34005
+ * with `dynamicCreative`, `placementAssets`, `carouselCards`, and `creatives[]`.
33948
34006
  *
33949
34007
  */
33950
34008
  bodies?: Array<(string)>;
33951
34009
  /**
33952
34010
  * Meta only. Headline variations for Multiple Text Options. Must be sent alongside `bodies`.
33953
- * The top-level `headline` field is used as the `object_story_spec.link_data.name`.
34011
+ * The top-level `headline` field is used as the `object_story_spec.link_data.name`
34012
+ * (`video_data.title` on a video creative).
33954
34013
  *
33955
34014
  */
33956
34015
  headlines?: Array<(string)>;
@@ -35187,6 +35246,9 @@ type CreateLeadFormData = {
35187
35246
  content?: Array<(string)>;
35188
35247
  style?: 'LIST_STYLE' | 'PARAGRAPH_STYLE';
35189
35248
  buttonText?: string;
35249
+ /**
35250
+ * Direct public JPEG or PNG image URL, up to 5 MB. Uploaded as an unpublished Page photo and attached to the form. Redirects, Ad Image hashes and IDs are not supported.
35251
+ */
35190
35252
  coverPhoto?: string;
35191
35253
  };
35192
35254
  } | {
package/dist/index.d.ts CHANGED
@@ -20917,7 +20917,7 @@ type SendInboxMessageData = {
20917
20917
  */
20918
20918
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
20919
20919
  /**
20920
- * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without send-side reply support, including Instagram and Facebook Messenger (Meta's Send API rejects reply_to on Instagram and does not expose it on Messenger).
20920
+ * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Instagram and Facebook Messenger do not support send-side quote replies: the message is sent without a quote and the successful response includes a warnings entry with code ignored_field and param replyTo. Other platforms without send-side reply support ignore this field.
20921
20921
  */
20922
20922
  replyTo?: string;
20923
20923
  /**
@@ -20981,6 +20981,17 @@ type SendInboxMessageData = {
20981
20981
  };
20982
20982
  type SendInboxMessageResponse = ({
20983
20983
  success?: boolean;
20984
+ /**
20985
+ * Present when a successful send ignored replyTo on Instagram or Facebook Messenger. The message was sent without a quote; do not retry it to apply the reply.
20986
+ */
20987
+ warnings?: Array<{
20988
+ code: 'ignored_field';
20989
+ param: 'replyTo';
20990
+ /**
20991
+ * Human-readable explanation of the ignored field.
20992
+ */
20993
+ message: string;
20994
+ }>;
20984
20995
  data?: {
20985
20996
  /**
20986
20997
  * Platform id of the sent message (not returned for Reddit). For WhatsApp this is the raw Meta wamid, the same id delivered as message.platformMessageId on webhooks and delivery-status updates, and the value to pass as replyTo to quote-reply.
@@ -31015,6 +31026,22 @@ type GetCampaignTargetingResponse = ({
31015
31026
  * true = excluded location.
31016
31027
  */
31017
31028
  negative?: boolean;
31029
+ /**
31030
+ * Google's geo_target_constant.name, e.g. "United States"; null when the id could not be resolved.
31031
+ */
31032
+ name?: (string) | null;
31033
+ /**
31034
+ * Google's geo_target_constant.canonical_name, e.g. "California, United States"; null when the id could not be resolved.
31035
+ */
31036
+ canonicalName?: (string) | null;
31037
+ /**
31038
+ * Google's geo_target_constant.target_type, e.g. "Country", "Region", "City"; null when the id could not be resolved.
31039
+ */
31040
+ type?: (string) | null;
31041
+ /**
31042
+ * Google's geo_target_constant.country_code, an ISO 3166-1 alpha-2 code; null when the id could not be resolved.
31043
+ */
31044
+ countryCode?: (string) | null;
31018
31045
  }>;
31019
31046
  languages?: Array<{
31020
31047
  /**
@@ -31111,6 +31138,22 @@ type UpdateCampaignTargetingResponse = ({
31111
31138
  * true = excluded location.
31112
31139
  */
31113
31140
  negative?: boolean;
31141
+ /**
31142
+ * Google's geo_target_constant.name; see GET's description.
31143
+ */
31144
+ name?: (string) | null;
31145
+ /**
31146
+ * Google's geo_target_constant.canonical_name; see GET's description.
31147
+ */
31148
+ canonicalName?: (string) | null;
31149
+ /**
31150
+ * Google's geo_target_constant.target_type; see GET's description.
31151
+ */
31152
+ type?: (string) | null;
31153
+ /**
31154
+ * Google's geo_target_constant.country_code; see GET's description.
31155
+ */
31156
+ countryCode?: (string) | null;
31114
31157
  }>;
31115
31158
  languages?: Array<{
31116
31159
  code?: string;
@@ -31681,14 +31724,28 @@ type UpdateAdData = {
31681
31724
  */
31682
31725
  targeting?: {
31683
31726
  /**
31684
- * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
31727
+ * Google only. The FULL desired set of positive keywords for the entire ad group.
31728
+ * Omit to leave positives unchanged; [] removes all positives. Negatives are independent.
31729
+ * Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad;
31730
+ * an omitted matchType also defaults to BROAD. Matching case-insensitive text AND match type
31731
+ * retains the existing criterion ID, status, bid overrides, labels and history without a mutation.
31732
+ * A changed text or match type uses remove/create, without transferring the old criterion's
31733
+ * attributes or history. See Google keyword replacement above for an EXACT-to-BROAD example.
31734
+ * Mirrored to GET /v1/ads/keywords immediately.
31735
+ *
31685
31736
  */
31686
31737
  keywords?: Array<(string | {
31687
31738
  text: string;
31688
31739
  matchType?: 'exact' | 'phrase' | 'broad';
31689
31740
  })>;
31690
31741
  /**
31691
- * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
31742
+ * Google only. The FULL desired set of negative keywords for the entire ad group,
31743
+ * independent of positives. Omit to leave negatives unchanged; [] removes all negatives.
31744
+ * Uses the same text/match-type identity and preservation contract as keywords above.
31745
+ * Strings and objects without matchType default to BROAD, so resending an EXACT or PHRASE
31746
+ * negative as a bare string requests a different criterion. Campaign negatives are separate:
31747
+ * use /v1/ads/campaigns/{campaignId}/negative-keywords to manage those.
31748
+ *
31692
31749
  */
31693
31750
  negativeKeywords?: Array<(string | {
31694
31751
  text: string;
@@ -33943,14 +34000,16 @@ type CreateStandaloneAdData = {
33943
34000
  * multiple ads per ad set are allowed (unlike `dynamicCreative` which is limited to one).
33944
34001
  * Requires `imageUrl` or `video`, `linkUrl`, and `callToAction`. When set, the top-level
33945
34002
  * `body` field is used as the `object_story_spec.link_data.message` (the preview text) and
33946
- * `headlines` must also be present. Mutually exclusive with `dynamicCreative`,
33947
- * `placementAssets`, `carouselCards`, and `creatives[]`.
34003
+ * `headlines` must also be present. On a video creative the copy lands in
34004
+ * `video_data.message` / `video_data.title` instead of `link_data`. Mutually exclusive
34005
+ * with `dynamicCreative`, `placementAssets`, `carouselCards`, and `creatives[]`.
33948
34006
  *
33949
34007
  */
33950
34008
  bodies?: Array<(string)>;
33951
34009
  /**
33952
34010
  * Meta only. Headline variations for Multiple Text Options. Must be sent alongside `bodies`.
33953
- * The top-level `headline` field is used as the `object_story_spec.link_data.name`.
34011
+ * The top-level `headline` field is used as the `object_story_spec.link_data.name`
34012
+ * (`video_data.title` on a video creative).
33954
34013
  *
33955
34014
  */
33956
34015
  headlines?: Array<(string)>;
@@ -35187,6 +35246,9 @@ type CreateLeadFormData = {
35187
35246
  content?: Array<(string)>;
35188
35247
  style?: 'LIST_STYLE' | 'PARAGRAPH_STYLE';
35189
35248
  buttonText?: string;
35249
+ /**
35250
+ * Direct public JPEG or PNG image URL, up to 5 MB. Uploaded as an unpublished Page photo and attached to the form. Redirects, Ad Image hashes and IDs are not supported.
35251
+ */
35190
35252
  coverPhoto?: string;
35191
35253
  };
35192
35254
  } | {
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.724",
39
+ version: "0.2.726",
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.724",
8
+ version: "0.2.726",
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.724",
3
+ "version": "0.2.726",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -8467,6 +8467,32 @@ export const getAd = <ThrowOnError extends boolean = false>(options: OptionsLega
8467
8467
  * `targeting` or `creative` returns 501 with code `unsupported_platform_operation`.
8468
8468
  * OpenAI Ads budget is lifetime-only (see `budget.type` below).
8469
8469
  *
8470
+ * **Google keyword replacement:** These edits affect the ad's entire ad group,
8471
+ * including sibling ads. Positive (`targeting.keywords`) and negative
8472
+ * (`targeting.negativeKeywords`) sets are independent: omit a field to leave
8473
+ * that set unchanged, or send `[]` to remove every keyword of that kind.
8474
+ *
8475
+ * Zernio compares each supplied set with Google's live criteria by
8476
+ * case-insensitive keyword text and match type. A matching criterion is left
8477
+ * untouched, retaining its criterion ID, enabled/paused status, keyword-level
8478
+ * bid overrides, labels, and criterion-associated history/statistics. Zernio
8479
+ * does not reset its quality score; Google continues to calculate scores and
8480
+ * statistics normally. Text comparison does not trim whitespace.
8481
+ *
8482
+ * A bare string or an object without `matchType` means `broad`, not the
8483
+ * existing criterion's match type. For example, resending an existing
8484
+ * `{ "text": "plumber", "matchType": "exact" }` preserves it; sending
8485
+ * `"plumber"` instead removes that EXACT criterion and requests a BROAD one.
8486
+ * Changing text or match type removes criteria no longer requested and
8487
+ * creates any missing criteria. New criteria get new IDs and do not inherit
8488
+ * removed criteria's bid overrides, labels, or history. Historical reporting
8489
+ * for a removed criterion is not transferred to its replacement.
8490
+ *
8491
+ * To add keywords without replacing a set, use
8492
+ * [POST /v1/ads/keywords](https://docs.zernio.com/ad-campaigns/add-ad-keywords).
8493
+ * Use `PATCH /v1/ads/keywords/{keywordId}` to pause/enable one keyword, or
8494
+ * `DELETE /v1/ads/keywords/{keywordId}` to remove it.
8495
+ *
8470
8496
  */
8471
8497
  export const updateAd = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdData, ThrowOnError>) => {
8472
8498
  return (options?.client ?? client).put<UpdateAdResponse, UpdateAdError, ThrowOnError>({
@@ -20530,7 +20530,7 @@ export type SendInboxMessageData = {
20530
20530
  */
20531
20531
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
20532
20532
  /**
20533
- * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Silently ignored on platforms without send-side reply support, including Instagram and Facebook Messenger (Meta's Send API rejects reply_to on Instagram and does not expose it on Messenger).
20533
+ * Platform message ID to quote-reply to. For WhatsApp, pass the wamid; for Telegram, the Telegram message ID (delivered as message.platformMessageId on webhooks, and as `id` on each entry of the list-messages endpoint). On Slack it threads the reply (thread_ts) instead of quoting. Instagram and Facebook Messenger do not support send-side quote replies: the message is sent without a quote and the successful response includes a warnings entry with code ignored_field and param replyTo. Other platforms without send-side reply support ignore this field.
20534
20534
  */
20535
20535
  replyTo?: string;
20536
20536
  /**
@@ -20595,6 +20595,17 @@ export type SendInboxMessageData = {
20595
20595
 
20596
20596
  export type SendInboxMessageResponse = ({
20597
20597
  success?: boolean;
20598
+ /**
20599
+ * Present when a successful send ignored replyTo on Instagram or Facebook Messenger. The message was sent without a quote; do not retry it to apply the reply.
20600
+ */
20601
+ warnings?: Array<{
20602
+ code: 'ignored_field';
20603
+ param: 'replyTo';
20604
+ /**
20605
+ * Human-readable explanation of the ignored field.
20606
+ */
20607
+ message: string;
20608
+ }>;
20598
20609
  data?: {
20599
20610
  /**
20600
20611
  * Platform id of the sent message (not returned for Reddit). For WhatsApp this is the raw Meta wamid, the same id delivered as message.platformMessageId on webhooks and delivery-status updates, and the value to pass as replyTo to quote-reply.
@@ -31449,6 +31460,22 @@ export type GetCampaignTargetingResponse = ({
31449
31460
  * true = excluded location.
31450
31461
  */
31451
31462
  negative?: boolean;
31463
+ /**
31464
+ * Google's geo_target_constant.name, e.g. "United States"; null when the id could not be resolved.
31465
+ */
31466
+ name?: (string) | null;
31467
+ /**
31468
+ * Google's geo_target_constant.canonical_name, e.g. "California, United States"; null when the id could not be resolved.
31469
+ */
31470
+ canonicalName?: (string) | null;
31471
+ /**
31472
+ * Google's geo_target_constant.target_type, e.g. "Country", "Region", "City"; null when the id could not be resolved.
31473
+ */
31474
+ type?: (string) | null;
31475
+ /**
31476
+ * Google's geo_target_constant.country_code, an ISO 3166-1 alpha-2 code; null when the id could not be resolved.
31477
+ */
31478
+ countryCode?: (string) | null;
31452
31479
  }>;
31453
31480
  languages?: Array<{
31454
31481
  /**
@@ -31548,6 +31575,22 @@ export type UpdateCampaignTargetingResponse = ({
31548
31575
  * true = excluded location.
31549
31576
  */
31550
31577
  negative?: boolean;
31578
+ /**
31579
+ * Google's geo_target_constant.name; see GET's description.
31580
+ */
31581
+ name?: (string) | null;
31582
+ /**
31583
+ * Google's geo_target_constant.canonical_name; see GET's description.
31584
+ */
31585
+ canonicalName?: (string) | null;
31586
+ /**
31587
+ * Google's geo_target_constant.target_type; see GET's description.
31588
+ */
31589
+ type?: (string) | null;
31590
+ /**
31591
+ * Google's geo_target_constant.country_code; see GET's description.
31592
+ */
31593
+ countryCode?: (string) | null;
31551
31594
  }>;
31552
31595
  languages?: Array<{
31553
31596
  code?: string;
@@ -32153,14 +32196,28 @@ export type UpdateAdData = {
32153
32196
  */
32154
32197
  targeting?: {
32155
32198
  /**
32156
- * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
32199
+ * Google only. The FULL desired set of positive keywords for the entire ad group.
32200
+ * Omit to leave positives unchanged; [] removes all positives. Negatives are independent.
32201
+ * Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad;
32202
+ * an omitted matchType also defaults to BROAD. Matching case-insensitive text AND match type
32203
+ * retains the existing criterion ID, status, bid overrides, labels and history without a mutation.
32204
+ * A changed text or match type uses remove/create, without transferring the old criterion's
32205
+ * attributes or history. See Google keyword replacement above for an EXACT-to-BROAD example.
32206
+ * Mirrored to GET /v1/ads/keywords immediately.
32207
+ *
32157
32208
  */
32158
32209
  keywords?: Array<(string | {
32159
32210
  text: string;
32160
32211
  matchType?: 'exact' | 'phrase' | 'broad';
32161
32212
  })>;
32162
32213
  /**
32163
- * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
32214
+ * Google only. The FULL desired set of negative keywords for the entire ad group,
32215
+ * independent of positives. Omit to leave negatives unchanged; [] removes all negatives.
32216
+ * Uses the same text/match-type identity and preservation contract as keywords above.
32217
+ * Strings and objects without matchType default to BROAD, so resending an EXACT or PHRASE
32218
+ * negative as a bare string requests a different criterion. Campaign negatives are separate:
32219
+ * use /v1/ads/campaigns/{campaignId}/negative-keywords to manage those.
32220
+ *
32164
32221
  */
32165
32222
  negativeKeywords?: Array<(string | {
32166
32223
  text: string;
@@ -34556,14 +34613,16 @@ export type CreateStandaloneAdData = {
34556
34613
  * multiple ads per ad set are allowed (unlike `dynamicCreative` which is limited to one).
34557
34614
  * Requires `imageUrl` or `video`, `linkUrl`, and `callToAction`. When set, the top-level
34558
34615
  * `body` field is used as the `object_story_spec.link_data.message` (the preview text) and
34559
- * `headlines` must also be present. Mutually exclusive with `dynamicCreative`,
34560
- * `placementAssets`, `carouselCards`, and `creatives[]`.
34616
+ * `headlines` must also be present. On a video creative the copy lands in
34617
+ * `video_data.message` / `video_data.title` instead of `link_data`. Mutually exclusive
34618
+ * with `dynamicCreative`, `placementAssets`, `carouselCards`, and `creatives[]`.
34561
34619
  *
34562
34620
  */
34563
34621
  bodies?: Array<(string)>;
34564
34622
  /**
34565
34623
  * Meta only. Headline variations for Multiple Text Options. Must be sent alongside `bodies`.
34566
- * The top-level `headline` field is used as the `object_story_spec.link_data.name`.
34624
+ * The top-level `headline` field is used as the `object_story_spec.link_data.name`
34625
+ * (`video_data.title` on a video creative).
34567
34626
  *
34568
34627
  */
34569
34628
  headlines?: Array<(string)>;
@@ -35809,6 +35868,9 @@ export type CreateLeadFormData = {
35809
35868
  content?: Array<(string)>;
35810
35869
  style?: 'LIST_STYLE' | 'PARAGRAPH_STYLE';
35811
35870
  buttonText?: string;
35871
+ /**
35872
+ * Direct public JPEG or PNG image URL, up to 5 MB. Uploaded as an unpublished Page photo and attached to the form. Redirects, Ad Image hashes and IDs are not supported.
35873
+ */
35812
35874
  coverPhoto?: string;
35813
35875
  };
35814
35876
  } | {