@zinn-digital/sdk 0.1.1353 → 0.1.1355
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.
|
@@ -6288,7 +6288,7 @@ export interface paths {
|
|
|
6288
6288
|
put?: never;
|
|
6289
6289
|
/**
|
|
6290
6290
|
* Do what an audit finding proposes in the Google Ads account (audited).
|
|
6291
|
-
* @description A wasteful search term is added as an exact negative to its shared list (or, for a search served by two campaigns — `detail.why = "cannibal"` — to the one campaign it does not belong in); a poor keyword is paused; a converting or growing search term (`good_term`, `new_keyword`) is added as a PHRASE keyword to the ad group it was searched in. Every change is first replayed against 30 days of search terms and every keyword (the collision simulator). One write to the account, then the finding is closed as `applied`. 422 for a finding that is closed or has nothing to apply (including a keyword proposal that failed a safety check, `detail.one_click = false`), `refusal.googleAds.wouldBlockKeyword` for a negative that is one of our own keywords (owner decision 133: never) and `refusal.googleAds.wouldCollide` when the change would stop a main, converting or growing search or take one from another ad group (the reasons are saved on `detail.collision`); 503 when Google refuses (the finding stays open). Audit action `google_ads.finding_applied`. Requires `campaigns.manage`. BUDGETMV1 (za-186): a budget-limited finding's body may name `option` — `move` (default, total unchanged) or `increase` (the campaign alone raised, refused with 422 when the monthly ceiling no longer has that room today).
|
|
6291
|
+
* @description A wasteful search term is added as an exact negative to its shared list (or, for a search served by two campaigns — `detail.why = "cannibal"` — to the one campaign it does not belong in); a poor keyword is paused; a converting or growing search term (`good_term`, `new_keyword`) is added as a PHRASE keyword to the ad group it was searched in. Every change is first replayed against 30 days of search terms and every keyword (the collision simulator). One write to the account, then the finding is closed as `applied`. 422 for a finding that is closed or has nothing to apply (including a keyword proposal that failed a safety check, `detail.one_click = false`), `refusal.googleAds.wouldBlockKeyword` for a negative that is one of our own keywords (owner decision 133: never) and `refusal.googleAds.wouldCollide` when the change would stop a main, converting or growing search or take one from another ad group (the reasons are saved on `detail.collision`); 503 when Google refuses (the finding stays open). za-260 (WAVEBUILD): approving a wave's budget twice at once builds it once (the budget and plan rows are locked and re-read); the enable of a wave whose read-back set is no longer what was built is refused with `refusal.googleAds.waveEnableRefused`, the row stays open with the reasons on `detail.enable_refused` (each `market`, `campaign`, `code` — `not_paused`, `bidding`, `target_cpa`, `budget`, `country`, `negatives` with the missing `negatives`, or `set` — and `detail.enable_refused_at`) and the error's `details` carry the same reasons (`field` `campaigns.<market>`, `code`, English `message`). Audit action `google_ads.finding_applied`. Requires `campaigns.manage`. BUDGETMV1 (za-186): a budget-limited finding's body may name `option` — `move` (default, total unchanged) or `increase` (the campaign alone raised, refused with 422 when the monthly ceiling no longer has that room today).
|
|
6292
6292
|
*/
|
|
6293
6293
|
post: operations["applyAdminGoogleAdsFinding"];
|
|
6294
6294
|
delete?: never;
|
|
@@ -16210,7 +16210,7 @@ export interface paths {
|
|
|
16210
16210
|
};
|
|
16211
16211
|
/**
|
|
16212
16212
|
* Google returns the browser here after consent.
|
|
16213
|
-
* @description Unauthenticated by design: its authority is the signed `state`. Always answers with a redirect to the dashboard (`/ads?connect=pick&grant=<id>`, `cancelled`, `scope` or `failed`). Once the state verifies, the redirect also carries `&org=<id>` (the org the state names), so a person in several orgs lands on the org Connect was started from.
|
|
16213
|
+
* @description Unauthenticated by design: its authority is the signed `state`. Always answers with a redirect to the dashboard (`/ads?connect=pick&grant=<id>`, `cancelled`, `scope` or `failed`). Once the state verifies, the redirect also carries `&org=<id>` (the org the state names), so a person in several orgs lands on the org Connect was started from. ⛔ ALWAYS a redirect, never a JSON error (CBRETRY, 2026-11-02): this is the browser coming back from consent. A failed code exchange (a vendor timeout, a refusal, anything unexpected) redirects with `connect=failed&why=<class>`, `why` being the §2.57 class (`provider_outage`, `credential_problem` or `our_fault`) from the one classifier; the dashboard explains it (an outage links the network's `status_url` from `listAdsNetworks`) and offers a fresh Connect. The exchange retries a CONNECT failure (nothing reached the vendor) up to 5 times within the request; a read timeout or a vendor answer is never replayed, because the code is single-use. Every network's callback below behaves the same way.
|
|
16214
16214
|
*/
|
|
16215
16215
|
get: operations["adsConnectGoogleCallback"];
|
|
16216
16216
|
put?: never;
|
|
@@ -140627,6 +140627,8 @@ export interface operations {
|
|
|
140627
140627
|
click_id: string;
|
|
140628
140628
|
label: string;
|
|
140629
140629
|
platform: string;
|
|
140630
|
+
/** @description The network's own status board (the §2.57 vendor registry), `""` when it publishes none. The Connect screen links it when a sign-in failed with `why=provider_outage` (CBRETRY). */
|
|
140631
|
+
status_url: string;
|
|
140630
140632
|
}[];
|
|
140631
140633
|
};
|
|
140632
140634
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zinn-digital/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1355",
|
|
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>",
|