יש שני סוגים של תקציבים: תקציבים יומיים ממוצעים ותקציבים כוללים של קמפיינים. אפשר ליצור כל אחד מהסוגים האלה באמצעות CampaignBudgetService.
יצירת תקציב יומי ממוצע
זהו הסכום הממוצע שאתם מוכנים להוציא ביום על קמפיין.
אפשר להגדיר תקציב יומי ממוצע בשדה amount_micros של CampaignBudget. התקציב period מוגדר כברירת מחדל ל-DAILY.
מאחר שערך ברירת המחדל של explicitly_shared
הוא true אם הוא לא מצוין בפעולת create, צריך להגדיר במפורש את
explicitly_shared לערך false כדי ליצור תקציב לא משותף לקמפיין יחיד, כמו בדוגמה הבאה:
Java
private static String addCampaignBudget(GoogleAdsClient googleAdsClient, long customerId) { CampaignBudget budget = CampaignBudget.newBuilder() .setName("Interplanetary Cruise Budget #" + getPrintableDateTime()) .setDeliveryMethod(BudgetDeliveryMethod.STANDARD) .setAmountMicros(500_000) .build(); CampaignBudgetOperation op = CampaignBudgetOperation.newBuilder().setCreate(budget).build(); try (CampaignBudgetServiceClient campaignBudgetServiceClient = googleAdsClient.getLatestVersion().createCampaignBudgetServiceClient()) { MutateCampaignBudgetsResponse response = campaignBudgetServiceClient.mutateCampaignBudgets( Long.toString(customerId), ImmutableList.of(op)); String budgetResourceName = response.getResults(0).getResourceName(); System.out.printf("Added budget: %s%n", budgetResourceName); return budgetResourceName; } }
C#
private static string CreateBudget(GoogleAdsClient client, long customerId) { // Get the BudgetService. CampaignBudgetServiceClient budgetService = client.GetService( Services.V25.CampaignBudgetService); // Create the campaign budget. CampaignBudget budget = new CampaignBudget() { Name = "Interplanetary Cruise Budget #" + ExampleUtilities.GetRandomString(), DeliveryMethod = BudgetDeliveryMethod.Standard, AmountMicros = 500000 }; // Create the operation. CampaignBudgetOperation budgetOperation = new CampaignBudgetOperation() { Create = budget }; // Create the campaign budget. MutateCampaignBudgetsResponse response = budgetService.MutateCampaignBudgets( customerId.ToString(), new CampaignBudgetOperation[] { budgetOperation }); return response.Results[0].ResourceName; }
PHP
private static function addCampaignBudget(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a campaign budget. $budget = new CampaignBudget([ 'name' => 'Interplanetary Cruise Budget #' . Helper::getPrintableDatetime(), 'delivery_method' => BudgetDeliveryMethod::STANDARD, 'amount_micros' => 500000 ]); // Creates a campaign budget operation. $campaignBudgetOperation = new CampaignBudgetOperation(); $campaignBudgetOperation->setCreate($budget); // Issues a mutate request. $campaignBudgetServiceClient = $googleAdsClient->getCampaignBudgetServiceClient(); $response = $campaignBudgetServiceClient->mutateCampaignBudgets( MutateCampaignBudgetsRequest::build($customerId, [$campaignBudgetOperation]) ); /** @var CampaignBudget $addedBudget */ $addedBudget = $response->getResults()[0]; printf("Added budget named '%s'%s", $addedBudget->getResourceName(), PHP_EOL); return $addedBudget->getResourceName(); }
Python
# Create a budget, which can be shared by multiple campaigns. campaign_budget_operation: CampaignBudgetOperation = client.get_type( "CampaignBudgetOperation" ) campaign_budget: CampaignBudget = campaign_budget_operation.create campaign_budget.name = f"Interplanetary Budget {uuid.uuid4()}" campaign_budget.delivery_method = ( client.enums.BudgetDeliveryMethodEnum.STANDARD ) campaign_budget.amount_micros = 500000 # Add budget. campaign_budget_response: MutateCampaignBudgetsResponse try: budget_operations: List[CampaignBudgetOperation] = [ campaign_budget_operation ] campaign_budget_response = ( campaign_budget_service.mutate_campaign_budgets( customer_id=customer_id, operations=budget_operations, ) ) except GoogleAdsException as ex: handle_googleads_exception(ex)
Ruby
# Create a budget, which can be shared by multiple campaigns. campaign_budget = client.resource.campaign_budget do |cb| cb.name = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}" cb.delivery_method = :STANDARD cb.amount_micros = 500000 end operation = client.operation.create_resource.campaign_budget(campaign_budget) # Add budget. return_budget = client.service.campaign_budget.mutate_campaign_budgets( customer_id: customer_id, operations: [operation], )
Perl
# Create a campaign budget, which can be shared by multiple campaigns. my $campaign_budget = Google::Ads::GoogleAds::V25::Resources::CampaignBudget->new({ name => "Interplanetary budget #" . uniqid(), deliveryMethod => STANDARD, amountMicros => 500000 }); # Create a campaign budget operation. my $campaign_budget_operation = Google::Ads::GoogleAds::V25::Services::CampaignBudgetService::CampaignBudgetOperation ->new({create => $campaign_budget}); # Add the campaign budget. my $campaign_budgets_response = $api_client->CampaignBudgetService()->mutate({ customerId => $customer_id, operations => [$campaign_budget_operation]});
curl
יצירת התקציב הכולל של הקמפיין
זהו הסכום הכולל שאתם מוכנים להוציא במהלך הקמפיין. כדי ליצור את התקציב הכולל של הקמפיין, מגדירים את התקציב period ל-CUSTOM_PERIOD ומגדירים את total_amount_micros.
אי אפשר לשתף תקציבים כוללים בין קמפיינים, ולכן צריך להגדיר את explicitly_shared לערך false כשיוצרים תקציב עם period של CUSTOM_PERIOD.
כשמבצעים קידוד, השדות זהים לאלה של תקציב יומי ממוצע,
חוץ מהשדות period ו-total_amount_micros.
המלצות לגבי תקציב הקמפיין
Google Ads API מספק כמה סוגים של המלצות שיעזרו לכם לבצע אופטימיזציה של תקציבי הקמפיינים:
CAMPAIGN_BUDGETמציע סכום תקציב חדש לקמפיינים בהגבלת תקציב.MOVE_UNUSED_BUDGETמציג הזדמנויות להקצאה מחדש של תקציב עודף מקמפיין אחד לקמפיין אחר שמוגבל בגלל התקציב.MARGINAL_ROI_CAMPAIGN_BUDGETמציע סכום תקציב חדש לקמפיינים שבהם צפויה עלייה ב-ROI בעקבות שינוי בתקציב.
FORECASTING_CAMPAIGN_BUDGETמציעה סכום תקציב חדש לקמפיינים שצפויים להיות בהגבלת תקציב בעתיד.
במדריך בנושא ציון האופטימיזציה וההמלצות אפשר למצוא מידע על סוגי המלצות נוספים והנחיות לעבודה עם המלצות ב-Google Ads API.