งบประมาณบัญชีจะควบคุมสิ่งที่บัญชีใช้จ่ายได้ในช่วงระยะเวลาหนึ่งๆ
โดยการกําหนดพร็อพเพอร์ตี้งบประมาณ เช่น ขีดจํากัดการใช้จ่าย เวลาเริ่มต้น และเวลาสิ้นสุด โดยต้องชี้ไปยังการตั้งค่าการเรียกเก็บเงินของบัญชีใดบัญชีหนึ่ง เพื่อระบุว่าระบบจะเรียกเก็บเงินจากบัญชีการชำระเงินใด คุณสร้าง อัปเดต และนำ
AccountBudget ใน Google Ads API ออกได้โดยการส่งออบเจ็กต์
AccountBudgetProposal
ออบเจ็กต์ AccountBudget แสดงผลลัพธ์สุดท้ายของการใช้
ข้อเสนอ หลังจากอนุมัติข้อเสนอแล้ว การเปลี่ยนแปลง (ขึ้นอยู่กับการปรับใดๆ) จะส่งผลให้มีการสร้างงบประมาณบัญชีใหม่หรืออัปเดตงบประมาณที่มีอยู่ โดยขึ้นอยู่กับ proposal_type ที่ระบุ
ในคำขอ
AccountBudgetProposalType |
คำอธิบาย |
|---|---|
CREATE |
สร้างงบประมาณบัญชีใหม่ ซึ่งต้องได้รับการอนุมัติก่อนจึงจะใช้งานได้ |
UPDATE |
แก้ไขงบประมาณบัญชีที่มีอยู่ |
END |
ตั้งเวลาสิ้นสุดของงบประมาณบัญชีเป็นเวลาปัจจุบัน |
REMOVE |
นำงบประมาณบัญชีออกก่อนเวลาเริ่มต้น |
ส่วนต่อไปนี้จะอธิบายลักษณะการทำงานของข้อเสนอแต่ละประเภท
สร้างข้อเสนองบประมาณบัญชี
การสร้างงบประมาณบัญชีใหม่ช่วยให้คุณควบคุมพฤติกรรมการใช้จ่ายของลูกค้าได้
ใช้ AccountBudgetProposalService เพื่อสร้างAccountBudgetProposalใหม่ คุณควรตั้งค่า
proposal_type เป็น CREATE เพื่อระบุ
ว่าควรสร้างงบประมาณใหม่ ดูการดำเนินการอื่นๆ ได้ที่ส่วนการจัดการ
ของคู่มือนี้
อย่าลืมใช้การตั้งค่าการเรียกเก็บเงินกับบัญชีการชำระเงินที่คุณมีสิทธิ์เข้าถึงแบบเขียน ดูรายละเอียดได้ในคู่มือการตั้งค่าการเรียกเก็บเงิน
ตัวอย่างต่อไปนี้แสดงวิธีสร้างข้อเสนองบประมาณใหม่
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
ในคำขอข้อเสนอเกี่ยวกับงบประมาณบัญชี
proposed_start_date_time และ
proposed_end_date_time จะอยู่ในเขตเวลาของบัญชีลูกค้าเสมอ คุณไม่สามารถระบุเขตเวลาได้ วงเงินใช้จ่ายที่เสนอจะวัดเป็นสกุลเงินของบัญชีเสมอ โดยระบุโดยใช้หน่วย "ไมโคร" ดังนั้น $1.00 = 1,000,000
ไมโคร
คุณจะใส่หมายเลขใบสั่งซื้อซึ่งจะแสดงข้างค่าใช้จ่ายเหล่านี้ในใบแจ้งหนี้ก็ได้ (ไม่บังคับ) ซึ่งจะไม่มีผลต่อการแสดงโฆษณาตามงบประมาณ
นำข้อเสนองบประมาณบัญชีที่รอดำเนินการออก
คุณสามารถนำข้อเสนองบประมาณที่รอดำเนินการทั้งหมดออกได้โดยส่งคำขอ
AccountBudgetProposalOperation.remove
พร้อมชื่อทรัพยากรของข้อเสนองบประมาณบัญชี อย่างไรก็ตาม โปรดทราบว่าโดยปกติแล้วระบบจะใช้ข้อเสนองบประมาณภายในไม่กี่นาที
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::V25::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({ remove => Google::Ads::GoogleAds::V25::Utils::ResourceNames::account_budget_proposal( $customer_id, $account_budget_proposal_id ) }); # Send request to Google Ads API (not shown).
หากคุณทำข้อเสนอเดิมผิดพลาด คุณสามารถส่งข้อเสนออีกครั้งเป็นUPDATEได้ ดูอัปเดตงบประมาณบัญชีที่มีอยู่
ดึงข้อมูลงบประมาณบัญชีที่มีอยู่
คําค้นหา Google Ads Query Language (GAQL) ต่อไปนี้จะดึงงบประมาณบัญชีที่มีอยู่ทั้งหมด ในบัญชี
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
ฟิลด์ที่แคปซูลเวลาเริ่มต้น เวลาสิ้นสุด และ
วงเงินใช้จ่ายของงบประมาณบัญชีมีหลายรูปแบบที่มีคำนำหน้า เช่น proposed และ
approved ซึ่งช่วยให้เปรียบเทียบค่าที่เสนอในตอนแรกกับค่าที่ได้รับอนุมัติได้ วงเงินใช้จ่ายมีช่องเพิ่มเติมที่มีคำนำหน้า adjusted เพื่อระบุวงเงินใช้จ่ายปัจจุบันที่มีผลหลังจากใช้การปรับใดๆ กับจำนวนเงินที่อนุมัติแล้ว
คุณสามารถปรับวงเงินใช้จ่ายที่อนุมัติของงบประมาณบัญชีได้เมื่อเวลาผ่านไป เพื่อ แสดงเครดิตต่างๆ สำหรับสิ่งต่างๆ เช่น การแสดงผลเกินงบประมาณ กิจกรรมการคลิกที่ไม่ถูกต้อง และคูปองโปรโมชัน ดูข้อมูลเพิ่มเติม เกี่ยวกับงบประมาณบัญชีและ เครดิตและการปรับบัญชี ได้ในศูนย์ช่วยเหลือของ Google Ads
งบประมาณบัญชีใหม่ที่รอการอนุมัติ รวมถึงงบประมาณบัญชีที่มีอยู่
ซึ่งรอการอัปเดต จะแสดงในข้อความที่ซ้อนกันของ pending_proposal ด้วย โดยสามารถเลือกฟิลด์ย่อยได้ในคําค้นหา GAQL (เช่น account_budget_proposal ซึ่งค้นหาเป็น account_budget.pending_proposal.account_budget_proposal สําหรับชื่อทรัพยากรของออบเจ็กต์ AccountBudgetProposal ที่เชื่อมโยง)
จัดการงบประมาณของบัญชีที่มีอยู่
หลังจากสร้างงบประมาณบัญชีสำหรับลูกค้าแล้ว คุณจะใช้ AccountBudgetProposalService เพื่อจัดการพารามิเตอร์งบประมาณได้
การดำเนินการจัดการที่พบบ่อยที่สุดคือการอัปเดตฟิลด์
proposed_spending_limit_microsและproposed_end_date_time ดูรายการฟิลด์ที่แก้ไขได้ทั้งหมดได้ในเอกสารอ้างอิงของ AccountBudgetProposal
คุณมีตัวเลือกในการอัปเดตงบประมาณบัญชีที่มีอยู่หรือสร้างงบประมาณใหม่ทั้งหมด ซึ่งทั้ง 2 ตัวเลือกจะแสดงที่นี่
อัปเดตงบประมาณบัญชีที่มีอยู่
คุณอัปเดตฟิลด์งบประมาณบัญชีที่มีอยู่ได้โดยการส่งออบเจ็กต์ AccountBudgetProposal ที่มี AccountBudgetProposalType ตั้งค่าเป็น UPDATE โปรดทราบว่าคุณ
ต้องระบุฟิลด์ที่จะอัปเดตในupdate_mask
อาร์กิวเมนต์ของการดำเนินการด้วย
ข้อมูลโค้ดต่อไปนี้แสดงวิธีอัปเดตวงเงินใช้จ่ายที่เสนอ สำหรับงบประมาณบัญชีที่มีอยู่
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::V25::Resources::AccountBudgetProposal->new({ proposalType => UPDATE, accountBudget => $account_budget->{resourceName}, proposedSpendingLimitMicros => $account_budget->{proposedSpendingLimitMicros} + $increaseAmount}); my $account_budget_proposal_operation = Google::Ads::GoogleAds::V25::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({ create => $account_budget_proposal, updateMask => all_set_fields_of($account_budget_proposal)}); # Send request to Google Ads API (not shown).
การเชื่อมโยงงบประมาณบัญชี
Google Ads อนุญาตให้คุณเชื่อมโยงงบประมาณบัญชีหลายรายการเพื่อเรียกใช้ต่อเนื่องกัน ซึ่งเป็นอีกทางเลือกหนึ่งแทนการอัปเดตงบประมาณที่มีอยู่ ในตัวอย่างต่อไปนี้ ลูกค้ามีวงเงินใช้จ่ายที่แตกต่างกันในแต่ละเดือน
คุณทำได้โดยสร้างออบเจ็กต์ 3 รายการ
AccountBudgetProposal และส่งแต่ละรายการ
AccountBudgetProposalOperation ไปยัง
AccountBudgetProposalService ในคำขอแยกต่างหาก
MutateAccountBudgetProposal (เนื่องจาก
MutateAccountBudgetProposalRequest รับ operation รายการเดียวต่อการเรียก)
ข้อมูลโค้ดต่อไปนี้แสดงการสร้างเชนดังกล่าวโดยใช้การตั้งค่าการเรียกเก็บเงินที่มีอยู่
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::V25::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V25::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::V25::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $may_proposal}); my $june_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 => "June budget", proposedStartDateTime => "2027-06-01 00:00:00", proposedEndDateTime => "2027-07-01 00:00:00", proposedSpendingLimitMicros => 5000000000 }); my $june_operation = Google::Ads::GoogleAds::V25::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $june_proposal}); my $july_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 => "July budget", proposedStartDateTime => "2027-07-01 00:00:00", proposedEndDateTime => "2027-08-01 00:00:00", proposedSpendingLimitMicros => 1000000000 }); my $july_operation = Google::Ads::GoogleAds::V25::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $july_proposal}); # Send requests to Google Ads API, one MutateAccountBudgetProposal call per operation (not shown).
โปรดทราบว่ามีการใช้ AccountBudgetProposalType.CREATE
ในข้อเสนอแต่ละรายการ ซึ่งจะสร้างงบประมาณที่แตกต่างกัน 3 รายการ แทนที่จะอัปเดตงบประมาณเดียวกัน 3 ครั้ง
สิ้นสุดงบประมาณบัญชี
คุณสามารถสิ้นสุดงบประมาณบัญชีขณะที่ใช้งานอยู่ และนำออกทั้งหมดก่อน เริ่มหรือขณะรอการอนุมัติ
สิ้นสุดงบประมาณบัญชีที่ใช้งานอยู่
นำงบประมาณบัญชีที่ใช้งานอยู่ออกไม่ได้ แต่คุณสามารถตั้งเวลาสิ้นสุด
เป็นเวลาปัจจุบันได้ วิธีที่ง่ายที่สุดในการดำเนินการนี้คือการส่งข้อเสนอพร้อม
AccountBudgetProposalType.END
ข้อมูลโค้ดต่อไปนี้แสดงวิธีสิ้นสุดงบประมาณบัญชีที่มีอยู่
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::V25::Resources::AccountBudgetProposal->new({ proposalType => END, accountBudget => $account_budget->{resourceName} }); my $account_budget_proposal_operation = Google::Ads::GoogleAds::V25::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $account_budget_proposal}); # Send request to Google Ads API (not shown).
ซึ่งเทียบเท่ากับการอัปเดตงบประมาณบัญชีโดยการตั้งเวลาวันที่สิ้นสุดเป็น TimeType.NOW
นำงบประมาณบัญชีที่ได้รับอนุมัติออกก่อนเวลาเริ่มต้น
หากคุณเสนอให้เริ่มงบประมาณบัญชีในอนาคต คุณสามารถนำงบประมาณนั้นออก
ทั้งหมดก่อนเวลาเริ่มต้นได้โดยส่งข้อเสนอประเภท
AccountBudgetProposalType.REMOVE
ข้อมูลโค้ดต่อไปนี้แสดงการนำงบประมาณบัญชีอนาคตที่มีอยู่ออก
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::V25::Resources::AccountBudgetProposal->new({ proposalType => REMOVE, accountBudget => $account_budget->{resourceName} }); my $account_budget_proposal_operation = Google::Ads::GoogleAds::V25::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({create => $account_budget_proposal}); # Send request to Google Ads API (not shown).