@getlatedev/node 0.2.1116 → 0.2.1118

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.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.1116",
39
+ version: "0.2.1118",
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.1116",
8
+ version: "0.2.1118",
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.1116",
3
+ "version": "0.2.1118",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -9778,7 +9778,8 @@ export const getAdCampaignDetails = <ThrowOnError extends boolean = false>(optio
9778
9778
  /**
9779
9779
  * Update a campaign
9780
9780
  * Campaign-level edits. Send at least one of `budget`, `bidStrategy`,
9781
- * `portfolioBidStrategyId`, `name` or `platformSpecificData`. An unsupported
9781
+ * `portfolioBidStrategyId`, `targetImpressionShare`, `manualCpc`, `networkSettings`,
9782
+ * `trackingUrlTemplate`, `finalUrlSuffix`, `name` or `platformSpecificData`. An unsupported
9782
9783
  * field is always an error, never a silent drop.
9783
9784
  *
9784
9785
  * | Body field | Meta | Google | Others |
@@ -9786,6 +9787,10 @@ export const getAdCampaignDetails = <ThrowOnError extends boolean = false>(optio
9786
9787
  * | `bidStrategy` | Yes | Yes | 501 |
9787
9788
  * | `bidAmount`, `roasAverageFloor` | 400 (ad-set level) | Yes | 400 |
9788
9789
  * | `portfolioBidStrategyId` | 400 | Yes | 400 |
9790
+ * | `targetImpressionShare` | 400 | Search only | 400 |
9791
+ * | `manualCpc` | 400 | Search and Display | 400 |
9792
+ * | `networkSettings` | 400 | Search only | 400 |
9793
+ * | `trackingUrlTemplate`, `finalUrlSuffix` | 400 | Yes | 400 |
9789
9794
  * | `budget` (CBO; ABO returns 409) | Yes | Daily only | OpenAI: daily or lifetime; others 501 |
9790
9795
  * | `name` | Yes | 501 | 501 |
9791
9796
  * | `platformSpecificData.spendCap` | Yes | 400 | 400 |
@@ -9799,7 +9804,12 @@ export const getAdCampaignDetails = <ThrowOnError extends boolean = false>(optio
9799
9804
  * `bidAmount` = Target CPA, `LOWEST_COST_WITH_MIN_ROAS` + `roasAverageFloor` =
9800
9805
  * Target ROAS, `LOWEST_COST_WITH_BID_CAP` + `bidAmount` = Maximize Clicks with a
9801
9806
  * CPC ceiling; `portfolioBidStrategyId` attaches a portfolio strategy instead
9802
- * (exclusive with `bidStrategy`). Setting the standard triplet on a campaign that
9807
+ * (exclusive with `bidStrategy`). `targetImpressionShare` switches the campaign to
9808
+ * Target impression share and `manualCpc: { maxCpc }` to Manual CPC (every ad group of the campaign gets `maxCpc` as its bid, in the same mutate); each is exclusive with
9809
+ * every other strategy field. `networkSettings`, `trackingUrlTemplate` and
9810
+ * `finalUrlSuffix` go out in one campaign update, each field sent written on its own
9811
+ * leaf, so an omitted one keeps its current value; an empty string clears a URL field.
9812
+ * Setting the standard triplet on a campaign that
9803
9813
  * is currently on a PORTFOLIO strategy is rejected: detach it in Google Ads
9804
9814
  * first, since it is shared across campaigns.
9805
9815
  *
@@ -11958,7 +11968,14 @@ export const listAdAccounts = <ThrowOnError extends boolean = false>(options: Op
11958
11968
  * covers the common case where the same entity benefits from and pays for the ads.
11959
11969
  * Read the current values back with `GET /v1/ads/dsa-defaults`.
11960
11970
  *
11961
- * Currently supported for Meta accounts only; other platforms return 400.
11971
+ * **Google: account-level URL tracking.** On a Google Ads connection, `adAccountId` is the
11972
+ * customer id and only `trackingUrlTemplate` / `finalUrlSuffix` are accepted (the Meta
11973
+ * fields return 400). They write `customer.tracking_url_template` and
11974
+ * `customer.final_url_suffix`, one update mask leaf per field sent; an empty string clears
11975
+ * the field. The response carries `urlTracking` with the values written. For one campaign,
11976
+ * send the same fields to PUT /v1/ads/campaigns/{campaignId}.
11977
+ *
11978
+ * Other platforms return 400.
11962
11979
  *
11963
11980
  */
11964
11981
  export const updateAdAccount = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdAccountData, ThrowOnError>) => {
@@ -6619,6 +6619,30 @@ export type GoogleListingGroupTree = {
6619
6619
  */
6620
6620
  export type GoogleLocationTargetingType = 'presence' | 'presence_or_interest';
6621
6621
 
6622
+ /**
6623
+ * Google Search and Display only. Manual CPC bidding. Enhanced CPC is not offered: Google no longer lets Search and Display campaigns enable it. Exclusive with every other strategy field.
6624
+ */
6625
+ export type GoogleManualCpc = {
6626
+ /**
6627
+ * Max CPC of the ad groups, in the account's currency units: set on the ad group created with the campaign, and on every ad group of the campaign when an update switches it to Manual CPC. Google gives an ad group without one a 0.01 bid.
6628
+ */
6629
+ maxCpc: number;
6630
+ };
6631
+
6632
+ /**
6633
+ * Google Search campaigns only. Which networks the campaign serves on besides Google Search. When omitted at creation, search partners are ON and the Display Network is OFF (the defaults Zernio has always used); on an update only the fields sent change.
6634
+ */
6635
+ export type GoogleNetworkSettings = {
6636
+ /**
6637
+ * campaign.network_settings.target_search_network
6638
+ */
6639
+ searchPartners?: boolean;
6640
+ /**
6641
+ * campaign.network_settings.target_content_network (Search with Display expansion)
6642
+ */
6643
+ displayNetwork?: boolean;
6644
+ };
6645
+
6622
6646
  export type GooglePmaxAssetGroup = {
6623
6647
  /**
6624
6648
  * Stable Google asset group id. Use it in the asset-group endpoints below.
@@ -6859,6 +6883,23 @@ export type GoogleStructuredSnippet = {
6859
6883
 
6860
6884
  export type header = 'Amenities' | 'Brands' | 'Courses' | 'Degree programs' | 'Destinations' | 'Featured hotels' | 'Insurance coverage' | 'Models' | 'Neighborhoods' | 'Service catalog' | 'Shows' | 'Styles' | 'Types';
6861
6885
 
6886
+ /**
6887
+ * Google only. Target impression share bidding (Search campaigns only): Google sets bids so the ads show in `location` for `percent` of eligible impressions.
6888
+ */
6889
+ export type GoogleTargetImpressionShare = {
6890
+ location: 'ANYWHERE_ON_PAGE' | 'TOP_OF_PAGE' | 'ABSOLUTE_TOP_OF_PAGE';
6891
+ /**
6892
+ * Target share of impressions, in percent (65 = 65%). Sent to Google as location_fraction_micros (1% = 10,000).
6893
+ */
6894
+ percent: number;
6895
+ /**
6896
+ * Max CPC bid limit, in the account's currency units. Google requires it.
6897
+ */
6898
+ maxCpc: number;
6899
+ };
6900
+
6901
+ export type location = 'ANYWHERE_ON_PAGE' | 'TOP_OF_PAGE' | 'ABSOLUTE_TOP_OF_PAGE';
6902
+
6862
6903
  export type ImessageAudienceContact = {
6863
6904
  conversationId?: string;
6864
6905
  accountId?: string;
@@ -9150,7 +9191,7 @@ export type PortfolioBidStrategy = {
9150
9191
  */
9151
9192
  id?: string;
9152
9193
  name?: string;
9153
- type?: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
9194
+ type?: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'TARGET_IMPRESSION_SHARE';
9154
9195
  /**
9155
9196
  * ENABLED or REMOVED.
9156
9197
  */
@@ -9182,9 +9223,13 @@ export type PortfolioBidStrategy = {
9182
9223
  * Current target as a decimal multiplier (2.0 = 2.0x). Null for a CPA-family type (TARGET_CPA, MAXIMIZE_CONVERSIONS), or a Maximize type with no target set.
9183
9224
  */
9184
9225
  targetRoas?: (number) | null;
9226
+ /**
9227
+ * Current target for a TARGET_IMPRESSION_SHARE strategy, null for every other type.
9228
+ */
9229
+ targetImpressionShare?: (GoogleTargetImpressionShare | null);
9185
9230
  };
9186
9231
 
9187
- export type type13 = 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
9232
+ export type type13 = 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'TARGET_IMPRESSION_SHARE';
9188
9233
 
9189
9234
  export type Post = {
9190
9235
  _id?: string;
@@ -39827,7 +39872,7 @@ export type CreateBidStrategyData = {
39827
39872
  */
39828
39873
  customerId?: string;
39829
39874
  name: string;
39830
- type: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
39875
+ type: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'TARGET_IMPRESSION_SHARE';
39831
39876
  /**
39832
39877
  * Required when type is TARGET_CPA, in the account's currency units.
39833
39878
  */
@@ -39836,6 +39881,10 @@ export type CreateBidStrategyData = {
39836
39881
  * Required when type is TARGET_ROAS; a multiplier (2.0 = 2.0x).
39837
39882
  */
39838
39883
  targetRoas?: number;
39884
+ /**
39885
+ * Required when type is TARGET_IMPRESSION_SHARE, and refused with any other type.
39886
+ */
39887
+ targetImpressionShare?: (GoogleTargetImpressionShare);
39839
39888
  };
39840
39889
  };
39841
39890
 
@@ -39868,9 +39917,13 @@ export type UpdateBidStrategyData = {
39868
39917
  */
39869
39918
  customerId?: string;
39870
39919
  name?: string;
39871
- type?: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
39920
+ type?: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'TARGET_IMPRESSION_SHARE';
39872
39921
  targetCpa?: number;
39873
39922
  targetRoas?: number;
39923
+ /**
39924
+ * Retargets a TARGET_IMPRESSION_SHARE strategy; location, percent and maxCpc are all written.
39925
+ */
39926
+ targetImpressionShare?: (GoogleTargetImpressionShare);
39874
39927
  };
39875
39928
  path: {
39876
39929
  /**
@@ -40298,6 +40351,12 @@ export type CreateAdCampaignData = {
40298
40351
  * Google only. Attach an existing portfolio bid strategy (numeric id from GET /v1/ads/bid-strategies) to the new campaign instead of a standard one. Exclusive with bidStrategy.
40299
40352
  */
40300
40353
  portfolioBidStrategyId?: string;
40354
+ /**
40355
+ * Google Search only. Target impression share bidding. Exclusive with bidStrategy, portfolioBidStrategyId and manualCpc; bidAmount is refused alongside it (the ceiling is maxCpc).
40356
+ */
40357
+ targetImpressionShare?: (GoogleTargetImpressionShare);
40358
+ manualCpc?: GoogleManualCpc;
40359
+ networkSettings?: GoogleNetworkSettings;
40301
40360
  };
40302
40361
  headers?: {
40303
40362
  /**
@@ -40594,6 +40653,20 @@ export type UpdateAdCampaignData = {
40594
40653
  * Google only. Explicitly allow changing a shared campaign budget, affecting every campaign that uses it. Does not bypass an unknown sharing state.
40595
40654
  */
40596
40655
  allowSharedBudgetUpdate?: boolean;
40656
+ /**
40657
+ * Google Search only. Target impression share bidding. Exclusive with bidStrategy, portfolioBidStrategyId and manualCpc; bidAmount is refused alongside it (the ceiling is maxCpc).
40658
+ */
40659
+ targetImpressionShare?: (GoogleTargetImpressionShare);
40660
+ manualCpc?: GoogleManualCpc;
40661
+ networkSettings?: GoogleNetworkSettings;
40662
+ /**
40663
+ * **Google only.** campaign.tracking_url_template; an empty string clears it.
40664
+ */
40665
+ trackingUrlTemplate?: string;
40666
+ /**
40667
+ * **Google only.** campaign.final_url_suffix; an empty string clears it.
40668
+ */
40669
+ finalUrlSuffix?: string;
40597
40670
  /**
40598
40671
  * Meta CBO, Google daily, or OpenAI Ads daily or lifetime campaign budget, in whole currency units.
40599
40672
  */
@@ -40640,6 +40713,11 @@ export type UpdateAdCampaignResponse = ({
40640
40713
  * Google only. Echoed back, but NOT mirrored onto local Ad documents (no column for it yet).
40641
40714
  */
40642
40715
  portfolioBidStrategyId?: string;
40716
+ targetImpressionShare?: GoogleTargetImpressionShare;
40717
+ manualCpc?: GoogleManualCpc;
40718
+ networkSettings?: GoogleNetworkSettings;
40719
+ trackingUrlTemplate?: string;
40720
+ finalUrlSuffix?: string;
40643
40721
  platformSpecificData?: {
40644
40722
  [key: string]: unknown;
40645
40723
  };
@@ -41155,14 +41233,32 @@ export type ListAdSetsResponse = ({
41155
41233
  endDate?: string;
41156
41234
  } | null;
41157
41235
  /**
41158
- * The audience this ad set delivers to, as the platform reports it at the last sync.
41159
- * LinkedIn and Meta; null for every other platform and for ad sets not yet re-synced.
41160
- *
41161
- * On Meta it is the ad set's `targeting` verbatim (snake_case: geo_locations,
41162
- * age_min, custom_audiences, flexible_spec, ...), so it can be read, edited and sent
41163
- * back as is. On LinkedIn `include` and `exclude` (below) are the campaign's
41164
- * `targetingCriteria` verbatim, without reconstructing them from our normalized
41165
- * targeting spec.
41236
+ * The audience this ad set delivers to, as the platform reports it at the last sync,
41237
+ * in the platform's own shape. Every platform; null only for an ad set not re-synced
41238
+ * yet, or when the platform's targeting read failed on every sync so far (a failed read
41239
+ * keeps the last stored value).
41240
+ *
41241
+ * - Meta: the ad set's `targeting` verbatim (snake_case: geo_locations, age_min,
41242
+ * custom_audiences, flexible_spec, ...), so it can be read, edited and sent back as is.
41243
+ * - LinkedIn: `include` and `exclude` (below) are the campaign's `targetingCriteria`
41244
+ * verbatim, without reconstructing them from our normalized targeting spec.
41245
+ * - TikTok: the ad group's targeting fields from adgroup/get, verbatim (placement_type,
41246
+ * placements, location_ids, age_groups, gender, languages, interest_category_ids,
41247
+ * actions, audience_ids, excluded_audience_ids, operating_systems, ...). Only fields
41248
+ * TikTok returned are present.
41249
+ * - Google: `campaignCriteria` (LOCATION, LANGUAGE, PROXIMITY, DEVICE, AGE_RANGE, GENDER,
41250
+ * USER_LIST, INCOME_RANGE, PARENTAL_STATUS) and `adGroupCriteria` (AGE_RANGE, GENDER,
41251
+ * USER_LIST, USER_INTEREST, INCOME_RANGE, PARENTAL_STATUS), each a Google criterion
41252
+ * verbatim (camelCase: resourceName, type, negative, bidModifier and the payload its type sets, for
41253
+ * example `location.geoTargetConstant`). Most Google targeting lives on the campaign,
41254
+ * so every ad group of a campaign carries the same `campaignCriteria`. Keywords are
41255
+ * not included (they have their own endpoints). Synced on Google's slower keyword cycle.
41256
+ * - Pinterest: the ad group's `targeting_spec` verbatim (GEO, AGE_BUCKET, GENDER,
41257
+ * INTEREST, AUDIENCE_INCLUDE, LOCALE, ...).
41258
+ * - X: `targeting_criteria`, the line item's criteria as X lists them (targeting_type,
41259
+ * targeting_value, operator_type, name), the same shape X's batch create takes.
41260
+ * - OpenAI: the campaign's `targeting` (OpenAI targets at the campaign), plus the ad
41261
+ * group's `context_hints` when it has any.
41166
41262
  *
41167
41263
  */
41168
41264
  targeting?: {
@@ -41195,19 +41291,19 @@ export type ListAdSetsResponse = ({
41195
41291
  */
41196
41292
  statusReadAt?: (string) | null;
41197
41293
  /**
41198
- * The ad set's optimization goal as last synced, in the platform's own enum (Meta `optimization_goal`, for example OFFSITE_CONVERSIONS or LINK_CLICKS). On TikTok with `live=true`, rows read live carry the ad group's `optimization_goal` exactly as TikTok's adgroup/get returns it now (for example ENGAGED_VIEW, ENGAGED_VIEW_FIFTEEN, CLICK, CONVERT).
41294
+ * The ad set's optimization goal as last synced, in the platform's own enum (Meta `optimization_goal`, for example OFFSITE_CONVERSIONS or LINK_CLICKS; TikTok `optimization_goal`; Pinterest the conversion event of `optimization_goal_metadata`, for example CHECKOUT; X the line item `goal`; OpenAI the campaign `bidding_type`). Always null on Google, which has no per-ad-group optimization goal. On TikTok with `live=true`, rows read live carry the ad group's `optimization_goal` exactly as TikTok's adgroup/get returns it now (for example ENGAGED_VIEW, ENGAGED_VIEW_FIFTEEN, CLICK, CONVERT).
41199
41295
  */
41200
41296
  optimizationGoal?: (string) | null;
41201
41297
  /**
41202
- * The ad set's billing event as last synced, where the platform reports one. On TikTok with `live=true`, rows read live carry the ad group's `billing_event` exactly as TikTok's adgroup/get returns it now (for example CPV, CPC, OCPM).
41298
+ * The ad set's billing event as last synced, in the platform's own enum (Meta `billing_event`, TikTok `billing_event`, Pinterest `billable_event`, X `pay_by`, OpenAI `bidding_config.billing_event_type`). Always null on Google, which reports none per ad group. On TikTok with `live=true`, rows read live carry the ad group's `billing_event` exactly as TikTok's adgroup/get returns it now (for example CPV, CPC, OCPM).
41203
41299
  */
41204
41300
  billingEvent?: (string) | null;
41205
41301
  /**
41206
- * The bid strategy as last synced, in the platform's own enum (Meta `bid_strategy`, for example LOWEST_COST_WITHOUT_CAP, COST_CAP). On Meta under a campaign budget this is the campaign's strategy.
41302
+ * The bid strategy as last synced, in Meta's vocabulary (LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP, LOWEST_COST_WITH_MIN_ROAS) on every platform that has an equivalent. On Meta under a campaign budget this is the campaign's strategy. TikTok maps bid_type / deep_bid_type, Pinterest AUTOMATIC_BID / MAX_BID / TARGET_AVG, X AUTO / MAX / TARGET, OpenAI Maximize Results / a max bid. Google bids at the campaign, so an ad group carries its campaign's strategy; one without a Meta equivalent (MANUAL_CPC, TARGET_IMPRESSION_SHARE, or a portfolio strategy's type such as TARGET_CPA) keeps Google's own name. Null on LinkedIn.
41207
41303
  */
41208
41304
  bidStrategy?: (string) | null;
41209
41305
  /**
41210
- * Bid cap or cost target in whole units of `currency`, as last synced. Null when the strategy has none.
41306
+ * Bid cap or cost target in whole units of `currency`, as last synced. Null when the strategy has none (automatic bidding, ROAS targets, a Google portfolio strategy). On Google a campaign target CPA, a Maximize clicks ceiling, the ad group's own target CPA override, or its CPC bid under MANUAL_CPC.
41211
41307
  */
41212
41308
  bidAmount?: (number) | null;
41213
41309
  /**
@@ -41247,6 +41343,10 @@ export type CreateAdSetData = {
41247
41343
  campaignId: string;
41248
41344
  name: string;
41249
41345
  status?: 'ACTIVE' | 'PAUSED';
41346
+ /**
41347
+ * Max CPC of the new ad group, in the account's currency units. Send it when the campaign uses Manual CPC: Google gives an ad group without one a 0.01 bid.
41348
+ */
41349
+ maxCpc?: number;
41250
41350
  /**
41251
41351
  * Platform ad account ID (Google customer ID, digits only). Only required when the connection has more than one.
41252
41352
  */
@@ -46088,11 +46188,26 @@ export type UpdateAdAccountData = {
46088
46188
  * Legal entity paying for ads on this ad account. Defaults to defaultDsaBeneficiary when omitted. Requires defaultDsaBeneficiary.
46089
46189
  */
46090
46190
  defaultDsaPayor?: string;
46191
+ /**
46192
+ * **Google only.** Account tracking template (customer.tracking_url_template); an empty string clears it.
46193
+ */
46194
+ trackingUrlTemplate?: string;
46195
+ /**
46196
+ * **Google only.** Account final URL suffix (customer.final_url_suffix); an empty string clears it.
46197
+ */
46198
+ finalUrlSuffix?: string;
46091
46199
  };
46092
46200
  };
46093
46201
 
46094
46202
  export type UpdateAdAccountResponse = ({
46095
46203
  adAccountId?: string;
46204
+ /**
46205
+ * Google only. The URL tracking fields written.
46206
+ */
46207
+ urlTracking?: {
46208
+ trackingUrlTemplate?: string;
46209
+ finalUrlSuffix?: string;
46210
+ };
46096
46211
  /**
46097
46212
  * Present when defaultDsaBeneficiary was passed.
46098
46213
  */
@@ -47882,6 +47997,15 @@ export type CreateStandaloneAdData = {
47882
47997
  * Google Search and Display only. Performance Max rejects portfolio bidding. Attach an existing portfolio bid strategy (numeric id from GET /v1/ads/bid-strategies) to the new campaign instead of a standard one. Exclusive with bidStrategy.
47883
47998
  */
47884
47999
  portfolioBidStrategyId?: string;
48000
+ /**
48001
+ * Google Search only. Target impression share bidding. Exclusive with bidStrategy, portfolioBidStrategyId and manualCpc; bidAmount is refused alongside it (the ceiling is maxCpc).
48002
+ */
48003
+ targetImpressionShare?: (GoogleTargetImpressionShare);
48004
+ manualCpc?: GoogleManualCpc;
48005
+ /**
48006
+ * Google Search only, when the call creates the campaign (400 with existingCampaignId or adSetId).
48007
+ */
48008
+ networkSettings?: (GoogleNetworkSettings);
47885
48009
  /**
47886
48010
  * Meta only (facebook, instagram; other platforms return 400). Value rule set
47887
48011
  * to attach to the new ad set, from `/v1/ads/value-rule-sets`. Attachment is