תקציבי החשבון קובעים כמה להוציא בחשבון במהלך תקופת זמן ספציפית, על ידי הגדרה של מאפייני תקציב כמו תקרת הוצאות, שעת התחלה ושעת סיום. הן צריכות להצביע על אחת מהגדרות החיוב של החשבון, כדי לציין איזה חשבון תשלומים ספציפי יחויב. אפשר ליצור, לעדכן ולהסיר את AccountBudget
על ידי שליחת אובייקטים מסוג 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.V16.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, customer_id, billing_setup_id): 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::V16::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V16::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::V16::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; }
בבקשות להצעות תקציב חשבון, proposed_start_date_time
ו-proposed_end_date_time
נמצאים תמיד באזור הזמן של החשבון של הלקוח, ואי אפשר לציין אזור זמן. תקרת ההוצאה המוצעת תמיד נמדדת במטבע של החשבון. מציינים אותה באמצעות יחידות "מיקרו", כלומר $1.00 = 1,000,000 מיקרו.
לחלופין, אפשר לכלול מספר הזמנת רכש שיופיע לצד החיובים האלה בחשבונית. אין לכך השפעה על הוצאת התקציב.
הסרה של הצעה בהמתנה לתקציב חשבון
אפשר להסיר הצעת תקציב שלמה שנמצאת בהמתנה על ידי שליחת בקשת AccountBudgetProposalOperation Remove
עם שם המשאב של ההצעה לתקציב החשבון. עם זאת, שימו לב שהצעות תקציב מוחלות בדרך כלל תוך כמה דקות.
AccountBudgetProposalOperation operation = AccountBudgetProposalOperation.newBuilder() .setRemove(StringValue.of(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') proposal = account_budget_proposal_operation.remove proposal.resource_name = 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::V16::Services::AccountBudgetProposalService::AccountBudgetProposalOperation ->new({ remove => Google::Ads::GoogleAds::V16::Utils::ResourceNames::billing_setup( $customer_id, $account_budget_proposal_id ) }); # Send request to Google Ads API (not shown).
אם טעיתם בהצעה המקורית, תוכלו לשלוח מחדש את ההצעה כפעולת UPDATE
. למידע נוסף, ראו ניהול תקציבי חשבון קיימים בהמשך.
אחזור תקציבי חשבון קיימים
שאילתת GAQL הבאה מאחזרת את כל תקציבי החשבון הקיימים בחשבון:
SELECT
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
שאפשר לבחור. השדה יכיל את מזהה המשאב של האובייקט AccountBudgetProposal
המשויך.
דוגמאות לקוד
התיקייה Billing
של כל ספריית לקוח מכילה דוגמה לקוד שמציג בקשה מלאה:
ניהול תקציבי חשבון קיימים
אחרי שיוצרים תקציב חשבון עבור לקוח, אפשר להשתמש ב-AccountBudgetProposalService
כדי לנהל את הפרמטרים של התקציב. פעולות הניהול הנפוצות ביותר הן עדכון השדות spending_limit
ו-end_date_time
. רשימה מלאה של השדות שניתן לשנות מופיעה במסמך AccountBudgetProposal
.
יש לכם אפשרות לעדכן תקציב חשבון קיים או ליצור תקציב חדש לגמרי. שתיהן מוצגות כאן.
עדכון של תקציב בחשבון קיים
כדי לעדכן את השדות הקיימים של תקציב החשבון, אפשר לשלוח AccountBudgetProposal
אובייקטים עם הערך UPDATE
של AccountBudgetProposalType
. שימו לב שצריך לציין גם את השדות שמתעדכנים בארגומנט UpdateMask
של הפעולה.
הקטע הבא מדגים איך לעדכן את תקרת ההוצאות המוצעת בתקציב חשבון קיים.
AccountBudgetProposal proposal = AccountBudgetProposal.newBuilder() .setProposalType(AccountBudgetProposalType.UPDATE) .setAccountBudget(accountBudget.getResourceName()) .setProposedSpendingLimitMicros( accountBudget.getProposedSpendingLimitMicros().getValue() + increaseAmount) .build(); AccountBudgetProposalOperation operation = AccountBudgetProposalOperation.newBuilder() .setCreate(proposal) .setUpdateMask( FieldMask.newBuilder().addAllPaths(Arrays.asList("proposed_spending_limit")).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" } } }; // 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').UPDATE proposal.account_budget = account_budget proposal.proposed_spending_limit_micros = account_budget.proposed_spending_limit_micros + increase_amount field_mask = protobuf_helpers.field_mask(None, proposal) 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::V16::Resources::AccountBudgetProposal->new({ proposalType => UPDATE, accountBudget => $account_budget->{resourceName}, proposedSpendingLimitMicros => $account_budget->{proposedSpendingLimitMicros} + $increaseAmount}); my $account_budget_proposal_operation = Google::Ads::GoogleAds::V16::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 שרשרת של תקציבי חשבונות מרובים כך שיפעלו ברצף. בדוגמה הבאה, ללקוח יש תקרות הוצאה שונות בכל חודש.
אפשר לעשות זאת על ידי יצירת שלושה אובייקטים של AccountBudgetProposal
ושליחה שלהם אל AccountBudgetProposalService
.
קטע הקוד שלמטה מדגים איך יוצרים רשת כזו באמצעות הגדרת חיוב קיימת.
AccountBudgetProposal proposalMay = AccountBudgetProposal.newBuilder() .setBillingSetup(ResourceNames.billingSetup(customerId, billingSetupId)) .setProposalType(AccountBudgetProposalType.CREATE) .setProposedName("May budget") .setProposedStartDateTime("2018-05-01") .setProposedEndDateTime("2018-06-01") .setProposedSpendingLimitMicros(1_000_000_000L) .build(); AccountBudgetProposal proposalJune = AccountBudgetProposal.newBuilder() .setBillingSetup(ResourceNames.billingSetup(customerId, billingSetupId)) .setProposalType(AccountBudgetProposalType.CREATE) .setProposedName("June budget") .setProposedStartDateTime("2018-06-01") .setProposedEndDateTime("2018-07-01") .setProposedSpendingLimitMicros(5_000_000_000L) .build(); AccountBudgetProposal proposalJuly = AccountBudgetProposal.newBuilder() .setBillingSetup(ResourceNames.billingSetup(customerId, billingSetupId)) .setProposalType(AccountBudgetProposalType.CREATE) .setProposedName("July budget") .setProposedStartDateTime("2018-07-01") .setProposedEndDateTime("2018-08-01") .setProposedSpendingLimitMicros(1_000_000_000L) .build(); // Send request to Google Ads API (not shown).
AccountBudgetProposal proposalMay = new AccountBudgetProposal() { BillingSetup = ResourceNames.BillingSetup(customerId, billingSetupId), ProposalType = AccountBudgetProposalType.Create, ProposedName = "May budget", ProposedStartDateTime = "2018-05-01", ProposedEndDateTime = "2018-06-01", ProposedSpendingLimitMicros = 1_000_000_000 } AccountBudgetProposal proposalJune = new AccountBudgetProposal() { BillingSetup = ResourceNames.BillingSetup(customerId, billingSetupId), ProposalType = AccountBudgetProposalType.Create, ProposedName = "June budget", ProposedStartDateTime = "2018-06-01", ProposedEndDateTime = "2018-07-01", ProposedSpendingLimitMicros = 5_000_000_000 } AccountBudgetProposal proposalJuly = new AccountBudgetProposal() { BillingSetup = ResourceNames.BillingSetup(customerId, billingSetupId), ProposalType = AccountBudgetProposalType.Create, ProposedName = "July budget", ProposedStartDateTime = "2018-07-01", ProposedEndDateTime = "2018-08-01", ProposedSpendingLimitMicros = 1_000_000_000 } // Send request to Google Ads API (not shown).
$proposalMay = new AccountBudgetProposal([ 'billing_setup' => ResourceNames::forBillingSetup($customerId, $billingSetupId), 'proposal_type' => AccountBudgetProposalType::CREATE, 'proposed_name' => 'May budget', 'proposed_start_date_time' => '2018-05-01', 'proposed_end_date_time' => '2018-06-01', 'proposed_spending_limit_micros' => 1000000000 ]); $proposalJune = new AccountBudgetProposal([ 'billing_setup' => ResourceNames::forBillingSetup($customerId, $billingSetupId), 'proposal_type' => AccountBudgetProposalType::CREATE, 'proposed_name' => 'June budget', 'proposed_start_date_time' => '2018-06-01', 'proposed_end_date_time' => '2018-07-01', 'proposed_spending_limit_micros' => 5000000000 ]); $proposalJuly = new AccountBudgetProposal([ 'billing_setup' => ResourceNames::forBillingSetup($customerId, $billingSetupId), 'proposal_type' => AccountBudgetProposalType::CREATE, 'proposed_name' => 'July budget', 'proposed_start_date_time' => '2018-07-01', 'proposed_end_date_time' => '2018-08-01', 'proposed_spending_limit_micros' => 1000000000 ]); // Send request to Google Ads API (not shown).
may_account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposalMay = may_account_budget_proposal_operation.create proposalMay.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').CREATE proposalMay.billing_setup = billing_setup_service.billing_setup_path(customer_id, billing_setup_id) proposalMay.proposed_name = 'May budget' proposalMay.proposed_start_date_time = '2018-05-01' proposalMay.proposed_end_date_time = '2018-06-01' proposalMay.proposed_spending_limit_micros = 1000000000 june_account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposalJune = may_account_budget_proposal_operation.create proposalJune.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').CREATE proposalJune.billing_setup = billing_setup_service.billing_setup_path(customer_id, billing_setup_id) proposalJune.proposed_name = 'June budget' proposalJune.proposed_start_date_time = '2018-06-01' proposalJune.proposed_end_date_time = '2018-07-01' proposalJune.proposed_spending_limit_micros = 5000000000 july_account_budget_proposal_operation = client.get_type('AccountBudgetProposalOperation') proposalJuly = may_account_budget_proposal_operation.create proposalJuly.proposal_type = client.get_type('AccountBudgetProposalTypeEnum').CREATE proposalJuly.billing_setup = billing_setup_service.billing_setup_path(customer_id, billing_setup_id) proposalJuly.proposed_name = 'July budget' proposalJuly.proposed_start_date_time = '2018-07-01' proposalJuly.proposed_end_date_time = '2018-08-01' proposalJuly.proposed_spending_limit_micros = 1000000000 # Send request to Google Ads API (not shown).
proposal_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 = '2018-05-01' proposal.proposed_end_date_time = '2018-06-01' proposal.proposed_spending_limit_micros = 1_000_000_000 end proposal_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 = '2018-06-01' proposal.proposed_end_date_time = '2018-07-01' proposal.proposed_spending_limit_micros = 5_000_000_000 end proposal_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 = '2018-07-01' proposal.proposed_end_date_time = '2018-08-01' proposal.proposed_spending_limit_micros = 1_000_000_000 end # Send request to Google Ads API (not shown).
my $may_proposal = Google::Ads::GoogleAds::V16::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V16::Utils::ResourceNames::billing_setup( $customer_id, $billing_setup_id ), proposalType => CREATE, proposedName => "May budget", proposedStartDateTime => "2018-05-01", proposedEndDateTime => "2018-06-01", proposedSpendingLimitMicros => 1000000000 }); my $june_proposal = Google::Ads::GoogleAds::V16::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V16::Utils::ResourceNames::billing_setup( $customer_id, $billing_setup_id ), proposalType => CREATE, proposedName => "June budget", proposedStartDateTime => "2018-06-01", proposedEndDateTime => "2018-07-01", proposedSpendingLimitMicros => 5000000000 }); my $july_proposal = Google::Ads::GoogleAds::V16::Resources::AccountBudgetProposal->new({ billingSetup => Google::Ads::GoogleAds::V16::Utils::ResourceNames::billing_setup( $customer_id, $billing_setup_id ), proposalType => CREATE, proposedName => "July budget", proposedStartDateTime => "2018-07-01", proposedEndDateTime => "2018-08-01", proposedSpendingLimitMicros => 1000000000 }); # Send request to Google Ads API (not shown).
שימו לב לשימוש ב-AccountBudgetProposalType.CREATE
בכל הצעה. כך ייווצרו שלושה תקציבים נפרדים, במקום לעדכן את אותו תקציב שלוש פעמים.
ביטול תקציבי החשבון
אפשר לסיים תקציבי חשבון בזמן שהם פעילים, ולהסיר אותם לגמרי לפני ההתחלה או בזמן ההמתנה לאישור.
סיום התקציב הפעיל של החשבון
אי אפשר להסיר את תקציב החשבון הפעיל. עם זאת, אפשר להגדיר את שעת הסיום לשעה הנוכחית. הדרך הפשוטה ביותר לעשות זאת היא לשלוח הצעה באמצעות AccountBudgetProposalType.END
.
קטע הקוד הבא מדגים איך לסיים תקציב חשבון קיים.
AccountBudgetProposal.newBuilder() .setProposalType(AccountBudgetProposalType.END) .setAccountBudget(accountBudget.getResourceName()) .build(); // Send request to Google Ads API (not shown).
AccountBudgetProposal proposal = new AccountBudgetProposal() { ProposalType = AccountBudgetProposalType.End, AccountBudget = accountBudget.ResourceName }; // Send request to Google Ads API (not shown).
$accountBudgetProposal = new AccountBudgetProposal([ 'proposal_type' => AccountBudgetProposalType::END, 'account_budget' => $accountBudget->getResourceName() ]) // 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').END proposal.account_budget = account_budget # Send request to Google Ads API (not shown).
proposal = client.resource.account_budget_proposal proposal.proposal_type = :END proposal.account_budget = account_budget.resource_name # Send request to Google Ads API (not shown).
my $account_budget_proposal = Google::Ads::GoogleAds::V16::Resources::AccountBudgetProposal->new({ proposalType => END, accountBudget => $account_budget->{resourceName}); # Send request to Google Ads API (not shown).
הפעולה הזו זהה להגדרת עדכון תקציב חשבון על ידי הגדרת תאריך הסיום של תאריך הסיום ל-TimeType.NOW
.
הסרה של תקציב חשבון שאושר לפני שעת ההתחלה שלו
אם הצעתם תקציב חשבון שיתחיל בעתיד, תוכלו להסיר אותו לחלוטין לפני שעת ההתחלה על ידי שליחת הצעה מסוג AccountBudgetProposalType.REMOVE
.
קטע הקוד הבא מדגים את ההסרה של תקציב חשבון עתידי.
AccountBudgetProposal.newBuilder() .setProposalType(AccountBudgetProposalType.REMOVE) .setAccountBudget(accountBudget.getResourceName()) .build(); // Send request to Google Ads API (not shown).
AccountBudgetProposal proposal = new AccountBudgetProposal() { ProposalType = AccountBudgetProposalType.Remove, AccountBudget = accountBudget.ResourceName }; // Send request to Google Ads API (not shown).
$accountBudgetProposal = new AccountBudgetProposal([ 'proposal_type' => AccountBudgetProposalType::REMOVE, 'account_budget' => $accountBudget->getResourceName() ]) // 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').REMOVE proposal.account_budget = account_budget # Send request to Google Ads API (not shown).
proposal = client.resource.account_budget_proposal proposal.proposal_type = :REMOVE proposal.account_budget = account_budget.resource_name # Send request to Google Ads API (not shown).
my $account_budget_proposal = Google::Ads::GoogleAds::V16::Resources::AccountBudgetProposal->new({ proposalType => REMOVE, accountBudget => $account_budget->{resourceName}); # Send request to Google Ads API (not shown).