@getlatedev/node 0.2.1114 → 0.2.1116

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/README.md CHANGED
@@ -515,7 +515,7 @@ try {
515
515
  | `adCampaigns.getCampaignAdSchedule()` | Read a campaign's ad schedule (dayparting) |
516
516
  | `adCampaigns.getCampaignBidding()` | Read a campaign's current bidding |
517
517
  | `adCampaigns.getCampaignConversionGoals()` | Get campaign conversion goals |
518
- | `adCampaigns.getCampaignTargeting()` | Read a Google campaign's device, location, and language targeting |
518
+ | `adCampaigns.getCampaignTargeting()` | Read a Google campaign's device, location, excluded location, and language targeting |
519
519
  | `adCampaigns.getGoogleAssetGroup()` | Get a Performance Max asset group |
520
520
  | `adCampaigns.updateAd()` | Update ad |
521
521
  | `adCampaigns.updateAdCampaign()` | Update a campaign |
@@ -529,7 +529,7 @@ try {
529
529
  | `adCampaigns.updateCampaignAdSchedule()` | Replace a campaign's ad schedule (dayparting) |
530
530
  | `adCampaigns.updateCampaignAssets()` | Update campaign assets |
531
531
  | `adCampaigns.updateCampaignConversionGoals()` | Update campaign conversion goals |
532
- | `adCampaigns.updateCampaignTargeting()` | Edit a Google campaign's device, location, or language targeting |
532
+ | `adCampaigns.updateCampaignTargeting()` | Edit a Google campaign's device, location, excluded location, or language targeting |
533
533
  | `adCampaigns.updateGoogleAssetGroup()` | Update a Performance Max asset group |
534
534
  | `adCampaigns.deleteAd()` | Cancel an ad |
535
535
  | `adCampaigns.deleteAdCampaign()` | Delete a campaign |
package/dist/index.d.mts CHANGED
@@ -12138,7 +12138,7 @@ type TargetingSpec = {
12138
12138
  address?: string;
12139
12139
  }>;
12140
12140
  /**
12141
- * Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations).
12141
+ * Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations). Google (Search, Display, Performance Max) excludes countries, regions, cities and zips as negative location criteria; countryGroups, places, neighborhoods, customLocations and a city radius return 400 there, and Demand Gen returns 400 for any exclusion.
12142
12142
  */
12143
12143
  excludedLocations?: {
12144
12144
  countries?: Array<(string)>;
@@ -18954,7 +18954,7 @@ type ListInboxConversationAnalyticsResponse = ({
18954
18954
  to?: (string) | null;
18955
18955
  items?: Array<{
18956
18956
  /**
18957
- * The platformConversationId (the same identity used by metadata.conversationId)
18957
+ * The platformConversationId. A thread whose events were logged under both its ids comes back as one row.
18958
18958
  */
18959
18959
  conversationId?: string;
18960
18960
  /**
@@ -40452,6 +40452,27 @@ type GetCampaignTargetingResponse = ({
40452
40452
  */
40453
40453
  countryCode?: (string) | null;
40454
40454
  }>;
40455
+ /**
40456
+ * The negative (excluded) location criteria, same item shape as `locations` with `negative: true`.
40457
+ */
40458
+ excludedLocations?: Array<{
40459
+ /**
40460
+ * Numeric id from Google's geoTargetConstants/{id}.
40461
+ */
40462
+ geoTargetId?: string;
40463
+ /**
40464
+ * Always true here.
40465
+ */
40466
+ negative?: boolean;
40467
+ name?: (string) | null;
40468
+ canonicalName?: (string) | null;
40469
+ type?: (string) | null;
40470
+ countryCode?: (string) | null;
40471
+ }>;
40472
+ /**
40473
+ * Whether PUT accepts `excludedLocations` for this campaign. False on Demand Gen, which returns 400 for any exclusion.
40474
+ */
40475
+ excludedLocationsEditable?: boolean;
40455
40476
  languages?: Array<{
40456
40477
  /**
40457
40478
  * Google's language code (ISO 639-1, plus variants such as `zh_CN`). Empty when the campaign's language_constant id is not in Zernio's checked-in table.
@@ -40517,6 +40538,28 @@ type UpdateCampaignTargetingData = {
40517
40538
  * Google's language codes (ISO 639-1, plus variants such as `zh_CN`), e.g. ["en", "de"].
40518
40539
  */
40519
40540
  languages?: Array<(string)>;
40541
+ /**
40542
+ * Locations the campaign never serves in, as a bare country-code array or the nested countries/regions/cities/zips/metros shape. Replaces the excluded set; [] removes every exclusion.
40543
+ */
40544
+ excludedLocations?: (Array<(string)> | {
40545
+ countries?: Array<(string)>;
40546
+ regions?: Array<(string | {
40547
+ key: string;
40548
+ name?: string;
40549
+ })>;
40550
+ cities?: Array<(string | {
40551
+ key: string;
40552
+ name?: string;
40553
+ })>;
40554
+ zips?: Array<(string | {
40555
+ key: string;
40556
+ name?: string;
40557
+ })>;
40558
+ metros?: Array<(string | {
40559
+ key: string;
40560
+ name?: string;
40561
+ })>;
40562
+ });
40520
40563
  locationTargetingType?: GoogleLocationTargetingType;
40521
40564
  };
40522
40565
  };
@@ -40536,7 +40579,7 @@ type UpdateCampaignTargetingResponse = ({
40536
40579
  /**
40537
40580
  * Which targeting fields were applied.
40538
40581
  */
40539
- updated?: Array<('devices' | 'locations' | 'languages' | 'locationTargetingType')>;
40582
+ updated?: Array<('devices' | 'locations' | 'excludedLocations' | 'languages' | 'locationTargetingType')>;
40540
40583
  /**
40541
40584
  * The value read back from Google after the edit.
40542
40585
  */
@@ -40575,6 +40618,17 @@ type UpdateCampaignTargetingResponse = ({
40575
40618
  */
40576
40619
  countryCode?: (string) | null;
40577
40620
  }>;
40621
+ /**
40622
+ * The negative (excluded) location criteria read back after the edit, same item shape as `locations`.
40623
+ */
40624
+ excludedLocations?: Array<{
40625
+ geoTargetId?: string;
40626
+ negative?: boolean;
40627
+ name?: (string) | null;
40628
+ canonicalName?: (string) | null;
40629
+ type?: (string) | null;
40630
+ countryCode?: (string) | null;
40631
+ }>;
40578
40632
  languages?: Array<{
40579
40633
  code?: string;
40580
40634
  id?: string;
package/dist/index.d.ts CHANGED
@@ -12138,7 +12138,7 @@ type TargetingSpec = {
12138
12138
  address?: string;
12139
12139
  }>;
12140
12140
  /**
12141
- * Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations).
12141
+ * Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations). Google (Search, Display, Performance Max) excludes countries, regions, cities and zips as negative location criteria; countryGroups, places, neighborhoods, customLocations and a city radius return 400 there, and Demand Gen returns 400 for any exclusion.
12142
12142
  */
12143
12143
  excludedLocations?: {
12144
12144
  countries?: Array<(string)>;
@@ -18954,7 +18954,7 @@ type ListInboxConversationAnalyticsResponse = ({
18954
18954
  to?: (string) | null;
18955
18955
  items?: Array<{
18956
18956
  /**
18957
- * The platformConversationId (the same identity used by metadata.conversationId)
18957
+ * The platformConversationId. A thread whose events were logged under both its ids comes back as one row.
18958
18958
  */
18959
18959
  conversationId?: string;
18960
18960
  /**
@@ -40452,6 +40452,27 @@ type GetCampaignTargetingResponse = ({
40452
40452
  */
40453
40453
  countryCode?: (string) | null;
40454
40454
  }>;
40455
+ /**
40456
+ * The negative (excluded) location criteria, same item shape as `locations` with `negative: true`.
40457
+ */
40458
+ excludedLocations?: Array<{
40459
+ /**
40460
+ * Numeric id from Google's geoTargetConstants/{id}.
40461
+ */
40462
+ geoTargetId?: string;
40463
+ /**
40464
+ * Always true here.
40465
+ */
40466
+ negative?: boolean;
40467
+ name?: (string) | null;
40468
+ canonicalName?: (string) | null;
40469
+ type?: (string) | null;
40470
+ countryCode?: (string) | null;
40471
+ }>;
40472
+ /**
40473
+ * Whether PUT accepts `excludedLocations` for this campaign. False on Demand Gen, which returns 400 for any exclusion.
40474
+ */
40475
+ excludedLocationsEditable?: boolean;
40455
40476
  languages?: Array<{
40456
40477
  /**
40457
40478
  * Google's language code (ISO 639-1, plus variants such as `zh_CN`). Empty when the campaign's language_constant id is not in Zernio's checked-in table.
@@ -40517,6 +40538,28 @@ type UpdateCampaignTargetingData = {
40517
40538
  * Google's language codes (ISO 639-1, plus variants such as `zh_CN`), e.g. ["en", "de"].
40518
40539
  */
40519
40540
  languages?: Array<(string)>;
40541
+ /**
40542
+ * Locations the campaign never serves in, as a bare country-code array or the nested countries/regions/cities/zips/metros shape. Replaces the excluded set; [] removes every exclusion.
40543
+ */
40544
+ excludedLocations?: (Array<(string)> | {
40545
+ countries?: Array<(string)>;
40546
+ regions?: Array<(string | {
40547
+ key: string;
40548
+ name?: string;
40549
+ })>;
40550
+ cities?: Array<(string | {
40551
+ key: string;
40552
+ name?: string;
40553
+ })>;
40554
+ zips?: Array<(string | {
40555
+ key: string;
40556
+ name?: string;
40557
+ })>;
40558
+ metros?: Array<(string | {
40559
+ key: string;
40560
+ name?: string;
40561
+ })>;
40562
+ });
40520
40563
  locationTargetingType?: GoogleLocationTargetingType;
40521
40564
  };
40522
40565
  };
@@ -40536,7 +40579,7 @@ type UpdateCampaignTargetingResponse = ({
40536
40579
  /**
40537
40580
  * Which targeting fields were applied.
40538
40581
  */
40539
- updated?: Array<('devices' | 'locations' | 'languages' | 'locationTargetingType')>;
40582
+ updated?: Array<('devices' | 'locations' | 'excludedLocations' | 'languages' | 'locationTargetingType')>;
40540
40583
  /**
40541
40584
  * The value read back from Google after the edit.
40542
40585
  */
@@ -40575,6 +40618,17 @@ type UpdateCampaignTargetingResponse = ({
40575
40618
  */
40576
40619
  countryCode?: (string) | null;
40577
40620
  }>;
40621
+ /**
40622
+ * The negative (excluded) location criteria read back after the edit, same item shape as `locations`.
40623
+ */
40624
+ excludedLocations?: Array<{
40625
+ geoTargetId?: string;
40626
+ negative?: boolean;
40627
+ name?: (string) | null;
40628
+ canonicalName?: (string) | null;
40629
+ type?: (string) | null;
40630
+ countryCode?: (string) | null;
40631
+ }>;
40578
40632
  languages?: Array<{
40579
40633
  code?: string;
40580
40634
  id?: 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: "@getlatedev/node",
39
- version: "0.2.1114",
39
+ version: "0.2.1116",
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.1114",
8
+ version: "0.2.1116",
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.1114",
3
+ "version": "0.2.1116",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -9941,7 +9941,7 @@ export const duplicateAdCampaign = <ThrowOnError extends boolean = false>(option
9941
9941
  };
9942
9942
 
9943
9943
  /**
9944
- * Read a Google campaign's device, location, and language targeting
9944
+ * Read a Google campaign's device, location, excluded location, and language targeting
9945
9945
  * Google Ads compliance requires geo, language, budget, and bidding targeting
9946
9946
  * set at creation to stay editable afterwards; this reads the campaign state
9947
9947
  * so an integrator can build an editor around it. Cached for the quota window
@@ -9954,6 +9954,11 @@ export const duplicateAdCampaign = <ThrowOnError extends boolean = false>(option
9954
9954
  * for that device, `null` when it has none, and `0` when the device is
9955
9955
  * switched off; `included` is false for exactly that case.
9956
9956
  *
9957
+ * `excludedLocations` lists the campaign's negative location criteria (the
9958
+ * places it never serves in). `locations` still lists every location criterion,
9959
+ * each flagged with `negative`, so a client reading the targeted set filters
9960
+ * `negative: false`.
9961
+ *
9957
9962
  */
9958
9963
  export const getCampaignTargeting = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetCampaignTargetingData, ThrowOnError>) => {
9959
9964
  return (options?.client ?? client).get<GetCampaignTargetingResponse, GetCampaignTargetingError, ThrowOnError>({
@@ -9963,10 +9968,10 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
9963
9968
  };
9964
9969
 
9965
9970
  /**
9966
- * Edit a Google campaign's device, location, or language targeting
9971
+ * Edit a Google campaign's device, location, excluded location, or language targeting
9967
9972
  * Google Ads compliance row M.10: geo and language targeting set at
9968
9973
  * creation must stay editable afterwards. Send at least one of `devices`,
9969
- * `locations`, `languages`, `locationTargetingType`; each provided field REPLACES that field's
9974
+ * `locations`, `excludedLocations`, `languages`, `locationTargetingType`; each provided field REPLACES that field's
9970
9975
  * existing criteria on the campaign (a full set, not a delta). Fields left
9971
9976
  * out of the body are untouched. Google only; every other platform returns
9972
9977
  * 501.
@@ -9978,11 +9983,19 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
9978
9983
  *
9979
9984
  * `locations` accepts the same shapes as campaign creation: a bare array of
9980
9985
  * ISO country codes, or an object with `countries`/`regions`/`cities`/`zips`/`metros`
9981
- * key lists (`key` from GET /v1/ads/targeting/search?dimension=geo). Negative
9982
- * (excluded) locations are left untouched by this endpoint. An empty location list
9986
+ * key lists (`key` from GET /v1/ads/targeting/search?dimension=geo). Excluded
9987
+ * locations are left untouched by `locations`. An empty location list
9983
9988
  * returns 400 instead of removing every criterion: a Google campaign with no location
9984
9989
  * criteria targets every country, so omit `locations` to leave targeting alone.
9985
9990
  *
9991
+ * `excludedLocations` takes the same two shapes and replaces the campaign's negative
9992
+ * location criteria (the places it never serves in), leaving the targeted `locations`
9993
+ * untouched. An empty list (or `{}`) removes every exclusion. Radius exclusions are
9994
+ * not supported. A place cannot be both targeted and excluded: a request whose result
9995
+ * would leave one on both sides returns 400 before anything is written, and moving a
9996
+ * place from one side to the other in the same request is applied atomically. Example:
9997
+ * `{ "platform": "google", "targeting": { "excludedLocations": { "countries": ["CA"], "regions": ["21137"] } } }`.
9998
+ *
9986
9999
  * The removes and the creates go out in ONE Google `googleAds:mutate`, so a failed
9987
10000
  * edit leaves the campaign's previous set intact rather than a half-applied one.
9988
10001
  *
@@ -9994,7 +10007,7 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
9994
10007
  * (also people searching for or interested in them). Example:
9995
10008
  * `{ "platform": "google", "targeting": { "locationTargetingType": "presence" } }`.
9996
10009
  *
9997
- * The response includes the refreshed `devices`/`locations`/`languages` state
10010
+ * The response includes the refreshed `devices`/`locations`/`excludedLocations`/`languages` state
9998
10011
  * read back from Google after the edit, and invalidates the cached copy
9999
10012
  * `GET` on this campaign would otherwise keep serving.
10000
10013
  *
@@ -10005,6 +10018,7 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
10005
10018
  * returns 400 naming them: edit each one with PUT /v1/ads/{adId} `targeting` on an ad of
10006
10019
  * that ad group. Campaigns migrated from Discovery that still target on the campaign keep
10007
10020
  * being written there. `devices` and `locationTargetingType` stay campaign-level.
10021
+ * `excludedLocations` is not available on Demand Gen yet and returns 400.
10008
10022
  *
10009
10023
  */
10010
10024
  export const updateCampaignTargeting = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateCampaignTargetingData, ThrowOnError>) => {
@@ -10612,7 +10612,7 @@ export type TargetingSpec = {
10612
10612
  address?: string;
10613
10613
  }>;
10614
10614
  /**
10615
- * Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations).
10615
+ * Geo to exclude from the audience. Mirrors the inclusion geo shape: excluded cities can carry a radius catchment and excluded custom (lat/lng) pins are supported, both on Meta (excluded_geo_locations). Google (Search, Display, Performance Max) excludes countries, regions, cities and zips as negative location criteria; countryGroups, places, neighborhoods, customLocations and a city radius return 400 there, and Demand Gen returns 400 for any exclusion.
10616
10616
  */
10617
10617
  excludedLocations?: {
10618
10618
  countries?: Array<(string)>;
@@ -17744,7 +17744,7 @@ export type ListInboxConversationAnalyticsResponse = ({
17744
17744
  to?: (string) | null;
17745
17745
  items?: Array<{
17746
17746
  /**
17747
- * The platformConversationId (the same identity used by metadata.conversationId)
17747
+ * The platformConversationId. A thread whose events were logged under both its ids comes back as one row.
17748
17748
  */
17749
17749
  conversationId?: string;
17750
17750
  /**
@@ -40898,6 +40898,27 @@ export type GetCampaignTargetingResponse = ({
40898
40898
  */
40899
40899
  countryCode?: (string) | null;
40900
40900
  }>;
40901
+ /**
40902
+ * The negative (excluded) location criteria, same item shape as `locations` with `negative: true`.
40903
+ */
40904
+ excludedLocations?: Array<{
40905
+ /**
40906
+ * Numeric id from Google's geoTargetConstants/{id}.
40907
+ */
40908
+ geoTargetId?: string;
40909
+ /**
40910
+ * Always true here.
40911
+ */
40912
+ negative?: boolean;
40913
+ name?: (string) | null;
40914
+ canonicalName?: (string) | null;
40915
+ type?: (string) | null;
40916
+ countryCode?: (string) | null;
40917
+ }>;
40918
+ /**
40919
+ * Whether PUT accepts `excludedLocations` for this campaign. False on Demand Gen, which returns 400 for any exclusion.
40920
+ */
40921
+ excludedLocationsEditable?: boolean;
40901
40922
  languages?: Array<{
40902
40923
  /**
40903
40924
  * Google's language code (ISO 639-1, plus variants such as `zh_CN`). Empty when the campaign's language_constant id is not in Zernio's checked-in table.
@@ -40965,6 +40986,28 @@ export type UpdateCampaignTargetingData = {
40965
40986
  * Google's language codes (ISO 639-1, plus variants such as `zh_CN`), e.g. ["en", "de"].
40966
40987
  */
40967
40988
  languages?: Array<(string)>;
40989
+ /**
40990
+ * Locations the campaign never serves in, as a bare country-code array or the nested countries/regions/cities/zips/metros shape. Replaces the excluded set; [] removes every exclusion.
40991
+ */
40992
+ excludedLocations?: (Array<(string)> | {
40993
+ countries?: Array<(string)>;
40994
+ regions?: Array<(string | {
40995
+ key: string;
40996
+ name?: string;
40997
+ })>;
40998
+ cities?: Array<(string | {
40999
+ key: string;
41000
+ name?: string;
41001
+ })>;
41002
+ zips?: Array<(string | {
41003
+ key: string;
41004
+ name?: string;
41005
+ })>;
41006
+ metros?: Array<(string | {
41007
+ key: string;
41008
+ name?: string;
41009
+ })>;
41010
+ });
40968
41011
  locationTargetingType?: GoogleLocationTargetingType;
40969
41012
  };
40970
41013
  };
@@ -40985,7 +41028,7 @@ export type UpdateCampaignTargetingResponse = ({
40985
41028
  /**
40986
41029
  * Which targeting fields were applied.
40987
41030
  */
40988
- updated?: Array<('devices' | 'locations' | 'languages' | 'locationTargetingType')>;
41031
+ updated?: Array<('devices' | 'locations' | 'excludedLocations' | 'languages' | 'locationTargetingType')>;
40989
41032
  /**
40990
41033
  * The value read back from Google after the edit.
40991
41034
  */
@@ -41024,6 +41067,17 @@ export type UpdateCampaignTargetingResponse = ({
41024
41067
  */
41025
41068
  countryCode?: (string) | null;
41026
41069
  }>;
41070
+ /**
41071
+ * The negative (excluded) location criteria read back after the edit, same item shape as `locations`.
41072
+ */
41073
+ excludedLocations?: Array<{
41074
+ geoTargetId?: string;
41075
+ negative?: boolean;
41076
+ name?: (string) | null;
41077
+ canonicalName?: (string) | null;
41078
+ type?: (string) | null;
41079
+ countryCode?: (string) | null;
41080
+ }>;
41027
41081
  languages?: Array<{
41028
41082
  code?: string;
41029
41083
  id?: string;