Create a budget

The following example shows how to build a MutateOperation that creates a new CampaignBudget for a Smart campaign. This operation will be used in a single mutate request along with the other entities required to create a Smart campaign.

Key requirements for Smart campaign budgets:

Java

 private 
  
 MutateOperation 
  
 createCampaignBudgetOperation 
 ( 
 long 
  
 customerId 
 , 
  
 long 
  
 dailyBudgetMicros 
 ) 
  
 { 
  
 MutateOperation 
 . 
 Builder 
  
 builder 
  
 = 
  
 MutateOperation 
 . 
 newBuilder 
 (); 
  
 builder 
  
 . 
 getCampaignBudgetOperationBuilder 
 () 
  
 . 
 getCreateBuilder 
 () 
  
 . 
 setName 
 ( 
 "Smart campaign budget " 
  
 + 
  
 CodeSampleHelper 
 . 
 getShortPrintableDateTime 
 ()) 
  
 . 
 setDeliveryMethod 
 ( 
 BudgetDeliveryMethod 
 . 
 STANDARD 
 ) 
  
 // A budget used for Smart campaigns must have the type SMART_CAMPAIGN. 
  
 . 
 setType 
 ( 
 BudgetType 
 . 
 SMART_CAMPAIGN 
 ) 
  
 // The suggested budget amount from the SmartCampaignSuggestService is for a _daily_ budget. 
  
 // We don't need to specify that here, because the budget period already defaults to DAILY. 
  
 . 
 setAmountMicros 
 ( 
 dailyBudgetMicros 
 ) 
  
 // Sets a temporary ID in the budget's resource name so it can be referenced by the campaign 
  
 // in later steps. 
  
 . 
 setResourceName 
 ( 
 ResourceNames 
 . 
 campaignBudget 
 ( 
 customerId 
 , 
  
 BUDGET_TEMPORARY_ID 
 )); 
  
 return 
  
 builder 
 . 
 build 
 (); 
 } 
  
  

C#

 /// <summary> 
 /// Creates a MutateOperation that creates a new CampaignBudget. 
 /// A temporary ID will be assigned to this campaign budget so that it can be referenced by 
 /// other objects being created in the same Mutate request. 
 /// </summary> 
 /// <param name="customerId">The Google Ads customer ID.</param> 
 /// <param name="suggestedBudgetAmount">A daily amount budget in micros.</param> 
 /// <returns>A MutateOperation that creates a CampaignBudget</returns> 
 private 
  
 MutateOperation 
  
 CreateCampaignBudgetOperation 
 ( 
 long 
  
 customerId 
 , 
  
 long 
  
 suggestedBudgetAmount 
 ) 
 { 
  
 return 
  
 new 
  
 MutateOperation 
  
 { 
  
 CampaignBudgetOperation 
  
 = 
  
 new 
  
 CampaignBudgetOperation 
  
 { 
  
 Create 
  
 = 
  
 new 
  
 CampaignBudget 
  
 { 
  
 Name 
  
 = 
  
 $"Smart campaign budget #{ExampleUtilities.GetRandomString()}" 
 , 
  
 // A budget used for Smart campaigns must have the type SMART_CAMPAIGN. 
  
 Type 
  
 = 
  
 BudgetType 
 . 
 SmartCampaign 
 , 
  
 // The suggested budget amount from the SmartCampaignSuggestService is a 
  
 // daily budget. We don't need to specify that here, because the budget 
  
 // period already defaults to DAILY. 
  
 AmountMicros 
  
 = 
  
 suggestedBudgetAmount 
 , 
  
 // Set a temporary ID in the budget's resource name so it can be referenced 
  
 // by the campaign in later steps. 
  
 ResourceName 
  
 = 
  
 ResourceNames 
 . 
 CampaignBudget 
 ( 
  
 customerId 
 , 
  
 BUDGET_TEMPORARY_ID 
 ) 
  
 } 
  
 } 
  
 }; 
 } 
  
  

PHP

 private static function createCampaignBudgetOperation( 
 int $customerId, 
 int $suggestedBudgetAmount 
 ): MutateOperation { 
 // Creates the campaign budget object. 
 $campaignBudget = new CampaignBudget([ 
 'name' => "Smart campaign budget #" . Helper::getPrintableDatetime(), 
 // A budget used for Smart campaigns must have the type SMART_CAMPAIGN. 
 'type' => BudgetType::SMART_CAMPAIGN, 
 // The suggested budget amount from the SmartCampaignSuggestService is a daily budget. 
 // We don't need to specify that here, because the budget period already defaults to 
 // DAILY. 
 'amount_micros' => $suggestedBudgetAmount, 
 // Sets a temporary ID in the budget's resource name so it can be referenced by the 
 // campaign in later steps. 
 'resource_name' = 
> ResourceNames::forCampaignBudget($customerId, self::BUDGET_TEMPORARY_ID) 
 ]); 
 // Creates the MutateOperation that creates the campaign budget. 
 return new MutateOperation([ 
 'campaign_budget_operation' => new CampaignBudgetOperation([ 
 'create' => $campaignBudget 
 ]) 
 ]); 
 }  
 

Python

 def 
  
 create_campaign_budget_operation 
 ( 
 client 
 : 
 GoogleAdsClient 
 , 
 customer_id 
 : 
 str 
 , 
 suggested_budget_amount 
 : 
 int 
 ) 
 - 
> MutateOperation 
 : 
  
 """Creates a MutateOperation that creates a new CampaignBudget. 
 A temporary ID will be assigned to this campaign budget so that it can be 
 referenced by other objects being created in the same Mutate request. 
 Args: 
 client: an initialized GoogleAdsClient instance. 
 customer_id: a client customer ID. 
 suggested_budget_amount: a numeric daily budget amount in micros. 
 Returns: 
 a MutateOperation that creates a CampaignBudget. 
 """ 
 mutate_operation 
 : 
 MutateOperation 
 = 
 client 
 . 
 get_type 
 ( 
 "MutateOperation" 
 ) 
 campaign_budget_operation 
 : 
 CampaignBudgetOperation 
 = 
 ( 
 mutate_operation 
 . 
 campaign_budget_operation 
 ) 
 campaign_budget 
 : 
 CampaignBudget 
 = 
 campaign_budget_operation 
 . 
 create 
 campaign_budget 
 . 
 name 
 = 
 f 
 "Smart campaign budget # 
 { 
 uuid4 
 () 
 } 
 " 
 # A budget used for Smart campaigns must have the type SMART_CAMPAIGN. 
 # Note that the field name "type_" is an implementation detail in Python, 
 # the field's actual name is "type". 
 campaign_budget 
 . 
 type_ 
 = 
 client 
 . 
 enums 
 . 
 BudgetTypeEnum 
 . 
 SMART_CAMPAIGN 
 # The suggested budget amount from the SmartCampaignSuggestService is 
 # a daily budget. We don't need to specify that here, because the budget 
 # period already defaults to DAILY. 
 campaign_budget 
 . 
 amount_micros 
 = 
 suggested_budget_amount 
 # Set a temporary ID in the budget's resource name so it can be referenced 
 # by the campaign in later steps. 
 campaign_budget 
 . 
 resource_name 
 = 
 client 
 . 
 get_service 
 ( 
 "CampaignBudgetService" 
 ) 
 . 
 campaign_budget_path 
 ( 
 customer_id 
 , 
 _BUDGET_TEMPORARY_ID 
 ) 
 return 
 mutate_operation  
 
 . 
 py 

Ruby

 # Creates a mutate_operation that creates a new campaign_budget. 
 # A temporary ID will be assigned to this campaign budget so that it can be 
 # referenced by other objects being created in the same mutate request. 
 def 
  
 create_campaign_budget_operation 
 ( 
  
 client 
 , 
  
 customer_id 
 , 
  
 suggested_budget_amount 
 ) 
  
 mutate_operation 
  
 = 
  
 client 
 . 
 operation 
 . 
 mutate 
  
 do 
  
 | 
 m 
 | 
  
 m 
 . 
 campaign_budget_operation 
  
 = 
  
 client 
 . 
 operation 
 . 
 create_resource 
 . 
 campaign_budget 
  
 do 
  
 | 
 cb 
 | 
  
 cb 
 . 
 name 
  
 = 
  
 "Smart campaign budget # 
 #{ 
 ( 
 Time 
 . 
 new 
 . 
 to_f 
  
 * 
  
 1000 
 ) 
 . 
 to_i 
 } 
 " 
  
 # A budget used for Smart campaigns must have the type SMART_CAMPAIGN. 
  
 cb 
 . 
 type 
  
 = 
  
 :SMART_CAMPAIGN 
  
 # The suggested budget amount from the smart_campaign_suggest_service is 
  
 # a daily budget. We don't need to specify that here, because the budget 
  
 # period already defaults to DAILY. 
  
 cb 
 . 
 amount_micros 
  
 = 
  
 suggested_budget_amount 
  
 # Sets a temporary ID in the budget's resource name so it can be referenced 
  
 # by the campaign in later steps. 
  
 cb 
 . 
 resource_name 
  
 = 
  
 client 
 . 
 path 
 . 
 campaign_budget 
 ( 
 customer_id 
 , 
  
 BUDGET_TEMPORARY_ID 
 ) 
  
 end 
  
 end 
  
 mutate_operation 
 end  
 
 . 
 rb 
  

Perl

 # Creates a MutateOperation that creates a new CampaignBudget. 
 # A temporary ID will be assigned to this campaign budget so that it can be 
 # referenced by other objects being created in the same Mutate request. 
 sub 
  
 _create_campaign_budget_operation 
  
 { 
  
 my 
  
 ( 
 $customer_id 
 , 
  
 $suggested_budget_amount 
 ) 
  
 = 
  
 @_ 
 ; 
  
 return 
  
 Google::Ads::GoogleAds::V21::Services::GoogleAdsService:: 
 MutateOperation 
 - 
>  
 new 
 ({ 
  
 campaignBudgetOperation 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Services::CampaignBudgetService:: 
 CampaignBudgetOperation 
  
 - 
> new 
 ({ 
  
 create 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Resources:: 
 CampaignBudget 
 - 
> new 
 ({ 
  
 name 
  
 = 
>  
 "Smart campaign budget #" 
  
 . 
  
 uniqid 
 (), 
  
 # A budget used for Smart campaigns must have the type SMART_CAMPAIGN. 
  
 type 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Enums::BudgetTypeEnum:: 
 SMART_CAMPAIGN 
 , 
  
 # The suggested budget amount from the SmartCampaignSuggestService is 
  
 # a daily budget. We don't need to specify that here, because the 
  
 # budget period already defaults to DAILY. 
  
 amountMicros 
  
 = 
>  
 $suggested_budget_amount 
 , 
  
 # Set a temporary ID in the budget's resource name so it can be 
  
 # referenced by the campaign in later steps. 
  
 resourceName 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Utils::ResourceNames:: 
 campaign_budget 
 ( 
  
 $customer_id 
 , 
  
 BUDGET_TEMPORARY_ID 
  
 )})})}); 
 } 
  
  
Design a Mobile Site
View Site in Mobile | Classic
Share by: