Skip to main content
The v3 save_advertiser tool exposes account-mapping operations that connect provider accounts (Meta, Google Ads, TikTok, and others) to an advertiser. Use these operations when configuring a campaign so that media buys route to the right provider account. Supply assignAccount with advertiserId to create a new link. accountId is the provider account ID returned by account discovery — it is an arbitrary string (e.g. "act_123456789" or "acc_acme_pinnacle"). credentialId is optional and, when supplied, must be the numeric-string credential ID from account discovery — it is required only when the same seller storefront exposes more than one credential:
The response includes the stable linkId needed to modify or remove the link. Accounts that come from a connection, such as a Spotify, Google Ad Manager, or Meta connection you authorized, are not linked with assignAccount. Read the connection with get(kind:"connection", id) and use the id of the account in its accounts list, not its externalAccountId. Then call save_connection with the connection ID and an advertiserMapping:
This is the same operation the Connections page uses. If nothing is selected on the connection yet, the first mapped account also becomes the connection’s selected account.

Errors

A failed account operation returns the error code and a message that says why it failed, for example that the account was not found or that its currency does not match the advertiser. Internal failures return a generic message. When assignAccount cannot find the account, the message also points to save_connection, because the account is most often on a connection. If the link was saved but could not be read back, the message says so instead: read the advertiser with include: ["accounts"] before retrying. Supply unassignAccount with the linkId returned by a prior assignment or by get(kind:"advertiser", include:["accounts"]):

Set or clear a reporting bucket

updateReportingBucket configures a customer-owned object-storage bucket to receive offline delivery reports, or clears one already set:
Set bucket: null to clear a previously configured bucket.

Read linked accounts inline

Include "accounts" in the include array when reading an advertiser to receive linked accounts in the same response:
The response includes an accounts array with linkId and advertiserId, plus accountsTotal for the untruncated count. Provider-supplied fields are excluded from the response.

Preview a brand domain

Use resolveBrand to check what domain a brand resolves to before linking it to a new advertiser. Supply the domain alone with no other fields:
The response structuredContent has the shape {action: "brand_resolved", brand: {domain, resolved, identity}}, where identity carries the brand’s name, logo and source. The lookup accepts any AAO registry record, enrichment data and the brand’s website; identity.source is set only when the brand publishes its own identity. No advertiser is created or modified. See Identity and brands for the full lookup rules. This operation is also available to seller workspaces with own_supply_campaigns capability.

Constraints

  • Each call may supply at most one account-mapping operation (assignAccount, unassignAccount, or updateReportingBucket).
  • Account-mapping operations require advertiserId and a buyer account (or seller with own_supply_campaigns for resolveBrand).
  • These operations cannot be combined with advertiser field updates (name, brand, primaryCurrency, etc.) in a single call.