Os orçamentos da conta controlam o que uma conta pode gastar em um período específico, definindo propriedades de orçamento, como limite de gastos, horário de início e horário de término. Eles precisam apontar para uma das configurações de faturamento da conta para indicar qual conta para pagamentos específica será faturada. É possível criar, atualizar e remover o
AccountBudget na API Google Ads enviando
AccountBudgetProposal objetos.
AccountBudget objetos representam o resultado final da aplicação de
propostas. Depois que uma proposta é aprovada, as mudanças (sujeitas a ajustes) resultam na criação de um novo orçamento da conta ou na atualização de um já existente. Isso depende do proposal_type especificado
na solicitação.
AccountBudgetProposalType |
Descrição |
|---|---|
CREATE |
Cria um novo orçamento da conta, que precisa ser aprovado antes do uso. |
UPDATE |
Modifica um orçamento da conta. |
END |
Define o horário de término de um orçamento da conta como o horário atual. |
REMOVE |
Remove um orçamento da conta antes do horário de início. |
As seções a seguir descrevem o comportamento de cada tipo de proposta.
Criar uma proposta de orçamento da conta
A criação de um novo orçamento da conta permite controlar o comportamento de gastos de um cliente. Use o AccountBudgetProposalService para criar um
novo AccountBudgetProposal. Defina
proposal_type como CREATE para especificar
que um novo orçamento precisa ser criado. Consulte a seção de gerenciamento
deste guia para outras operações.
Lembre-se de usar uma configuração de faturamento com uma conta para pagamentos em que você tenha acesso de gravação. Consulte o guia de configuração de faturamento para mais detalhes.
O exemplo a seguir demonstra como criar uma nova proposta de orçamento.
Java
private void runExample(GoogleAdsClient googleAdsClient, long customerId, long billingSetupId) { // Creates an AccountBudgetProposal. This will be reviewed offline by Google Ads, and if // approved will become an AccountBudget. AccountBudgetProposal proposal = AccountBudgetProposal.newBuilder() .setBillingSetup(ResourceNames.billingSetup(customerId, billingSetupId)) .setProposalType(AccountBudgetProposalType.CREATE) .setProposedName("Account Budget (example)") // Specifies the account budget starts immediately. .setProposedStartTimeType(TimeType.NOW) // Alternatively you can specify a specific start time. Refer to the // AccountBudgetProposal // resource documentation for allowed formats. // // .setProposedStartDateTime("2020-01-02 03:04:05") // Specifies that the budget runs forever. .setProposedEndTimeType(TimeType.FOREVER) // Alternatively you can specify a specific end time. Allowed formats are as above. // .setProposedEndDateTime("2021-02-03 04:05:06") // Optional: sets notes for the budget. These are free text and do not effect budget // delivery. // .setProposedNotes("Received prepayment of $0.01") // Sets the spending limit to 0.01, measured in the Google Ads account currency. .setProposedSpendingLimitMicros(10_000) // Optional: sets PO number for record keeping. This value is at the user's // discretion, and has no effect on Google Billing & Payments. // .setProposedPurchaseOrderNumber("PO number 12345") .build(); // Creates an operation which will add the new AccountBudgetProposal. AccountBudgetProposalOperation operation = AccountBudgetProposalOperation.newBuilder().setCreate(proposal).build(); try (AccountBudgetProposalServiceClient accountBudgetProposalServiceClient = googleAdsClient.getLatestVersion().createAccountBudgetProposalServiceClient()) { // Sends the request to the Account Budget Proposal Service. MutateAccountBudgetProposalResponse response = accountBudgetProposalServiceClient.mutateAccountBudgetProposal( String.valueOf(customerId), operation); System.out.printf( "Account budget proposal created: %s.%n", response.getResult().getResourceName()); } }
C#
public void Run(GoogleAdsClient client, long customerId, long billingSetupId) { // Get the AccountBudgetProposalServiceClient. AccountBudgetProposalServiceClient proposalService = client.GetService(Services.V25.AccountBudgetProposalService); // Create an AccountBudgetProposal. The proposal will be reviewed offline by Google Ads, // and if approved will become an AccountBudget. AccountBudgetProposal proposal = new AccountBudgetProposal() { BillingSetup = ResourceNames.BillingSetup(customerId, billingSetupId), ProposalType = AccountBudgetProposalType.Create, ProposedName = "Account Budget (example)", // Specify the account budget starts immediately ProposedStartTimeType = TimeType.Now, // Alternatively, you can specify a specific start time. Refer to the // AccountBudgetProposal resource documentation for allowed formats. // //ProposedStartDateTime = "2020-01-02 03:04:05", // Specify that the budget runs forever. ProposedEndTimeType = TimeType.Forever, // Alternatively you can specify a specific end time. Allowed formats are as above. //ProposedEndDateTime = "2021-02-03 04:05:06", // Optional: set notes for the budget. These are free text and do not effect budget // delivery. //ProposedNotes = "Received prepayment of $0.01", // Set the spending limit to 0.01, measured in the Google Ads account currency. ProposedSpendingLimitMicros = 10_000 // Optional: set PO number for record keeping. This value is at the user's // discretion, and has no effect on Google Billing & Payments. //ProposedPurchaseOrderNumber = "PO number 12345" }; // Create an operation which will add the new AccountBudgetProposal AccountBudgetProposalOperation operation = new AccountBudgetProposalOperation() { Create = proposal }; try { // Send the request to the Account Budget Proposal Service. MutateAccountBudgetProposalResponse response = proposalService. MutateAccountBudgetProposal(customerId.ToString(), operation); // Display the results. Console.WriteLine($"Account budget proposal '{response.Result.ResourceName}' " + "was created."); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample( GoogleAdsClient $googleAdsClient, int $customerId, int $billingSetupId ) { // Constructs an account budget proposal. $accountBudgetProposal = new AccountBudgetProposal([ 'billing_setup' => ResourceNames::forBillingSetup($customerId, $billingSetupId), 'proposal_type' => AccountBudgetProposalType::CREATE, 'proposed_name' => 'Account Budget (example)', // Specifies the account budget starts immediately. 'proposed_start_time_type' => TimeType::NOW, // Alternatively you can specify a specific start time. Refer to the // AccountBudgetProposal class for allowed formats. // // 'proposed_start_date_time' => '2020-01-02 03:04:05', // Specify that the budget runs forever. 'proposed_end_time_type' => TimeType::FOREVER, // Alternatively you can specify a specific end time. Allowed formats are as above. // 'proposed_end_date_time' => '2021-02-03 04:05:06', // Optional: set notes for the budget. These are free text and do not effect budget // delivery. // 'proposed_notes' => 'Received prepayment of $0.01', // Optional: set PO number for record keeping. This value is at the user's // discretion, and has no effect on Google Billing & Payments. // 'proposed_purchase_order_number' => 'PO number 12345', // Set the spending limit to 0.01, measured in the Google Ads account currency. 'proposed_spending_limit_micros' => 10000 ]); $accountBudgetProposalOperation = new AccountBudgetProposalOperation(); $accountBudgetProposalOperation->setCreate($accountBudgetProposal); // Issues a mutate request to add the account budget proposal. $accountBudgetProposalServiceClient = $googleAdsClient->getAccountBudgetProposalServiceClient(); $response = $accountBudgetProposalServiceClient->mutateAccountBudgetProposal( MutateAccountBudgetProposalRequest::build($customerId, $accountBudgetProposalOperation) ); printf( "Added an account budget proposal with resource name '%s'.%s", $response->getResult()->getResourceName(), PHP_EOL ); }
Python
def main(client: GoogleAdsClient, customer_id: str, billing_setup_id: str): account_budget_proposal_service = client.get_service( "AccountBudgetProposalService" ) billing_setup_service = client.get_service("BillingSetupService") account_budget_proposal_operation = client.get_type( "AccountBudgetProposalOperation" ) proposal = account_budget_proposal_operation.create proposal.proposal_type = client.enums.AccountBudgetProposalTypeEnum.CREATE proposal.billing_setup = billing_setup_service.billing_setup_path( customer_id, billing_setup_id ) proposal.proposed_name = "Account Budget Proposal (example)" # Specify the account budget starts immediately proposal.proposed_start_time_type = client.enums.TimeTypeEnum.NOW # Alternatively you can specify a specific start time. Refer to the # AccountBudgetProposal resource documentation for allowed formats. # # proposal.proposed_start_date_time = '2020-01-02 03:04:05' # Specify that the budget runs forever proposal.proposed_end_time_type = client.enums.TimeTypeEnum.FOREVER # Alternatively you can specify a specific end time. Allowed formats are as # above. # # proposal.proposed_end_date_time = '2021-01-02 03:04:05' # Optional: set notes for the budget. These are free text and do not effect # budget delivery. # # proposal.proposed_notes = 'Received prepayment of $0.01' proposal.proposed_spending_limit_micros = 10000 account_budget_proposal_response = ( account_budget_proposal_service.mutate_account_budget_proposal( customer_id=customer_id, operation=account_budget_proposal_operation, ) ) print( "Created account budget proposal " f'"{account_budget_proposal_response.result.resource_name}".' )
Ruby
def add_account_budget_proposal(customer_id, billing_setup_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new operation = client.operation.create_resource.account_budget_proposal do |proposal| proposal.billing_setup = client.path.billing_setup(customer_id, billing_setup_id) proposal.proposal_type = :CREATE proposal.proposed_name = 'Account Budget (example)' # Specify the account budget starts immediately proposal.proposed_start_time_type = :NOW # Alternatively you can specify a specific start time. Refer to the # AccountBudgetProposal resource documentation for allowed formats. # # proposal.proposed_start_date_time = '2020-01-02 03:04:05' # Specify that the budget runs forever. proposal.proposed_end_time_type = :FOREVER # Alternatively you can specify a specific end time. Allowed formats are as # above. # # proposal.proposed_end_date_time = '2021-01-02 03:04:05' # Optional: set notes for the budget. These are free text and do not affect # budget delivery. # # proposal.proposed_notes = 'Received prepayment of $0.01' # Set the spending limit to 0.01, measured in the Google Ads account currency. proposal.proposed_spending_limit_micros = 10_000 end account_budget_proposal_service = client.service.account_budget_proposal # Add budget proposal. response = account_budget_proposal_service.mutate_account_budget_proposal( customer_id: customer_id, operation: operation, ) puts sprintf("Created budget proposal %s.", response.results.first.resource_name) end
Perl
sub add_account_budget_proposal { my ($api_client, $customer_id, $billing_setup_id) = @_; # Create an account budget proposal. my $account_budget_proposal = Google::Ads::GoogleAds::V25::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V25::Utils::ResourceNames::billing_setup( $customer_id, $billing_setup_id ), proposalType => CREATE, proposedName => "Account Budget (example)", # Specify that the account budget starts immediately. proposedStartTimeType => NOW, # Alternatively you can specify a specific start time. Refer to the # AccountBudgetProposal class for allowed formats. # # proposedStartDateTime => "2020-01-02 03:04:05", # Specify that the account budget runs forever. proposedEndDateTime => FOREVER, # Alternatively you can specify a specific end time. Allowed formats are as below. # proposedEndDateTime => "2021-02-03 04:05:06", # Optional: set notes for the budget. These are free text and do not effect budget # delivery. # proposedNotes => "Received prepayment of $0.01", # Optional: set PO number for record keeping. This value is at the user's # discretion, and has no effect on Google Billing & Payments. # proposedPurchaseOrderNumber => "PO number 12345", # Set the spending limit to 0.01, measured in the Google Ads account currency. proposedSpendingLimitMicros => 10000 }); # Create an account budget proposal operation. my $account_budget_proposal_operation = Google::Ads::GoogleAds::V25::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({ create => $account_budget_proposal }); # Add the account budget proposal. my $account_budget_proposal_response = $api_client->AccountBudgetProposalService()->mutate({ customerId => $customer_id, operation => $account_budget_proposal_operation }); printf "Created account budget proposal '%s'.\n", $account_budget_proposal_response->{result}{resourceName}; return 1; }
curl
Nas solicitações de proposta de orçamento da conta,
proposed_start_date_time e
proposed_end_date_time estão sempre no fuso horário da conta do cliente. Não é possível especificar um fuso horário. O
limite de gastos proposto é sempre medido na
moeda da conta. Especifique isso usando unidades "micro", de modo que US $1,00 = 1.000.000
micros.
Opcionalmente, você pode incluir um número de ordem de compra que será mostrado ao lado desses encargos na fatura. Isso não afeta a veiculação do orçamento.
Remover uma proposta de orçamento da conta pendente
É possível remover uma proposta de orçamento pendente inteira enviando uma solicitação
AccountBudgetProposalOperation.removecom um nome de recurso de proposta de orçamento da conta. No entanto, as propostas de orçamento geralmente são aplicadas em minutos.
AccountBudgetProposalOperation operation = AccountBudgetProposalOperation.newBuilder() .setRemove(ResourceNames.accountBudgetProposal(customerId, accountBudgetProposalId)) .build(); // Send request to Google Ads API (not shown).
AccountBudgetProposalOperation operation = new AccountBudgetProposalOperation()
{
Remove = ResourceNames.AccountBudgetProposal(customerId, accountBudgetProposalId)
};
// Send request to Google Ads API (not shown).$accountBudgetProposalOperation = new AccountBudgetProposalOperation(); $accountBudgetProposalOperation->setRemove(ResourceNames::forAccountBudgetProposal($customerId, $accountBudgetProposalId)); // Send request to Google Ads API (not shown).
account_budget_proposal_service = client.get_service('AccountBudgetProposalService') account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') account_budget_proposal_operation.remove = ( account_budget_proposal_service.account_budget_proposal_path( customer_id, account_budget_proposal_id ) ) # Send request to Google Ads API (not shown).
operation = client.operation.remove_resource.account_budget_proposal(client.path.account_budget_proposal(customer_id, account_budget_proposal_id))
# Send request to Google Ads API (not shown).my $account_budget_proposal_operation = Google::Ads::GoogleAds::V26::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({ remove => Google::Ads::GoogleAds::V26::Utils::ResourceNames::account_budget_proposal( $customer_id, $account_budget_proposal_id ) }); # Send request to Google Ads API (not shown).
Se você cometeu um erro na proposta original, envie-a novamente como uma operação UPDATE. Consulte
Atualizar um orçamento da conta.
Recuperar orçamentos da conta
A consulta da linguagem de consulta do Google Ads (GAQL, na sigla em inglês) a seguir busca todos os orçamentos da conta em uma conta:
SELECT
account_budget.resource_name,
account_budget.id,
account_budget.name,
account_budget.status,
account_budget.billing_setup,
account_budget.approved_spending_limit_micros,
account_budget.approved_spending_limit_type,
account_budget.proposed_spending_limit_micros,
account_budget.proposed_spending_limit_type,
account_budget.adjusted_spending_limit_micros,
account_budget.adjusted_spending_limit_type,
account_budget.approved_start_date_time,
account_budget.proposed_start_date_time,
account_budget.approved_end_date_time,
account_budget.approved_end_time_type,
account_budget.proposed_end_date_time,
account_budget.proposed_end_time_type
FROM
account_budget
Os campos que encapsulam o horário de início, o horário de término e o limite de gastos do orçamento da conta têm várias variantes com prefixos como proposed e approved que permitem comparar os valores inicialmente propostos com aqueles que foram aprovados. O limite de gastos tem outros campos com o prefixo adjusted para indicar o limite de gastos atual em vigor após a aplicação de ajustes ao valor aprovado.
O limite de gastos aprovado de um orçamento da conta pode ser ajustado ao longo do tempo para refletir vários créditos para itens como superveiculação de orçamento, atividade de clique inválida e cupons promocionais. Mais informações sobre orçamentos da conta e créditos e ajustes da conta podem ser encontradas na Central de Ajuda do Google Ads.
Todos os novos orçamentos da conta pendentes de aprovação, além de todos os orçamentos da conta existentes
que têm atualizações pendentes, também vão preencher a
pending_proposal mensagem aninhada, cujos subcampos podem ser
selecionados em uma consulta GAQL (como
account_budget_proposal, consultado como
account_budget.pending_proposal.account_budget_proposal, para o nome do recurso
do objeto AccountBudgetProposal
associado).
Gerenciar orçamentos da conta
Depois de criar um orçamento da conta para um cliente, você pode usar o
AccountBudgetProposalService para gerenciar os parâmetros do orçamento. As operações de gerenciamento mais comuns são atualizar os campos proposed_spending_limit_micros e proposed_end_date_time. Para uma
lista completa dos campos mutáveis, consulte a
AccountBudgetProposal documentação de referência.
Você tem a opção de atualizar um orçamento da conta ou criar um orçamento totalmente novo. Ambos são mostrados aqui.
Atualizar um orçamento da conta
É possível atualizar os campos de orçamento da conta enviando
AccountBudgetProposal objetos com
AccountBudgetProposalType definido como UPDATE. Você também precisa indicar os campos que estão sendo atualizados no argumento update_mask da operação.
O snippet a seguir demonstra como atualizar o limite de gastos proposto para um orçamento da conta.
AccountBudgetProposal proposal = AccountBudgetProposal.newBuilder()
.setProposalType(AccountBudgetProposalType.UPDATE)
.setAccountBudget(accountBudget.getResourceName())
.setProposedSpendingLimitMicros(
accountBudget.getProposedSpendingLimitMicros() + increaseAmount)
.build();
AccountBudgetProposalOperation operation = AccountBudgetProposalOperation.newBuilder()
.setCreate(proposal)
.setUpdateMask(
FieldMask.newBuilder().addAllPaths(Arrays.asList("proposed_spending_limit_micros")).build())
.build();
// Send request to Google Ads API (not shown).AccountBudgetProposal proposal = new AccountBudgetProposal()
{
ProposalType = AccountBudgetProposalType.Update,
AccountBudget = accountBudget.ResourceName,
ProposedSpendingLimitMicros = accountBudget.ProposedSpendingLimitMicros + increaseAmount
};
AccountBudgetProposalOperation operation = new AccountBudgetProposalOperation()
{
Create = proposal,
UpdateMask = new FieldMask()
{
Paths = { "proposed_spending_limit_micros" }
}
};
// Send request to Google Ads API (not shown).$accountBudgetProposal = new AccountBudgetProposal([ 'proposal_type' => AccountBudgetProposalType::UPDATE, 'account_budget' => $accountBudget->getResourceName(), 'proposed_spending_limit_micros' => $accountBudget->getProposedSpendingLimitMicros() + $increaseAmount ]); $accountBudgetProposalOperation = new AccountBudgetProposalOperation(); $accountBudgetProposalOperation->setCreate($accountBudgetProposal); $accountBudgetProposalOperation->setUpdateMask( FieldMasks::allSetFieldsOf($accountBudgetProposal) ); // Send request to Google Ads API (not shown).
account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposal = account_budget_proposal_operation.create proposal.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').AccountBudgetProposalType.UPDATE proposal.account_budget = account_budget.resource_name proposal.proposed_spending_limit_micros = account_budget.proposed_spending_limit_micros + increase_amount field_mask = protobuf_helpers.field_mask(None, proposal._pb) account_budget_proposal_operation.update_mask.CopyFrom(field_mask) # Send request to Google Ads API (not shown).
proposal = client.resource.account_budget_proposal proposal.proposal_type = :UPDATE mask = client.field_mask.with proposal do proposal.account_budget = account_budget.resource_name proposal.proposed_spending_limit_micros = account_budget.proposed_spending_limit_micros + increase_amount end operation = client.operation.account_budget_proposal do |op| op.create = proposal op.update_mask = mask end # Send request to Google Ads API (not shown).
my $account_budget_proposal = Google::Ads::GoogleAds::V26::Resources::AccountBudgetProposal->new({ proposalType => UPDATE, accountBudget => $account_budget->{resourceName}, proposedSpendingLimitMicros => $account_budget->{proposedSpendingLimitMicros} + $increaseAmount}); my $account_budget_proposal_operation = Google::Ads::GoogleAds::V26::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({ create => $account_budget_proposal, updateMask => all_set_fields_of($account_budget_proposal)}); # Send request to Google Ads API (not shown).
Encadeamento de orçamentos da conta
Como alternativa à atualização do orçamento, o Google Ads permite encadear vários orçamentos da conta para serem veiculados em sucessão. No exemplo a seguir, um cliente tem limites de gastos diferentes a cada mês.
Isso pode ser feito criando três
AccountBudgetProposal objetos e enviando cada
AccountBudgetProposalOperation para o
AccountBudgetProposalService em uma solicitação
MutateAccountBudgetProposal separada (já que
MutateAccountBudgetProposalRequest aceita uma única operation por chamada).
O snippet a seguir demonstra a criação de uma cadeia usando uma configuração de faturamento.
AccountBudgetProposal proposalMay = AccountBudgetProposal.newBuilder() .setBillingSetup(ResourceNames.billingSetup(customerId, billingSetupId)) .setProposalType(AccountBudgetProposalType.CREATE) .setProposedName("May budget") .setProposedStartDateTime("2027-05-01 00:00:00") .setProposedEndDateTime("2027-06-01 00:00:00") .setProposedSpendingLimitMicros(1_000_000_000L) .build(); AccountBudgetProposalOperation operationMay = AccountBudgetProposalOperation.newBuilder() .setCreate(proposalMay) .build(); AccountBudgetProposal proposalJune = AccountBudgetProposal.newBuilder() .setBillingSetup(ResourceNames.billingSetup(customerId, billingSetupId)) .setProposalType(AccountBudgetProposalType.CREATE) .setProposedName("June budget") .setProposedStartDateTime("2027-06-01 00:00:00") .setProposedEndDateTime("2027-07-01 00:00:00") .setProposedSpendingLimitMicros(5_000_000_000L) .build(); AccountBudgetProposalOperation operationJune = AccountBudgetProposalOperation.newBuilder() .setCreate(proposalJune) .build(); AccountBudgetProposal proposalJuly = AccountBudgetProposal.newBuilder() .setBillingSetup(ResourceNames.billingSetup(customerId, billingSetupId)) .setProposalType(AccountBudgetProposalType.CREATE) .setProposedName("July budget") .setProposedStartDateTime("2027-07-01 00:00:00") .setProposedEndDateTime("2027-08-01 00:00:00") .setProposedSpendingLimitMicros(1_000_000_000L) .build(); AccountBudgetProposalOperation operationJuly = AccountBudgetProposalOperation.newBuilder() .setCreate(proposalJuly) .build(); // Send requests to Google Ads API, one MutateAccountBudgetProposal call per operation (not shown).
AccountBudgetProposal proposalMay = new AccountBudgetProposal() { BillingSetup = ResourceNames.BillingSetup(customerId, billingSetupId), ProposalType = AccountBudgetProposalType.Create, ProposedName = "May budget", ProposedStartDateTime = "2027-05-01 00:00:00", ProposedEndDateTime = "2027-06-01 00:00:00", ProposedSpendingLimitMicros = 1_000_000_000 }; AccountBudgetProposalOperation operationMay = new AccountBudgetProposalOperation() { Create = proposalMay }; AccountBudgetProposal proposalJune = new AccountBudgetProposal() { BillingSetup = ResourceNames.BillingSetup(customerId, billingSetupId), ProposalType = AccountBudgetProposalType.Create, ProposedName = "June budget", ProposedStartDateTime = "2027-06-01 00:00:00", ProposedEndDateTime = "2027-07-01 00:00:00", ProposedSpendingLimitMicros = 5_000_000_000 }; AccountBudgetProposalOperation operationJune = new AccountBudgetProposalOperation() { Create = proposalJune }; AccountBudgetProposal proposalJuly = new AccountBudgetProposal() { BillingSetup = ResourceNames.BillingSetup(customerId, billingSetupId), ProposalType = AccountBudgetProposalType.Create, ProposedName = "July budget", ProposedStartDateTime = "2027-07-01 00:00:00", ProposedEndDateTime = "2027-08-01 00:00:00", ProposedSpendingLimitMicros = 1_000_000_000 }; AccountBudgetProposalOperation operationJuly = new AccountBudgetProposalOperation() { Create = proposalJuly }; // Send requests to Google Ads API, one MutateAccountBudgetProposal call per operation (not shown).
$proposalMay = new AccountBudgetProposal([ 'billing_setup' => ResourceNames::forBillingSetup($customerId, $billingSetupId), 'proposal_type' => AccountBudgetProposalType::CREATE, 'proposed_name' => 'May budget', 'proposed_start_date_time' => '2027-05-01 00:00:00', 'proposed_end_date_time' => '2027-06-01 00:00:00', 'proposed_spending_limit_micros' => 1000000000 ]); $operationMay = new AccountBudgetProposalOperation(); $operationMay->setCreate($proposalMay); $proposalJune = new AccountBudgetProposal([ 'billing_setup' => ResourceNames::forBillingSetup($customerId, $billingSetupId), 'proposal_type' => AccountBudgetProposalType::CREATE, 'proposed_name' => 'June budget', 'proposed_start_date_time' => '2027-06-01 00:00:00', 'proposed_end_date_time' => '2027-07-01 00:00:00', 'proposed_spending_limit_micros' => 5000000000 ]); $operationJune = new AccountBudgetProposalOperation(); $operationJune->setCreate($proposalJune); $proposalJuly = new AccountBudgetProposal([ 'billing_setup' => ResourceNames::forBillingSetup($customerId, $billingSetupId), 'proposal_type' => AccountBudgetProposalType::CREATE, 'proposed_name' => 'July budget', 'proposed_start_date_time' => '2027-07-01 00:00:00', 'proposed_end_date_time' => '2027-08-01 00:00:00', 'proposed_spending_limit_micros' => 1000000000 ]); $operationJuly = new AccountBudgetProposalOperation(); $operationJuly->setCreate($proposalJuly); // Send requests to Google Ads API, one MutateAccountBudgetProposal call per operation (not shown).
billing_setup_service = client.get_service('BillingSetupService') may_account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposal_may = may_account_budget_proposal_operation.create proposal_may.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').AccountBudgetProposalType.CREATE proposal_may.billing_setup = billing_setup_service.billing_setup_path(customer_id, billing_setup_id) proposal_may.proposed_name = 'May budget' proposal_may.proposed_start_date_time = '2027-05-01 00:00:00' proposal_may.proposed_end_date_time = '2027-06-01 00:00:00' proposal_may.proposed_spending_limit_micros = 1000000000 june_account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposal_june = june_account_budget_proposal_operation.create proposal_june.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').AccountBudgetProposalType.CREATE proposal_june.billing_setup = billing_setup_service.billing_setup_path(customer_id, billing_setup_id) proposal_june.proposed_name = 'June budget' proposal_june.proposed_start_date_time = '2027-06-01 00:00:00' proposal_june.proposed_end_date_time = '2027-07-01 00:00:00' proposal_june.proposed_spending_limit_micros = 5000000000 july_account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposal_july = july_account_budget_proposal_operation.create proposal_july.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').AccountBudgetProposalType.CREATE proposal_july.billing_setup = billing_setup_service.billing_setup_path(customer_id, billing_setup_id) proposal_july.proposed_name = 'July budget' proposal_july.proposed_start_date_time = '2027-07-01 00:00:00' proposal_july.proposed_end_date_time = '2027-08-01 00:00:00' proposal_july.proposed_spending_limit_micros = 1000000000 # Send requests to Google Ads API, one MutateAccountBudgetProposal call per operation (not shown).
operation_may = client.operation.create_resource.account_budget_proposal do |proposal| proposal.billing_setup = client.path.billing_setup(customer_id, billing_setup_id) proposal.proposal_type = :CREATE proposal.proposed_name = 'May budget' proposal.proposed_start_date_time = '2027-05-01 00:00:00' proposal.proposed_end_date_time = '2027-06-01 00:00:00' proposal.proposed_spending_limit_micros = 1_000_000_000 end operation_june = client.operation.create_resource.account_budget_proposal do |proposal| proposal.billing_setup = client.path.billing_setup(customer_id, billing_setup_id) proposal.proposal_type = :CREATE proposal.proposed_name = 'June budget' proposal.proposed_start_date_time = '2027-06-01 00:00:00' proposal.proposed_end_date_time = '2027-07-01 00:00:00' proposal.proposed_spending_limit_micros = 5_000_000_000 end operation_july = client.operation.create_resource.account_budget_proposal do |proposal| proposal.billing_setup = client.path.billing_setup(customer_id, billing_setup_id) proposal.proposal_type = :CREATE proposal.proposed_name = 'July budget' proposal.proposed_start_date_time = '2027-07-01 00:00:00' proposal.proposed_end_date_time = '2027-08-01 00:00:00' proposal.proposed_spending_limit_micros = 1_000_000_000 end # Send requests to Google Ads API, one MutateAccountBudgetProposal call per operation (not shown).
my $may_proposal = Google::Ads::GoogleAds::V26::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::billing_setup( $customer_id, $billing_setup_id ), proposalType => CREATE, proposedName => "May budget", proposedStartDateTime => "2027-05-01 00:00:00", proposedEndDateTime => "2027-06-01 00:00:00", proposedSpendingLimitMicros => 1000000000 }); my $may_operation = Google::Ads::GoogleAds::V26::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $may_proposal}); my $june_proposal = Google::Ads::GoogleAds::V26::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::billing_setup( $customer_id, $billing_setup_id ), proposalType => CREATE, proposedName => "June budget", proposedStartDateTime => "2027-06-01 00:00:00", proposedEndDateTime => "2027-07-01 00:00:00", proposedSpendingLimitMicros => 5000000000 }); my $june_operation = Google::Ads::GoogleAds::V26::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $june_proposal}); my $july_proposal = Google::Ads::GoogleAds::V26::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::billing_setup( $customer_id, $billing_setup_id ), proposalType => CREATE, proposedName => "July budget", proposedStartDateTime => "2027-07-01 00:00:00", proposedEndDateTime => "2027-08-01 00:00:00", proposedSpendingLimitMicros => 1000000000 }); my $july_operation = Google::Ads::GoogleAds::V26::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $july_proposal}); # Send requests to Google Ads API, one MutateAccountBudgetProposal call per operation (not shown).
Observe o uso de AccountBudgetProposalType.CREATE
em cada proposta. Isso vai criar três orçamentos distintos, em vez de atualizar o mesmo orçamento três vezes.
Encerrar orçamentos da conta
Os orçamentos da conta podem ser encerrados enquanto estiverem ativos e removidos completamente antes do início ou enquanto estiverem pendentes de aprovação.
Encerrar o orçamento da conta ativo
O orçamento da conta ativo não pode ser removido. No entanto, é possível definir o horário de término como o horário atual. A maneira mais simples de fazer isso é enviar uma proposta com
AccountBudgetProposalType.END.
O snippet a seguir demonstra como encerrar um orçamento da conta.
AccountBudgetProposal proposal = AccountBudgetProposal.newBuilder() .setProposalType(AccountBudgetProposalType.END) .setAccountBudget(accountBudget.getResourceName()) .build(); AccountBudgetProposalOperation operation = AccountBudgetProposalOperation.newBuilder() .setCreate(proposal) .build(); // Send request to Google Ads API (not shown).
AccountBudgetProposal proposal = new AccountBudgetProposal()
{
ProposalType = AccountBudgetProposalType.End,
AccountBudget = accountBudget.ResourceName
};
AccountBudgetProposalOperation operation = new AccountBudgetProposalOperation()
{
Create = proposal
};
// Send request to Google Ads API (not shown).$accountBudgetProposal = new AccountBudgetProposal([ 'proposal_type' => AccountBudgetProposalType::END, 'account_budget' => $accountBudget->getResourceName() ]); $accountBudgetProposalOperation = new AccountBudgetProposalOperation(); $accountBudgetProposalOperation->setCreate($accountBudgetProposal); // Send request to Google Ads API (not shown).
account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposal = account_budget_proposal_operation.create proposal.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').AccountBudgetProposalType.END proposal.account_budget = account_budget.resource_name # Send request to Google Ads API (not shown).
operation = client.operation.create_resource.account_budget_proposal do |proposal| proposal.proposal_type = :END proposal.account_budget = account_budget.resource_name end # Send request to Google Ads API (not shown).
my $account_budget_proposal = Google::Ads::GoogleAds::V26::Resources::AccountBudgetProposal->new({ proposalType => END, accountBudget => $account_budget->{resourceName} }); my $account_budget_proposal_operation = Google::Ads::GoogleAds::V26::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $account_budget_proposal}); # Send request to Google Ads API (not shown).
Isso é equivalente a atualizar um orçamento da conta definindo o horário de término
como TimeType.NOW.
Remover um orçamento da conta aprovado antes do horário de início
Se você propôs um orçamento da conta para começar no futuro, é possível removê-lo
completamente antes do horário de início enviando um
AccountBudgetProposalType.REMOVE
tipo de proposta.
O snippet a seguir demonstra a remoção de um orçamento da conta futuro.
AccountBudgetProposal proposal = AccountBudgetProposal.newBuilder() .setProposalType(AccountBudgetProposalType.REMOVE) .setAccountBudget(accountBudget.getResourceName()) .build(); AccountBudgetProposalOperation operation = AccountBudgetProposalOperation.newBuilder() .setCreate(proposal) .build(); // Send request to Google Ads API (not shown).
AccountBudgetProposal proposal = new AccountBudgetProposal()
{
ProposalType = AccountBudgetProposalType.Remove,
AccountBudget = accountBudget.ResourceName
};
AccountBudgetProposalOperation operation = new AccountBudgetProposalOperation()
{
Create = proposal
};
// Send request to Google Ads API (not shown).$accountBudgetProposal = new AccountBudgetProposal([ 'proposal_type' => AccountBudgetProposalType::REMOVE, 'account_budget' => $accountBudget->getResourceName() ]); $accountBudgetProposalOperation = new AccountBudgetProposalOperation(); $accountBudgetProposalOperation->setCreate($accountBudgetProposal); // Send request to Google Ads API (not shown).
account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposal = account_budget_proposal_operation.create proposal.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').AccountBudgetProposalType.REMOVE proposal.account_budget = account_budget.resource_name # Send request to Google Ads API (not shown).
operation = client.operation.create_resource.account_budget_proposal do |proposal| proposal.proposal_type = :REMOVE proposal.account_budget = account_budget.resource_name end # Send request to Google Ads API (not shown).
my $account_budget_proposal = Google::Ads::GoogleAds::V26::Resources::AccountBudgetProposal->new({ proposalType => REMOVE, accountBudget => $account_budget->{resourceName} }); my $account_budget_proposal_operation = Google::Ads::GoogleAds::V26::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $account_budget_proposal}); # Send request to Google Ads API (not shown).