Create Campaign BudgetsStay organized with collectionsSave and categorize content based on your preferences.
Page Summary
Campaign budgets in the Google Ads API are shareable by default.
The provided examples show how to create a new average daily budget for a campaign using various programming languages.
The Google Ads API offers several recommendation types, such as CAMPAIGN_BUDGET, MOVE_UNUSED_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET, and FORECASTING_CAMPAIGN_BUDGET, to help optimize campaign budgets.
These recommendations provide suggestions for new budget amounts, reallocating excess budget, and adjusting budgets based on predicted ROI or future constraints.
There are two types of budgets: average daily budgets and campaign total
budgets. You can create either type usingCampaignBudgetService.
Create an average daily budget
This is the average amount you're willing to spend per day for this campaign.
You can set an average daily budget withamount_microsofCampaignBudget. The budgetperioddefaults toDAILY.
The following example creates a new average daily budget for a campaign.
# Create a budget, which can be shared by multiple campaigns.campaign_budget_operation:CampaignBudgetOperation=client.get_type("CampaignBudgetOperation")campaign_budget:CampaignBudget=campaign_budget_operation.createcampaign_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:MutateCampaignBudgetsResponsetry:budget_operations:List[CampaignBudgetOperation]=[campaign_budget_operation]campaign_budget_response=(campaign_budget_service.mutate_campaign_budgets(customer_id=customer_id,operations=budget_operations,))exceptGoogleAdsExceptionasex:handle_googleads_exception(ex)
# Create a budget, which can be shared by multiple campaigns.campaign_budget=client.resource.campaign_budgetdo|cb|cb.name="Interplanetary Budget#{(Time.new.to_f*1000).to_i}"cb.delivery_method=:STANDARDcb.amount_micros=500000endoperation=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],)
# Create a campaign budget, which can be shared by multiple campaigns.my$campaign_budget=Google::Ads::GoogleAds::V23::Resources::CampaignBudget->new({name=>"Interplanetary budget #".uniqid(),deliveryMethod=>STANDARD,amountMicros=>500000});# Create a campaign budget operation.my$campaign_budget_operation=Google::Ads::GoogleAds::V23::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]});
This is the total amount you're willing to spend over the entire duration of
the campaign. To create a campaign total budget, set the budgetperiodtoCUSTOM_PERIODand settotal_amount_micros.
Campaign total budgets cannot be shared across campaigns, so you must setexplicitly_sharedtofalsewhen creating a budget with aperiodofCUSTOM_PERIOD.
When coding, the fields are the same as for an average daily budget,
except forperiodandtotal_amount_micros.
Campaign budget recommendations
The Google Ads API provides somerecommendationtypes to
help you optimize your campaign budgets:
CAMPAIGN_BUDGETsuggests a new budget amount for budget-constrained campaigns.
MOVE_UNUSED_BUDGEThighlights opportunities to reallocate excess budget from one campaign to
another budget-constrained campaign.
MARGINAL_ROI_CAMPAIGN_BUDGETsuggests a new budget amount for campaigns whose ROI is predicted to
increase with a budget adjustment.
FORECASTING_CAMPAIGN_BUDGETsuggests a new budget amount for campaigns that are expected to become
budget-constrained in the future.
For additional recommendation types and guidance on working with recommendations
in the Google Ads API, visit theOptimization score and recommendationsguide.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-03-25 UTC."],[],[]]