@zinn-digital/sdk 0.1.1393 → 0.1.1395

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.
@@ -16959,6 +16959,33 @@ export interface paths {
16959
16959
  patch: operations["updateAdsAudience"];
16960
16960
  trace?: never;
16961
16961
  };
16962
+ "/v1/ads/connections/{connection_id}/audiences/{audience_id}/crm-feed": {
16963
+ parameters: {
16964
+ query?: never;
16965
+ header?: never;
16966
+ path: {
16967
+ audience_id: string;
16968
+ connection_id: string;
16969
+ };
16970
+ cookie?: never;
16971
+ };
16972
+ get?: never;
16973
+ /**
16974
+ * Fill a Customer Match list automatically from one of your CRM sources.
16975
+ * @description za-95 (docs/1006 §72a). Gated on `ads.manage`; audit action `ads.audience_crm_feed_set` (counts and the attestation, never a person). Any change to the attestation re-stamps who and when; withdrawing either consent removes everyone at the next sync; changing the stages or the source re-reads the CRM from the start. Refusals: `audienceHasUploads` (the list holds uploaded people), `crmFeedBadSource`, `crmFeedBadStages`, `audienceDeleted`, `disconnected`.
16976
+ */
16977
+ put: operations["setAdsAudienceCrmFeed"];
16978
+ post?: never;
16979
+ /**
16980
+ * Stop filling a list from the CRM; everyone it added is removed.
16981
+ * @description za-95. Gated on `ads.manage`; audit action `ads.audience_crm_feed_removed`. The list stays and can take uploads again.
16982
+ */
16983
+ delete: operations["removeAdsAudienceCrmFeed"];
16984
+ options?: never;
16985
+ head?: never;
16986
+ patch?: never;
16987
+ trace?: never;
16988
+ };
16962
16989
  "/v1/ads/connections/{connection_id}/audiences/{audience_id}/members": {
16963
16990
  parameters: {
16964
16991
  query?: never;
@@ -61582,8 +61609,11 @@ export interface components {
61582
61609
  active: boolean;
61583
61610
  added_last?: number;
61584
61611
  at_network_list?: boolean;
61585
- /** @enum {string|null} */
61586
- blocked_by: "notGoogle" | "noConsent" | "noTerms" | "noDataManager" | "paused" | "disconnected" | "killed" | "notInGoodStanding" | "needsReconnect" | "deferred" | null;
61612
+ /**
61613
+ * @description Why nothing is sent now. `noSourceConsent` (za-95) = the list is filled from a CRM source whose Customer Match consents (BOTH ad_user_data and ad_personalization) are not attested; the remedy is to attest both for that source on the list. A list that may not add people (`noConsent` / `noSourceConsent`) still has its removals sent: withdrawing consent or unlinking the CRM takes everyone off at the network.
61614
+ * @enum {string|null}
61615
+ */
61616
+ blocked_by: "notGoogle" | "noConsent" | "noSourceConsent" | "noTerms" | "noDataManager" | "paused" | "disconnected" | "killed" | "notInGoodStanding" | "needsReconnect" | "deferred" | null;
61587
61617
  consent: {
61588
61618
  /** @enum {string} */
61589
61619
  ad_personalization?: "GRANTED" | "DENIED" | "UNSPECIFIED";
@@ -61611,6 +61641,8 @@ export interface components {
61611
61641
  };
61612
61642
  /** Format: date-time */
61613
61643
  created_at: string;
61644
+ /** @description za-95 — the CRM source filling this list automatically (null = an uploaded list). */
61645
+ crm_feed?: components["schemas"]["AdsAudienceCrmFeed"] | null;
61614
61646
  description?: string;
61615
61647
  /** Format: uuid */
61616
61648
  id: string;
@@ -61630,6 +61662,38 @@ export interface components {
61630
61662
  name: string;
61631
61663
  removed_last?: number;
61632
61664
  };
61665
+ /** @description za-95 (docs/1006 §72a): a Customer Match list filled from one of the customer's own CRM sources. People whose lead or deal is at one of `stages` join; a person who leaves those stages, or whose CRM consent field reads a refusal, is removed. The Customer Match attestation is this source's OWN (both consents, who and when) — never the CRM source's ad-measurement `consent_attested`. Until both are attested the CRM is not read for the list. Counts only, never a person. */
61666
+ AdsAudienceCrmFeed: {
61667
+ attest_ad_personalization: boolean;
61668
+ attest_ad_user_data: boolean;
61669
+ /** @description Both attested */
61670
+ attested: boolean;
61671
+ /** Format: date-time */
61672
+ attested_at: string | null;
61673
+ attested_by: string;
61674
+ joined: number;
61675
+ /** Format: date-time */
61676
+ last_fed_at: string | null;
61677
+ leads_read: number;
61678
+ left: number;
61679
+ /** @description Leads at a feed stage whose CRM consent field refused. */
61680
+ not_consented: number;
61681
+ /** Format: uuid */
61682
+ source_id: string;
61683
+ stages: string[];
61684
+ };
61685
+ AdsAudienceCrmFeedPut: {
61686
+ /** @description The customer attests every person in these stages consented to personalised advertising. */
61687
+ attest_ad_personalization: boolean;
61688
+ /** @description The customer attests every person in these stages consented to their data being sent to Google for advertising. */
61689
+ attest_ad_user_data: boolean;
61690
+ /**
61691
+ * Format: uuid
61692
+ * @description A lead or deal source on this ad account (not a calls source).
61693
+ */
61694
+ source_id: string;
61695
+ stages: string[];
61696
+ };
61633
61697
  /** @description One audit of one ad account (za-39: the platform-neutral audit for Microsoft Advertising; the Google audit for Google). Counts only, never vendor text. */
61634
61698
  AdsAuditRun: {
61635
61699
  /** Format: date-time */
@@ -61740,8 +61804,11 @@ export interface components {
61740
61804
  * @enum {string}
61741
61805
  */
61742
61806
  mode: "auto" | "approve" | "off";
61743
- /** @enum {string} */
61744
- step: "negatives" | "pauses" | "keywords" | "budgets" | "bids" | "assets" | "goals";
61807
+ /**
61808
+ * @description za-72 `compare_page`: a competitor ad moved onto the customer's own comparison page for its rival, under the `ads` mode.
61809
+ * @enum {string}
61810
+ */
61811
+ step: "negatives" | "pauses" | "keywords" | "budgets" | "bids" | "assets" | "compare_page" | "goals";
61745
61812
  }[];
61746
61813
  };
61747
61814
  /** @description The organisation's autopilot decisions (za-166, docs/1006 §77). */
@@ -62378,6 +62445,7 @@ export interface components {
62378
62445
  AdsCompetitorGroupsEnvelope: {
62379
62446
  data: {
62380
62447
  enabled: boolean;
62448
+ found_rivals?: components["schemas"]["AdsFoundRival"][];
62381
62449
  last_run: components["schemas"]["AdsCompetitorGroupsRun"] | null;
62382
62450
  /** @description Proposals waiting for approval. */
62383
62451
  pending: number;
@@ -62401,6 +62469,10 @@ export interface components {
62401
62469
  max_keywords?: number | null;
62402
62470
  min_clicks?: number | null;
62403
62471
  min_impressions?: number | null;
62472
+ /** @description za-73: add or dismiss competitors found on the account, by name (from `found_rivals`). An unknown name or value refuses the whole request (competitorGroupsInvalid, field `rivals`). */
62473
+ rivals?: {
62474
+ [key: string]: "added" | "dismissed";
62475
+ };
62404
62476
  };
62405
62477
  AdsCompetitorGroupsRun: {
62406
62478
  /** @description za-71: builds and blocks the Automatic mode sent. */
@@ -62411,6 +62483,8 @@ export interface components {
62411
62483
  blocked?: number;
62412
62484
  /** @description Rival + language pairs that already have a group or a decided proposal. */
62413
62485
  covered: number;
62486
+ /** @description za-73: found competitors waiting for a person to add or dismiss. */
62487
+ found_rivals?: number;
62414
62488
  groups: components["schemas"]["AdsCompetitorGroup"][];
62415
62489
  proposed: number;
62416
62490
  /** @description Empty when it ran; else why not (competitorsOff, notInGoodStanding, ...). */
@@ -62694,6 +62768,8 @@ export interface components {
62694
62768
  };
62695
62769
  AdsCrmSyncResult: {
62696
62770
  failure: string;
62771
+ /** @description za-95: people who joined or left a CRM-fed Customer Match list (CSV uploads). */
62772
+ list_changes?: number;
62697
62773
  more: boolean;
62698
62774
  no_click_id: number;
62699
62775
  not_consented: number;
@@ -62846,6 +62922,22 @@ export interface components {
62846
62922
  */
62847
62923
  option: "move" | "increase";
62848
62924
  };
62925
+ /** @description za-73: a competitor this account's own searches (or a brand bidder Auction Insights named) point at, that nobody added. Added, it joins the competitor list: its ad groups are proposed and no ad may name it. Dismissed, it is never suggested again. */
62926
+ AdsFoundRival: {
62927
+ clicks: number;
62928
+ /** Format: date-time */
62929
+ decided_at?: string | null;
62930
+ /** @description Up to three comparison searches that named it. */
62931
+ examples: string[];
62932
+ /** Format: date-time */
62933
+ first_seen_at?: string | null;
62934
+ impressions: number;
62935
+ name: string;
62936
+ /** @enum {string} */
62937
+ source: "search" | "brand_bidder";
62938
+ /** @enum {string} */
62939
+ status: "new" | "added" | "dismissed";
62940
+ };
62849
62941
  /** @description One geo hold-out (za-202, docs/1006 §80). */
62850
62942
  AdsGeoHoldout: {
62851
62943
  baseline_days: number;
@@ -136387,6 +136479,69 @@ export interface operations {
136387
136479
  429: components["responses"]["TooManyRequests"];
136388
136480
  };
136389
136481
  };
136482
+ setAdsAudienceCrmFeed: {
136483
+ parameters: {
136484
+ query?: never;
136485
+ header?: never;
136486
+ path: {
136487
+ audience_id: string;
136488
+ connection_id: string;
136489
+ };
136490
+ cookie?: never;
136491
+ };
136492
+ requestBody: {
136493
+ content: {
136494
+ "application/json": components["schemas"]["AdsAudienceCrmFeedPut"];
136495
+ };
136496
+ };
136497
+ responses: {
136498
+ /** @description The list, with its feed. */
136499
+ 200: {
136500
+ headers: {
136501
+ [name: string]: unknown;
136502
+ };
136503
+ content: {
136504
+ "application/json": components["schemas"]["AdsAudience"] & {
136505
+ sync_started: boolean;
136506
+ };
136507
+ };
136508
+ };
136509
+ 401: components["responses"]["Unauthorized"];
136510
+ 403: components["responses"]["Forbidden"];
136511
+ 404: components["responses"]["NotFound"];
136512
+ 422: components["responses"]["UnprocessableEntity"];
136513
+ 429: components["responses"]["TooManyRequests"];
136514
+ };
136515
+ };
136516
+ removeAdsAudienceCrmFeed: {
136517
+ parameters: {
136518
+ query?: never;
136519
+ header?: never;
136520
+ path: {
136521
+ audience_id: string;
136522
+ connection_id: string;
136523
+ };
136524
+ cookie?: never;
136525
+ };
136526
+ requestBody?: never;
136527
+ responses: {
136528
+ /** @description Removed; the removals are sent at the next sync. */
136529
+ 202: {
136530
+ headers: {
136531
+ [name: string]: unknown;
136532
+ };
136533
+ content: {
136534
+ "application/json": components["schemas"]["AdsAudience"] & {
136535
+ sync_started: boolean;
136536
+ };
136537
+ };
136538
+ };
136539
+ 401: components["responses"]["Unauthorized"];
136540
+ 403: components["responses"]["Forbidden"];
136541
+ 404: components["responses"]["NotFound"];
136542
+ 429: components["responses"]["TooManyRequests"];
136543
+ };
136544
+ };
136390
136545
  uploadAdsAudienceMembers: {
136391
136546
  parameters: {
136392
136547
  query?: never;
@@ -161904,6 +162059,8 @@ export interface operations {
161904
162059
  listExtras: {
161905
162060
  parameters: {
161906
162061
  query?: {
162062
+ /** @description The language the app is rendering in (a BCP 47 tag such as `ar` or `pt-PT`). A supported value is the language each extra's `name` and `description` are served in; an absent or unsupported one falls back to the caller's stored language preference. Never read from `Accept-Language`. */
162063
+ locale?: string;
161907
162064
  /** @description Only extras offered on this product line. */
161908
162065
  product_line?: string;
161909
162066
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zinn-digital/sdk",
3
- "version": "0.1.1393",
3
+ "version": "0.1.1395",
4
4
  "description": "Typed TypeScript client for the Zinn Digital Platform API, generated from its OpenAPI spec.",
5
5
  "license": "MIT",
6
6
  "author": "Neil Lock \u2014 CEO, Zinn Digital\u00ae Ltd <office@zinndigital.com>",