@zernio/node 0.2.719 → 0.2.720

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
@@ -3236,6 +3236,14 @@ type CampaignBidding = {
3236
3236
  id?: string;
3237
3237
  name?: string;
3238
3238
  } | null;
3239
+ /**
3240
+ * When this data was fetched from Google. Null when it was never served from cache.
3241
+ */
3242
+ cachedAt?: (string) | null;
3243
+ /**
3244
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
3245
+ */
3246
+ stale?: boolean;
3239
3247
  };
3240
3248
  /**
3241
3249
  * campaign.advertising_channel_type. COST_CAP's underlying Google field differs by channel; see bidStrategy on PUT.
@@ -30138,6 +30146,14 @@ type GetAdsSearchTermsResponse = ({
30138
30146
  */
30139
30147
  nextPageToken?: (string) | null;
30140
30148
  };
30149
+ /**
30150
+ * When this data was fetched from Google. Null when it was never served from cache.
30151
+ */
30152
+ cachedAt?: (string) | null;
30153
+ /**
30154
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30155
+ */
30156
+ stale?: boolean;
30141
30157
  });
30142
30158
  type GetAdsSearchTermsError = (ErrorResponse | {
30143
30159
  error?: string;
@@ -30169,6 +30185,14 @@ type ListBidStrategiesResponse = ({
30169
30185
  */
30170
30186
  currency?: string;
30171
30187
  strategies?: Array<PortfolioBidStrategy>;
30188
+ /**
30189
+ * When this data was fetched from Google. Null when it was never served from cache.
30190
+ */
30191
+ cachedAt?: (string) | null;
30192
+ /**
30193
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30194
+ */
30195
+ stale?: boolean;
30172
30196
  });
30173
30197
  type ListBidStrategiesError = (ErrorResponse | {
30174
30198
  error?: string;
@@ -30788,6 +30812,14 @@ type ListCampaignNegativeKeywordsResponse = ({
30788
30812
  text?: string;
30789
30813
  matchType?: 'exact' | 'phrase' | 'broad';
30790
30814
  }>;
30815
+ /**
30816
+ * When this list was fetched from Google. Null when it was never served from cache.
30817
+ */
30818
+ cachedAt?: (string) | null;
30819
+ /**
30820
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30821
+ */
30822
+ stale?: boolean;
30791
30823
  });
30792
30824
  type ListCampaignNegativeKeywordsError = ({
30793
30825
  error?: string;
@@ -30953,6 +30985,14 @@ type GetCampaignTargetingResponse = ({
30953
30985
  id?: string;
30954
30986
  name?: string;
30955
30987
  }>;
30988
+ /**
30989
+ * When this targeting was fetched from Google. Null when it was never served from cache.
30990
+ */
30991
+ cachedAt?: (string) | null;
30992
+ /**
30993
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30994
+ */
30995
+ stale?: boolean;
30956
30996
  });
30957
30997
  type GetCampaignTargetingError = (ErrorResponse | {
30958
30998
  error?: string;
@@ -31012,6 +31052,29 @@ type UpdateCampaignTargetingResponse = ({
31012
31052
  * Which targeting fields were applied.
31013
31053
  */
31014
31054
  updated?: Array<('devices' | 'locations' | 'languages')>;
31055
+ devices?: Array<{
31056
+ device?: 'MOBILE' | 'DESKTOP' | 'TABLET' | 'CONNECTED_TV';
31057
+ included?: boolean;
31058
+ /**
31059
+ * Always null on this read; see GET's description.
31060
+ */
31061
+ bidModifier?: (number) | null;
31062
+ }>;
31063
+ locations?: Array<{
31064
+ /**
31065
+ * Numeric id from Google's geoTargetConstants/{id}.
31066
+ */
31067
+ geoTargetId?: string;
31068
+ /**
31069
+ * true = excluded location.
31070
+ */
31071
+ negative?: boolean;
31072
+ }>;
31073
+ languages?: Array<{
31074
+ code?: string;
31075
+ id?: string;
31076
+ name?: string;
31077
+ }>;
31015
31078
  });
31016
31079
  type UpdateCampaignTargetingError = (ErrorResponse | {
31017
31080
  error?: string;
@@ -33097,6 +33160,14 @@ type ListAccountCalloutsResponse = ({
33097
33160
  */
33098
33161
  status?: string;
33099
33162
  }>;
33163
+ /**
33164
+ * When this list was fetched from Google. Null when it was never served from cache.
33165
+ */
33166
+ cachedAt?: (string) | null;
33167
+ /**
33168
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
33169
+ */
33170
+ stale?: boolean;
33100
33171
  });
33101
33172
  type ListAccountCalloutsError = (ErrorResponse | {
33102
33173
  error?: string;
@@ -33276,6 +33347,14 @@ type ListAdAccountsResponse = ({
33276
33347
  */
33277
33348
  unusableReason?: (string) | null;
33278
33349
  }>;
33350
+ /**
33351
+ * Google only. When this list was fetched from Google. Null when it was never served from cache, or on other platforms.
33352
+ */
33353
+ cachedAt?: (string) | null;
33354
+ /**
33355
+ * Google only. True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read. Absent on other platforms.
33356
+ */
33357
+ stale?: boolean;
33279
33358
  });
33280
33359
  type ListAdAccountsError = ({
33281
33360
  error?: string;
@@ -36316,6 +36395,14 @@ type ListConversionActionsResponse = ({
36316
36395
  */
36317
36396
  customerId?: string;
36318
36397
  actions?: Array<ConversionAction>;
36398
+ /**
36399
+ * When this list was fetched from Google. Null when it was never served from cache.
36400
+ */
36401
+ cachedAt?: (string) | null;
36402
+ /**
36403
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
36404
+ */
36405
+ stale?: boolean;
36319
36406
  });
36320
36407
  type ListConversionActionsError = (ErrorResponse | {
36321
36408
  error?: string;
package/dist/index.d.ts CHANGED
@@ -3236,6 +3236,14 @@ type CampaignBidding = {
3236
3236
  id?: string;
3237
3237
  name?: string;
3238
3238
  } | null;
3239
+ /**
3240
+ * When this data was fetched from Google. Null when it was never served from cache.
3241
+ */
3242
+ cachedAt?: (string) | null;
3243
+ /**
3244
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
3245
+ */
3246
+ stale?: boolean;
3239
3247
  };
3240
3248
  /**
3241
3249
  * campaign.advertising_channel_type. COST_CAP's underlying Google field differs by channel; see bidStrategy on PUT.
@@ -30138,6 +30146,14 @@ type GetAdsSearchTermsResponse = ({
30138
30146
  */
30139
30147
  nextPageToken?: (string) | null;
30140
30148
  };
30149
+ /**
30150
+ * When this data was fetched from Google. Null when it was never served from cache.
30151
+ */
30152
+ cachedAt?: (string) | null;
30153
+ /**
30154
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30155
+ */
30156
+ stale?: boolean;
30141
30157
  });
30142
30158
  type GetAdsSearchTermsError = (ErrorResponse | {
30143
30159
  error?: string;
@@ -30169,6 +30185,14 @@ type ListBidStrategiesResponse = ({
30169
30185
  */
30170
30186
  currency?: string;
30171
30187
  strategies?: Array<PortfolioBidStrategy>;
30188
+ /**
30189
+ * When this data was fetched from Google. Null when it was never served from cache.
30190
+ */
30191
+ cachedAt?: (string) | null;
30192
+ /**
30193
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30194
+ */
30195
+ stale?: boolean;
30172
30196
  });
30173
30197
  type ListBidStrategiesError = (ErrorResponse | {
30174
30198
  error?: string;
@@ -30788,6 +30812,14 @@ type ListCampaignNegativeKeywordsResponse = ({
30788
30812
  text?: string;
30789
30813
  matchType?: 'exact' | 'phrase' | 'broad';
30790
30814
  }>;
30815
+ /**
30816
+ * When this list was fetched from Google. Null when it was never served from cache.
30817
+ */
30818
+ cachedAt?: (string) | null;
30819
+ /**
30820
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30821
+ */
30822
+ stale?: boolean;
30791
30823
  });
30792
30824
  type ListCampaignNegativeKeywordsError = ({
30793
30825
  error?: string;
@@ -30953,6 +30985,14 @@ type GetCampaignTargetingResponse = ({
30953
30985
  id?: string;
30954
30986
  name?: string;
30955
30987
  }>;
30988
+ /**
30989
+ * When this targeting was fetched from Google. Null when it was never served from cache.
30990
+ */
30991
+ cachedAt?: (string) | null;
30992
+ /**
30993
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30994
+ */
30995
+ stale?: boolean;
30956
30996
  });
30957
30997
  type GetCampaignTargetingError = (ErrorResponse | {
30958
30998
  error?: string;
@@ -31012,6 +31052,29 @@ type UpdateCampaignTargetingResponse = ({
31012
31052
  * Which targeting fields were applied.
31013
31053
  */
31014
31054
  updated?: Array<('devices' | 'locations' | 'languages')>;
31055
+ devices?: Array<{
31056
+ device?: 'MOBILE' | 'DESKTOP' | 'TABLET' | 'CONNECTED_TV';
31057
+ included?: boolean;
31058
+ /**
31059
+ * Always null on this read; see GET's description.
31060
+ */
31061
+ bidModifier?: (number) | null;
31062
+ }>;
31063
+ locations?: Array<{
31064
+ /**
31065
+ * Numeric id from Google's geoTargetConstants/{id}.
31066
+ */
31067
+ geoTargetId?: string;
31068
+ /**
31069
+ * true = excluded location.
31070
+ */
31071
+ negative?: boolean;
31072
+ }>;
31073
+ languages?: Array<{
31074
+ code?: string;
31075
+ id?: string;
31076
+ name?: string;
31077
+ }>;
31015
31078
  });
31016
31079
  type UpdateCampaignTargetingError = (ErrorResponse | {
31017
31080
  error?: string;
@@ -33097,6 +33160,14 @@ type ListAccountCalloutsResponse = ({
33097
33160
  */
33098
33161
  status?: string;
33099
33162
  }>;
33163
+ /**
33164
+ * When this list was fetched from Google. Null when it was never served from cache.
33165
+ */
33166
+ cachedAt?: (string) | null;
33167
+ /**
33168
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
33169
+ */
33170
+ stale?: boolean;
33100
33171
  });
33101
33172
  type ListAccountCalloutsError = (ErrorResponse | {
33102
33173
  error?: string;
@@ -33276,6 +33347,14 @@ type ListAdAccountsResponse = ({
33276
33347
  */
33277
33348
  unusableReason?: (string) | null;
33278
33349
  }>;
33350
+ /**
33351
+ * Google only. When this list was fetched from Google. Null when it was never served from cache, or on other platforms.
33352
+ */
33353
+ cachedAt?: (string) | null;
33354
+ /**
33355
+ * Google only. True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read. Absent on other platforms.
33356
+ */
33357
+ stale?: boolean;
33279
33358
  });
33280
33359
  type ListAdAccountsError = ({
33281
33360
  error?: string;
@@ -36316,6 +36395,14 @@ type ListConversionActionsResponse = ({
36316
36395
  */
36317
36396
  customerId?: string;
36318
36397
  actions?: Array<ConversionAction>;
36398
+ /**
36399
+ * When this list was fetched from Google. Null when it was never served from cache.
36400
+ */
36401
+ cachedAt?: (string) | null;
36402
+ /**
36403
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
36404
+ */
36405
+ stale?: boolean;
36319
36406
  });
36320
36407
  type ListConversionActionsError = (ErrorResponse | {
36321
36408
  error?: string;
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.719",
39
+ version: "0.2.720",
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.719",
8
+ version: "0.2.720",
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.719",
3
+ "version": "0.2.720",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -7765,9 +7765,11 @@ export const listAds = <ThrowOnError extends boolean = false>(options?: OptionsL
7765
7765
  * Google Ads search terms report
7766
7766
  * The actual search queries that triggered your ads, with matched-keyword
7767
7767
  * status and spend metrics — the raw material for wasted-spend analysis and
7768
- * negative-keyword lists. Reads Google's `search_term_view` live; defaults
7769
- * to the last 30 days. Rows are ordered by cost, descending. Draws on the
7770
- * shared Google Ads operations budget.
7768
+ * negative-keyword lists. Reads Google's `search_term_view`, cached for
7769
+ * the quota window; defaults to the last 30 days. Rows are ordered by
7770
+ * cost, descending. Draws on the shared Google Ads operations budget.
7771
+ * The response carries `cachedAt` and `stale`, set when a quota-exhausted
7772
+ * call falls back to the last-good copy instead of a live read.
7771
7773
  */
7772
7774
  export const getAdsSearchTerms = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdsSearchTermsData, ThrowOnError>) => {
7773
7775
  return (options?.client ?? client).get<GetAdsSearchTermsResponse, GetAdsSearchTermsError, ThrowOnError>({
@@ -7778,7 +7780,7 @@ export const getAdsSearchTerms = <ThrowOnError extends boolean = false>(options:
7778
7780
 
7779
7781
  /**
7780
7782
  * List Google Ads portfolio bid strategies
7781
- * Bidding strategy report: type, status, campaign count, clicks, cost, cost per conversion, impressions, average CPC and conversions over the date range (default last 30 days). Reads Google's `bidding_strategy` resource live. Draws on the shared Google Ads operations budget.
7783
+ * Bidding strategy report: type, status, campaign count, clicks, cost, cost per conversion, impressions, average CPC and conversions over the date range (default last 30 days). Reads Google's `bidding_strategy` resource, cached for the quota window. Draws on the shared Google Ads operations budget. The response carries `cachedAt` and `stale`, set when a quota-exhausted call falls back to the last-good copy instead of a live read.
7782
7784
  */
7783
7785
  export const listBidStrategies = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListBidStrategiesData, ThrowOnError>) => {
7784
7786
  return (options?.client ?? client).get<ListBidStrategiesResponse, ListBidStrategiesError, ThrowOnError>({
@@ -7966,9 +7968,12 @@ export const updateAdCampaignStatus = <ThrowOnError extends boolean = false>(opt
7966
7968
 
7967
7969
  /**
7968
7970
  * Read a campaign's current bidding
7969
- * Live read of the campaign's bidding strategy on Google, for pre-filling the bid strategy
7970
- * block before a PUT to /v1/ads/campaigns/{campaignId}. Google Ads only; `platform` is required
7971
- * and rejected when it is anything else, since a `campaignId` is not globally unique.
7971
+ * Read of the campaign's bidding strategy on Google, cached for the quota window, for
7972
+ * pre-filling the bid strategy block before a PUT to /v1/ads/campaigns/{campaignId}.
7973
+ * Google Ads only; `platform` is required and rejected when it is anything else, since
7974
+ * a `campaignId` is not globally unique. The response carries `cachedAt` and `stale`,
7975
+ * set when a quota-exhausted call falls back to the last-good copy instead of a live
7976
+ * read.
7972
7977
  *
7973
7978
  * Maps Google's bidding strategy onto the same triplet PUT accepts: `LOWEST_COST_WITHOUT_CAP`
7974
7979
  * (Maximize Conversions, no target), `COST_CAP` + `bidAmount` (Target CPA), `LOWEST_COST_WITH_MIN_ROAS`
@@ -8045,9 +8050,11 @@ export const deleteAdCampaign = <ThrowOnError extends boolean = false>(options:
8045
8050
  /**
8046
8051
  * List campaign-level negative keywords
8047
8052
  * Returns the campaign-level negative keywords (`campaign_criterion.negative`),
8048
- * distinct from the ad-group-level negatives under `GET /v1/ads/keywords`. Read
8049
- * live from Google on every call (not synced to Postgres), and gated by the
8050
- * shared Google Ads operations budget like every other on-demand Google surface.
8053
+ * distinct from the ad-group-level negatives under `GET /v1/ads/keywords`. Cached
8054
+ * for the quota window (not synced to Postgres), and gated by the shared Google
8055
+ * Ads operations budget like every other on-demand Google surface. The response
8056
+ * carries `cachedAt` and `stale`, set when a quota-exhausted call falls back to
8057
+ * the last-good copy instead of a live read.
8051
8058
  *
8052
8059
  * The platform is always discovered from the campaign itself; a non-Google
8053
8060
  * campaign returns 501 rather than 404, whether or not `platform` was passed.
@@ -8135,9 +8142,10 @@ export const duplicateAdCampaign = <ThrowOnError extends boolean = false>(option
8135
8142
  /**
8136
8143
  * Read a Google campaign's device, location, and language targeting
8137
8144
  * Google Ads compliance requires geo, language, budget, and bidding targeting
8138
- * set at creation to stay editable afterwards; this reads the live campaign
8139
- * state so an integrator can build an editor around it. Google only; every
8140
- * other platform returns 501.
8145
+ * set at creation to stay editable afterwards; this reads the campaign state
8146
+ * so an integrator can build an editor around it. Cached for the quota window
8147
+ * (10 minutes fresh, up to 7 days last-good), not always a live read. Google
8148
+ * only; every other platform returns 501.
8141
8149
  *
8142
8150
  * `devices` always lists all four device types with `included` reflecting
8143
8151
  * Google's negative device criteria (a device absent from any negative
@@ -8169,6 +8177,10 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
8169
8177
  * `languages` is an array of Google's language codes (ISO 639-1, plus variants
8170
8178
  * such as `zh_CN`); an unknown code returns 400.
8171
8179
  *
8180
+ * The response includes the refreshed `devices`/`locations`/`languages` state
8181
+ * read back from Google after the edit, and invalidates the cached copy
8182
+ * `GET` on this campaign would otherwise keep serving.
8183
+ *
8172
8184
  */
8173
8185
  export const updateCampaignTargeting = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateCampaignTargetingData, ThrowOnError>) => {
8174
8186
  return (options?.client ?? client).put<UpdateCampaignTargetingResponse, UpdateCampaignTargetingError, ThrowOnError>({
@@ -9111,7 +9123,11 @@ export const deleteValueRuleSet = <ThrowOnError extends boolean = false>(options
9111
9123
  * Google Ads compliance row C.75: callout assets linked at the CUSTOMER
9112
9124
  * level via `customer_asset` (not a campaign or ad group), so they serve
9113
9125
  * fleet-wide across the account. Google only; every other platform
9114
- * returns 501. Draws on the shared Google Ads operations budget.
9126
+ * returns 501. Cached for the quota window (10 minutes fresh, up to 7
9127
+ * days last-good), and gated by the shared Google Ads operations budget
9128
+ * on a cache miss. The response carries `cachedAt` and `stale`, set when
9129
+ * a quota-exhausted call falls back to the last-good copy instead of a
9130
+ * live read.
9115
9131
  */
9116
9132
  export const listAccountCallouts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAccountCalloutsData, ThrowOnError>) => {
9117
9133
  return (options?.client ?? client).get<ListAccountCalloutsResponse, ListAccountCalloutsError, ThrowOnError>({
@@ -9907,6 +9923,11 @@ export const adjustConversions = <ThrowOnError extends boolean = false>(options:
9907
9923
  * accessible Google Ads customers, and the call fails with `400` when more than
9908
9924
  * one is accessible (pass `customerId` to disambiguate).
9909
9925
  *
9926
+ * The list itself is cached for the quota window (1 hour fresh, up to 7 days
9927
+ * last-good; the cache key does not vary on `type`). The response carries
9928
+ * `cachedAt` and `stale`, set when a quota-exhausted call falls back to the
9929
+ * last-good copy instead of a live read.
9930
+ *
9910
9931
  */
9911
9932
  export const listConversionActions = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListConversionActionsData, ThrowOnError>) => {
9912
9933
  return (options?.client ?? client).get<ListConversionActionsResponse, ListConversionActionsError, ThrowOnError>({
@@ -9919,8 +9940,9 @@ export const listConversionActions = <ThrowOnError extends boolean = false>(opti
9919
9940
  * Create a website conversion action
9920
9941
  * Creates a `WEBPAGE` conversion action (category `DEFAULT`) and returns it with
9921
9942
  * its tag snippets, read back after creation since Google never returns them on
9922
- * the create response itself. Google-only; other platforms return `501`. Requires
9923
- * the Ads add-on.
9943
+ * the create response itself. Invalidates the cached list `GET` on this resource
9944
+ * would otherwise keep serving. Google-only; other platforms return `501`.
9945
+ * Requires the Ads add-on.
9924
9946
  *
9925
9947
  */
9926
9948
  export const createConversionAction = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateConversionActionData, ThrowOnError>) => {
@@ -1895,6 +1895,14 @@ export type CampaignBidding = {
1895
1895
  id?: string;
1896
1896
  name?: string;
1897
1897
  } | null;
1898
+ /**
1899
+ * When this data was fetched from Google. Null when it was never served from cache.
1900
+ */
1901
+ cachedAt?: (string) | null;
1902
+ /**
1903
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
1904
+ */
1905
+ stale?: boolean;
1898
1906
  };
1899
1907
 
1900
1908
  /**
@@ -30511,6 +30519,14 @@ export type GetAdsSearchTermsResponse = ({
30511
30519
  */
30512
30520
  nextPageToken?: (string) | null;
30513
30521
  };
30522
+ /**
30523
+ * When this data was fetched from Google. Null when it was never served from cache.
30524
+ */
30525
+ cachedAt?: (string) | null;
30526
+ /**
30527
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30528
+ */
30529
+ stale?: boolean;
30514
30530
  });
30515
30531
 
30516
30532
  export type GetAdsSearchTermsError = (ErrorResponse | {
@@ -30545,6 +30561,14 @@ export type ListBidStrategiesResponse = ({
30545
30561
  */
30546
30562
  currency?: string;
30547
30563
  strategies?: Array<PortfolioBidStrategy>;
30564
+ /**
30565
+ * When this data was fetched from Google. Null when it was never served from cache.
30566
+ */
30567
+ cachedAt?: (string) | null;
30568
+ /**
30569
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
30570
+ */
30571
+ stale?: boolean;
30548
30572
  });
30549
30573
 
30550
30574
  export type ListBidStrategiesError = (ErrorResponse | {
@@ -31209,6 +31233,14 @@ export type ListCampaignNegativeKeywordsResponse = ({
31209
31233
  text?: string;
31210
31234
  matchType?: 'exact' | 'phrase' | 'broad';
31211
31235
  }>;
31236
+ /**
31237
+ * When this list was fetched from Google. Null when it was never served from cache.
31238
+ */
31239
+ cachedAt?: (string) | null;
31240
+ /**
31241
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
31242
+ */
31243
+ stale?: boolean;
31212
31244
  });
31213
31245
 
31214
31246
  export type ListCampaignNegativeKeywordsError = ({
@@ -31386,6 +31418,14 @@ export type GetCampaignTargetingResponse = ({
31386
31418
  id?: string;
31387
31419
  name?: string;
31388
31420
  }>;
31421
+ /**
31422
+ * When this targeting was fetched from Google. Null when it was never served from cache.
31423
+ */
31424
+ cachedAt?: (string) | null;
31425
+ /**
31426
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
31427
+ */
31428
+ stale?: boolean;
31389
31429
  });
31390
31430
 
31391
31431
  export type GetCampaignTargetingError = (ErrorResponse | {
@@ -31448,6 +31488,29 @@ export type UpdateCampaignTargetingResponse = ({
31448
31488
  * Which targeting fields were applied.
31449
31489
  */
31450
31490
  updated?: Array<('devices' | 'locations' | 'languages')>;
31491
+ devices?: Array<{
31492
+ device?: 'MOBILE' | 'DESKTOP' | 'TABLET' | 'CONNECTED_TV';
31493
+ included?: boolean;
31494
+ /**
31495
+ * Always null on this read; see GET's description.
31496
+ */
31497
+ bidModifier?: (number) | null;
31498
+ }>;
31499
+ locations?: Array<{
31500
+ /**
31501
+ * Numeric id from Google's geoTargetConstants/{id}.
31502
+ */
31503
+ geoTargetId?: string;
31504
+ /**
31505
+ * true = excluded location.
31506
+ */
31507
+ negative?: boolean;
31508
+ }>;
31509
+ languages?: Array<{
31510
+ code?: string;
31511
+ id?: string;
31512
+ name?: string;
31513
+ }>;
31451
31514
  });
31452
31515
 
31453
31516
  export type UpdateCampaignTargetingError = (ErrorResponse | {
@@ -33683,6 +33746,14 @@ export type ListAccountCalloutsResponse = ({
33683
33746
  */
33684
33747
  status?: string;
33685
33748
  }>;
33749
+ /**
33750
+ * When this list was fetched from Google. Null when it was never served from cache.
33751
+ */
33752
+ cachedAt?: (string) | null;
33753
+ /**
33754
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
33755
+ */
33756
+ stale?: boolean;
33686
33757
  });
33687
33758
 
33688
33759
  export type ListAccountCalloutsError = (ErrorResponse | {
@@ -33874,6 +33945,14 @@ export type ListAdAccountsResponse = ({
33874
33945
  */
33875
33946
  unusableReason?: (string) | null;
33876
33947
  }>;
33948
+ /**
33949
+ * Google only. When this list was fetched from Google. Null when it was never served from cache, or on other platforms.
33950
+ */
33951
+ cachedAt?: (string) | null;
33952
+ /**
33953
+ * Google only. True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read. Absent on other platforms.
33954
+ */
33955
+ stale?: boolean;
33877
33956
  });
33878
33957
 
33879
33958
  export type ListAdAccountsError = ({
@@ -37022,6 +37101,14 @@ export type ListConversionActionsResponse = ({
37022
37101
  */
37023
37102
  customerId?: string;
37024
37103
  actions?: Array<ConversionAction>;
37104
+ /**
37105
+ * When this list was fetched from Google. Null when it was never served from cache.
37106
+ */
37107
+ cachedAt?: (string) | null;
37108
+ /**
37109
+ * True when Google's daily API quota was exhausted and this is the last successful fetch, not a live read.
37110
+ */
37111
+ stale?: boolean;
37025
37112
  });
37026
37113
 
37027
37114
  export type ListConversionActionsError = (ErrorResponse | {