结算设置是 Google Ads 账号与支付账号之间的账号级关联(也称为账单设置),可有效确定由谁来支付结算设置的账号预算所产生的费用。每个支付账号对应一份账单。
关于付款账号
每个 BillingSetup 标识一个支付账号,该账号会收到其账号预算所产生费用的账单。此支付账号与最终负责扣款的支付资料相关联。
结算设置包含一个 payments_account 字段和一组 payments_account_info 字段,用于标识正在使用的支付账号,包括:
payments_account_info.payments_account_id:一个 16 位 ID,格式为带连字符的字符串(例如"1234-5678-9012-3456"),用于标识与结算设置关联的支付账号。payments_account_info.payments_account_name:与结算设置关联的支付账号的名称。此名称会显示在月度账单上。payments_account_info.payments_profile_id:一个 12 位数的 ID,格式为带连字符的字符串(例如"1234-5678-9012"),用于标识与结算设置关联的支付资料。
如果某个支付账号符合合并结算的条件,则可以将多个 Google Ads 账号的结算设置设为使用同一个底层支付账号,从而将这些 Google Ads 账号归入同一张账单。
创建新的结算设置
您可以将新的结算设置关联到现有支付账号或同时创建的支付账号。
使用现有支付账号
如需与现有支付账号关联,请将 payments_account 设置为有效支付账号的资源名称(例如 customers/{customer_id}/paymentsAccounts/{payments_account_id})。但是,请勿修改 payments_account_info。
您可以使用 PaymentsAccountService.ListPaymentsAccounts 方法列出可用的支付账号。返回的 PaymentsAccount 对象取决于您用于身份验证的经理账号。
对于每个 PaymentsAccount,其付款经理的资源名称位于 paying_manager_customer 字段中。
使用新的支付账号
如需与新的支付账号相关联,请在 payments_account_info 中设置以下字段(不要设置 payments_account):
以下示例展示了如何通过现有支付资料 ID 创建新的结算设置。如前所述,这还会创建一个名为 My New Payments Account 的新支付账号。
BillingSetup billingSetup =
BillingSetup.newBuilder()
.setPaymentsAccountInfo(
PaymentsAccountInfo.newBuilder()
.setPaymentsAccountName("My New Payments Account")
.setPaymentsProfileId("1234-5678-9012")
.build())
.setStartTimeType(TimeTypeEnum.TimeType.NOW)
.build();
BillingSetupOperation operation =
BillingSetupOperation.newBuilder().setCreate(billingSetup).build();
try (BillingSetupServiceClient billingSetupServiceClient =
googleAdsClient.getBillingSetupServiceClient()) {
MutateBillingSetupResponse response =
billingSetupServiceClient.mutateBillingSetup(
Long.toString(customerId), operation);
}
如果这是添加到 Google Ads 账号中的第一个结算设置,则会使用引用的支付资料为客户注册结算。
结算设置状态
新的 BillingSetup 实例需要获得批准才能生效。在此之前,其 status 处于 PENDING 状态。
BillingSetup 可以具有以下 status 值之一:
BillingSetupStatus |
说明 |
|---|---|
PENDING |
待批准。 |
APPROVED_HELD |
已获批准,但对应的首个预算未获批准。这仅适用于针对按月账单结算配置的结算设置。 |
APPROVED |
设置已获批准。 |
CANCELLED |
在获得批准之前,用户取消了设置。 |
检索账号的结算设置
与 Google Ads API 中的大多数其他实体一样,BillingSetup 是通过使用 Google Ads 查询语言 (GAQL) 查询来查询 GoogleAdsService.Search 或 GoogleAdsService.SearchStream 获取的,该查询指定了要返回的字段:
SELECT
billing_setup.resource_name,
billing_setup.id,
billing_setup.status,
billing_setup.payments_account,
billing_setup.payments_account_info.payments_account_id,
billing_setup.payments_account_info.payments_account_name,
billing_setup.payments_account_info.payments_profile_id,
billing_setup.payments_account_info.payments_profile_name,
billing_setup.start_date_time,
billing_setup.end_date_time,
billing_setup.end_time_type
FROM billing_setup
获取对 BillingSetup 的引用后,您可以使用它来创建 AccountBudgetProposal,如账号预算中所述。
取消待处理的结算设置
尚未生效的 BillingSetup 可以通过发送 BillingSetupOperation 来取消,其 remove 字段设置为结算设置的资源名称 (customers/{customer_id}/billingSetups/{billing_setup_id})。只有当结算设置的 status 为 PENDING 或APPROVED在未来某个时间开始时,才能取消结算设置。