REST Resource: accounts.services

Resource: AccountService

The AccountService message represents a specific service that a provider account offers to a merchant account.

AccountService defines the permissions and capabilities granted to the provider, allowing for operations such as product management or campaign management.

The lifecycle of an AccountService involves a proposal phase, where one party suggests the service, and an approval phase, where the other party accepts or rejects it. This handshake mechanism ensures mutual consent before any access is granted. This mechanism safeguards both parties by ensuring that access rights are granted appropriately and that both the merchant and provider are aware of the services enabled. In scenarios where a user is an admin of both accounts, the approval can happen automatically.

The mutability of a service is also managed through AccountService. Some services might be immutable, for example, if they were established through other systems or APIs, and you cannot alter them through this API.

JSON representation
{
  "name": string,
  "providerDisplayName": string,
  "handshake": {
    object (Handshake)
  },
  "mutability": enum (Mutability),
  "externalAccountId": string,

  // Union field service_type can be only one of the following:
  "productsManagement": {
    object (ProductsManagement)
  },
  "campaignsManagement": {
    object (CampaignsManagement)
  },
  "accountManagement": {
    object (AccountManagement)
  },
  "accountAggregation": {
    object (AccountAggregation)
  }
  // End of list of possible types for union field service_type.
  "provider": string
}
Fields
name

string

Identifier. The resource name of the account service.

providerDisplayName

string

Output only. The human-readable display name of the provider account.

handshake

object (Handshake)

Output only. Information about the state of the service in terms of establishing it (e.g. is it pending approval or approved).

mutability

enum (Mutability)

Output only. Whether the service is mutable (e.g. through Approve / Reject RPCs). A service that was created through another system or API might be immutable.

externalAccountId

string

Immutable. An optional, immutable identifier that Google uses to refer to this account when communicating with the provider. This should be the unique account ID within the provider's system (for example, your shop ID in Shopify).

If you have multiple accounts with the same provider - for instance, different accounts for various regions — the externalAccountId differentiates between them, ensuring accurate linking and integration between Google and the provider.

Union field service_type. The payload specified has to correspond to the service_type. service_type can be only one of the following:
productsManagement

object (ProductsManagement)

Service type for managing products. This allows the provider to handle product data on behalf of the merchant, including reading and writing product listings. It's commonly used when the provider offers inventory management or catalog synchronization services to keep the merchant's product information up-to-date across platforms.

campaignsManagement

object (CampaignsManagement)

Service type for managing advertising campaigns. Grants the provider access to create and manage the merchant's ad campaigns, including setting up campaigns, adjusting bids, and optimizing performance.

accountManagement

object (AccountManagement)

Service type for account management. Enables the provider to perform administrative actions on the merchant's account, such as configuring account settings, managing users, or updating business information.

accountAggregation

object (AccountAggregation)

Service type for account aggregation. This enables the provider, which is a Multi-Client Account (MCA), to manage multiple sub-accounts (client accounts). Through this service, the MCA provider can perform administrative and operational tasks across all linked sub-accounts.

This is useful for agencies, aggregators, or large retailers that need centralized control over many merchant accounts.

provider

string

Output only. The provider of the service. Either the reference to an account such as providers/123 or a well-known service provider (one of providers/GOOGLE_ADS or providers/GOOGLE_BUSINESS_PROFILE).

ProductsManagement

This type has no fields.

ProductsManagement payload.

CampaignsManagement

This type has no fields.

CampaignManagement payload.

AccountManagement

This type has no fields.

AccountManagement payload.

AccountAggregation

This type has no fields.

AccountAggregation payload.

Handshake

The current status of establishing of the service. (for example, pending approval or approved).

JSON representation
{
  "approvalState": enum (ApprovalState),
  "actor": enum (Actor)
}
Fields
approvalState

enum (ApprovalState)

Output only. The approval state of this handshake.

actor

enum (Actor)

Output only. The most recent account to modify the account service's approval_status.

ApprovalState

The approal state of a handshake.

Enums
APPROVAL_STATE_UNSPECIFIED Unspecified approval status.
PENDING The service was proposed and is waiting to be confirmed.
ESTABLISHED Both parties have confirmed the service.
REJECTED The service proposal was rejected.

Actor

The various actors that can be involved in a handshake.

Enums
ACTOR_UNSPECIFIED Unspecified actor.
ACCOUNT The last change was done by the account who has this service.
OTHER_PARTY The last change was done by the other party who this service points to.

Mutability

The list of mutability option settings a service can have.

Enums
MUTABILITY_UNSPECIFIED Unused default value
MUTABLE The service can be mutated without restrictions.
IMMUTABLE The service is read-only and must not be mutated.

Methods

approve

Approve an account service proposal.

get

Retrieve an account service.

list

List account services for the specified accounts.

propose

Propose an account service.

reject

Reject an account service (both proposed and approve services can be rejected).