Adicionar proposta de orçamento da conta
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Java
// Copyright 2018 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.ads.googleads.examples.billing ;
import com.beust.jcommander.Parameter ;
import com.google.ads.googleads.examples.utils.ArgumentNames ;
import com.google.ads.googleads.examples.utils.CodeSampleParams ;
import com.google.ads.googleads.lib.GoogleAdsClient ;
import com.google.ads.googleads.v23.enums.AccountBudgetProposalTypeEnum.AccountBudgetProposalType ;
import com.google.ads.googleads.v23.enums.TimeTypeEnum.TimeType ;
import com.google.ads.googleads.v23.errors.GoogleAdsError ;
import com.google.ads.googleads.v23.errors.GoogleAdsException ;
import com.google.ads.googleads.v23.resources.AccountBudgetProposal ;
import com.google.ads.googleads.v23.services.AccountBudgetProposalOperation ;
import com.google.ads.googleads.v23.services.AccountBudgetProposalServiceClient ;
import com.google.ads.googleads.v23.services.MutateAccountBudgetProposalResponse ;
import com.google.ads.googleads.v23.utils.ResourceNames ;
import java.io.FileNotFoundException ;
import java.io.IOException ;
/**
* Creates an account budget proposal using the 'CREATE' operation. To get account budget proposals,
* run GetAccountBudgetProposals.java.
*/
public class AddAccountBudgetProposal {
private static class AddAccountBudgetProposalParams extends CodeSampleParams {
@Parameter ( names = ArgumentNames . CUSTOMER_ID , required = true )
private Long customerId ;
@Parameter ( names = ArgumentNames . BILLING_SETUP_ID , required = true )
private Long billingSetupId ;
}
public static void main ( String [] args ) {
AddAccountBudgetProposalParams params = new AddAccountBudgetProposalParams ();
if ( ! params . parseArguments ( args )) {
// Either pass the required parameters for this example on the command line, or insert them
// into the code here. See the parameter class definition above for descriptions.
params . customerId = Long . parseLong ( "INSERT_CUSTOMER_ID_HERE" );
params . billingSetupId = Long . parseLong ( "INSERT_BILLING_SETUP_ID_HERE" );
}
GoogleAdsClient googleAdsClient = null ;
try {
googleAdsClient = GoogleAdsClient . newBuilder (). fromPropertiesFile (). build ();
} catch ( FileNotFoundException fnfe ) {
System . err . printf (
"Failed to load GoogleAdsClient configuration from file. Exception: %s%n" , fnfe );
System . exit ( 1 );
} catch ( IOException ioe ) {
System . err . printf ( "Failed to create GoogleAdsClient. Exception: %s%n" , ioe );
System . exit ( 1 );
}
try {
new AddAccountBudgetProposal ()
. runExample ( googleAdsClient , params . customerId , params . billingSetupId );
} catch ( GoogleAdsException gae ) {
// GoogleAdsException is the base class for most exceptions thrown by an API request.
// Instances of this exception have a message and a GoogleAdsFailure that contains a
// collection of GoogleAdsErrors that indicate the underlying causes of the
// GoogleAdsException.
System . err . printf (
"Request ID %s failed due to GoogleAdsException. Underlying errors:%n" ,
gae . getRequestId ());
int i = 0 ;
for ( GoogleAdsError googleAdsError : gae . getGoogleAdsFailure (). getErrorsList ()) {
System . err . printf ( " Error %d: %s%n" , i ++ , googleAdsError );
}
System . exit ( 1 );
}
}
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#
// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using CommandLine ;
using Google.Ads.Gax.Examples ;
using Google.Ads.GoogleAds.Lib ;
using Google.Ads.GoogleAds.V23.Errors ;
using Google.Ads.GoogleAds.V23.Resources ;
using Google.Ads.GoogleAds.V23.Services ;
using System ;
using System.Collections.Generic ;
using static Google . Ads . GoogleAds . V23 . Enums . AccountBudgetProposalTypeEnum . Types ;
using static Google . Ads . GoogleAds . V23 . Enums . TimeTypeEnum . Types ;
namespace Google.Ads.GoogleAds.Examples.V23
{
/// <summary>
/// This code example creates an account budget proposal using the 'CREATE' operation. To get
/// account budget proposals, run GetAccountBudgetProposals.cs.
/// </summary>
public class AddAccountBudgetProposal : ExampleBase
{
/// <summary>
/// Command line options for running the <see cref="AddAccountBudgetProposal"/> example.
/// </summary>
public class Options : OptionsBase
{
/// <summary>
/// The Google Ads customer ID for which the call is made.
/// </summary>
[Option("customerId", Required = true, HelpText =
"The Google Ads customer ID for which the call is made.")]
public long CustomerId { get ; set ; }
/// <summary>
/// The Billing Setup ID for which the call is made.
/// </summary>
[Option("billingSetupId", Required = true, HelpText =
"The Billing Setup ID for which the call is made.")]
public long BillingSetupId { get ; set ; }
}
/// <summary>
/// Main method, to run this code example as a standalone application.
/// </summary>
/// <param name="args">The command line arguments.</param>
public static void Main ( string [] args )
{
Options options = ExampleUtilities . ParseCommandLine<Options> ( args );
AddAccountBudgetProposal codeExample = new AddAccountBudgetProposal ();
Console . WriteLine ( codeExample . Description );
codeExample . Run ( new GoogleAdsClient (), options . CustomerId , options . BillingSetupId );
}
/// <summary>
/// The page size to be used by default.
/// </summary>
private const int PAGE_SIZE = 1 _000 ;
/// <summary>
/// Returns a description about the code example.
/// </summary>
public override string Description = >
"This code example creates an account budget proposal using the 'CREATE' operation. " +
"To get account budget proposals, run GetAccountBudgetProposals.cs." ;
/// <summary>
/// Runs the code example.
/// </summary>
/// <param name="client">The Google Ads client.</param>
/// <param name="customerId">The Google Ads customer ID for which the call is made.</param>
/// <param name="billingSetupId">The Billing Setup ID for which the call is made.</param>
public void Run ( GoogleAdsClient client , long customerId , long billingSetupId )
{
// Get the AccountBudgetProposalServiceClient.
AccountBudgetProposalServiceClient proposalService =
client . GetService ( Services . V23 . 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
<?php
/**
* Copyright 2018 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace Google\Ads\GoogleAds\Examples\Billing;
require __DIR__ . '/../../vendor/autoload.php';
use GetOpt\GetOpt;
use Google\Ads\GoogleAds\Examples\Utils\ArgumentNames;
use Google\Ads\GoogleAds\Examples\Utils\ArgumentParser;
use Google\Ads\GoogleAds\Lib\OAuth2TokenBuilder;
use Google\Ads\GoogleAds\Lib\V23\GoogleAdsClient;
use Google\Ads\GoogleAds\Lib\V23\GoogleAdsClientBuilder;
use Google\Ads\GoogleAds\Lib\V23\GoogleAdsException;
use Google\Ads\GoogleAds\Util\V23\ResourceNames;
use Google\Ads\GoogleAds\V23\Enums\AccountBudgetProposalTypeEnum\AccountBudgetProposalType;
use Google\Ads\GoogleAds\V23\Enums\TimeTypeEnum\TimeType;
use Google\Ads\GoogleAds\V23\Errors\GoogleAdsError;
use Google\Ads\GoogleAds\V23\Resources\AccountBudgetProposal;
use Google\Ads\GoogleAds\V23\Services\AccountBudgetProposalOperation;
use Google\Ads\GoogleAds\V23\Services\MutateAccountBudgetProposalRequest;
use Google\ApiCore\ApiException;
/**
* This example creates an account budget proposal using the 'CREATE' operation. To get account
* budget proposals, run GetAccountBudgetProposals.php
*/
class AddAccountBudgetProposal
{
private const CUSTOMER_ID = 'INSERT_CUSTOMER_ID_HERE';
private const BILLING_SETUP_ID = 'INSERT_BILLING_SETUP_ID_HERE';
public static function main()
{
// Either pass the required parameters for this example on the command line, or insert them
// into the constants above.
$options = (new ArgumentParser())->parseCommandArguments([
ArgumentNames::CUSTOMER_ID => GetOpt::REQUIRED_ARGUMENT,
ArgumentNames::BILLING_SETUP_ID => GetOpt::REQUIRED_ARGUMENT
]);
// Generate a refreshable OAuth2 credential for authentication.
$oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();
// Construct a Google Ads client configured from a properties file and the
// OAuth2 credentials above.
$googleAdsClient = (new GoogleAdsClientBuilder())->fromFile()
->withOAuth2Credential($oAuth2Credential)
->build();
try {
self::runExample(
$googleAdsClient,
$options[ArgumentNames::CUSTOMER_ID] ?: self::CUSTOMER_ID,
$options[ArgumentNames::BILLING_SETUP_ID] ?: self::BILLING_SETUP_ID
);
} catch (GoogleAdsException $googleAdsException) {
printf(
"Request with ID '%s' has failed.%sGoogle Ads failure details:%s",
$googleAdsException->getRequestId(),
PHP_EOL,
PHP_EOL
);
foreach ($googleAdsException->getGoogleAdsFailure()->getErrors() as $error) {
/** @var GoogleAdsError $error */
printf(
"\t%s: %s%s",
$error->getErrorCode()->getErrorCode(),
$error->getMessage(),
PHP_EOL
);
}
exit(1);
} catch (ApiException $apiException) {
printf(
"ApiException was thrown with message '%s'.%s",
$apiException->getMessage(),
PHP_EOL
);
exit(1);
}
}
/**
* Runs the example.
*
* @param GoogleAdsClient $googleAdsClient the Google Ads API client
* @param int $customerId the customer ID
* @param int $billingSetupId the billing setup ID used to add the account budget proposal
*/
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
);
}
}
AddAccountBudgetProposal::main();
Python
#!/usr/bin/env python
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""This example creates an account budget proposal.
To get account budget proposal, run get_account_budget_proposals.py
"""
import argparse
import sys
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException
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 } ".'
)
if __name__ == "__main__" :
parser = argparse . ArgumentParser (
description = "Creates an account budget proposal."
)
# The following argument(s) should be provided to run the example.
parser . add_argument (
"-c" ,
"--customer_id" ,
type = str ,
required = True ,
help = "The Ads customer ID." ,
)
parser . add_argument (
"-b" ,
"--billing_setup_id" ,
type = str ,
required = True ,
help = "The billing setup ID." ,
)
args = parser . parse_args ()
# GoogleAdsClient will read the google-ads.yaml configuration file in the
# home directory if none is specified.
googleads_client = GoogleAdsClient . load_from_storage ( version = "v23" )
try :
main ( googleads_client , args . customer_id , args . billing_setup_id )
except GoogleAdsException as ex :
print (
f 'Request with ID " { ex . request_id } " failed with status '
f '" { ex . error . code () . name } " and includes the following errors:'
)
for error in ex . failure . errors :
print ( f ' \t Error with message " { error . message } ".' )
if error . location :
for field_path_element in error . location . field_path_elements :
print ( f " \t\t On field: { field_path_element . field_name } " )
sys . exit ( 1 )
Ruby
#!/usr/bin/env ruby
# Encoding: utf-8
#
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This example creates an account budget proposal using the 'CREATE' operation.
# To get account budget proposals, run get_account_budget_proposals.rb.
require 'optparse'
require 'google/ads/google_ads'
require 'date'
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
if __FILE__ == $0
options = {}
# The following parameter(s) should be provided to run the example. You can
# either specify these by changing the INSERT_XXX_ID_HERE values below, or on
# the command line.
#
# Parameters passed on the command line will override any parameters set in
# code.
#
# Running the example with -h will print the command line usage.
options [ :customer_id ] = 'INSERT_CUSTOMER_ID_HERE'
options [ :billing_setup_id ] = 'INSERT_BILLING_SETUP_ID_HERE'
OptionParser . new do | opts |
opts . banner = sprintf ( 'Usage: add_campaigns.rb [options]' )
opts . separator ''
opts . separator 'Options:'
opts . on ( '-C' , '--customer-id CUSTOMER-ID' , String , 'Customer ID' ) do | v |
options [ :customer_id ] = v
end
opts . on ( '-B' , '--billing-setup-id BILLING-SETUP-ID' , String ,
'Billing Setup ID' ) do | v |
options [ :billing_setup_id ] = v
end
opts . separator ''
opts . separator 'Help:'
opts . on_tail ( '-h' , '--help' , 'Show this message' ) do
puts opts
exit
end
end . parse!
begin
add_account_budget_proposal ( options . fetch ( :customer_id ) . tr ( "-" , "" ),
options [ :billing_setup_id ] )
rescue Google :: Ads :: GoogleAds :: Errors :: GoogleAdsError = > e
e . failure . errors . each do | error |
STDERR . printf ( "Error with message: %s \n " , error . message )
if error . location
error . location . field_path_elements . each do | field_path_element |
STDERR . printf ( " \t On field: %s \n " , field_path_element . field_name )
end
end
error . error_code . to_h . each do | k , v |
next if v == :UNSPECIFIED
STDERR . printf ( " \t Type: %s \n\t Code: %s \n " , k , v )
end
end
raise
end
end
Perl
#!/usr/bin/perl -w
#
# Copyright 2019, Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This example creates an account budget proposal using the 'CREATE' operation.
# To get account budget proposals, run get_account_budget_proposals.pl.
use strict ;
use warnings ;
use utf8 ;
use FindBin qw($Bin) ;
use lib "$Bin/../../lib" ;
use Google::Ads::GoogleAds::Client ;
use Google::Ads::GoogleAds::Utils::GoogleAdsHelper ;
use Google::Ads::GoogleAds::V23::Resources::AccountBudgetProposal ;
use Google::Ads::GoogleAds::V23::Enums::AccountBudgetProposalTypeEnum
qw(CREATE) ;
use Google::Ads::GoogleAds::V23::Enums::TimeTypeEnum qw(NOW FOREVER) ;
use
Google::Ads::GoogleAds::V23::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ;
use Google::Ads::GoogleAds::V23::Utils::ResourceNames ;
use Getopt::Long qw(:config auto_help) ;
use Pod::Usage ;
use Cwd qw(abs_path) ;
# The following parameter(s) should be provided to run the example. You can
# either specify these by changing the INSERT_XXX_ID_HERE values below, or on
# the command line.
#
# Parameters passed on the command line will override any parameters set in
# code.
#
# Running the example with -h will print the command line usage.
my $customer_id = "INSERT_CUSTOMER_ID_HERE" ;
my $billing_setup_id = "INSERT_BILLING_SETUP_ID_HERE" ;
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::V23::Resources:: AccountBudgetProposal - >new ({
billingSetup = >
Google::Ads::GoogleAds::V23::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::V23::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 ;
}
# Don't run the example if the file is being included.
if ( abs_path ( $0 ) ne abs_path ( __FILE__ )) {
return 1 ;
}
# Get Google Ads Client, credentials will be read from ~/googleads.properties.
my $api_client = Google::Ads::GoogleAds:: Client - >new ();
# By default examples are set to die on any server returned fault.
$api_client - >set_die_on_faults ( 1 );
# Parameters passed on the command line will override any parameters set in code.
GetOptions (
"customer_id=s" = > \ $customer_id ,
"billing_setup_id=i" = > \ $billing_setup_id ,
);
# Print the help message if the parameters are not initialized in the code nor
# in the command line.
pod2usage ( 2 ) if not check_params ( $customer_id , $billing_setup_id );
# Call the example.
add_account_budget_proposal ( $api_client , $customer_id =~ s/-//g r ,
$billing_setup_id );
=pod
=head1 NAME
add_account_budget_proposal
=head1 DESCRIPTION
This example creates an account budget proposal using the 'CREATE' operation. To get
account budget proposals, run get_account_budget_proposals.pl.
=head1 SYNOPSIS
add_account_budget_proposal.pl [options]
-help Show the help message.
-customer_id The Google Ads customer ID.
-billing_setup_id The billing setup ID.
=cut
curl
Observação :embora não haja um exemplo de código REST direto para esta etapa, é possível fazer isso usando uma solicitação REST manual.
Consulte a documentação da interface REST da API Google Ads e as páginas de referência específicas do método. Você precisará criar o payload JSON com base nas definições do proto.
Principais recursos:
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons , e as amostras de código são licenciadas de acordo com a Licença Apache 2.0 . Para mais detalhes, consulte as políticas do site do Google Developers . Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2026-03-03 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2026-03-03 UTC."],[],[]]