Page Summary
-
Performance Max campaigns require a daily, non-shared budget.
-
Set an average daily budget of at least three times your target CPA or cost per conversion.
-
A low budget relative to CPA can result in a slower ramp-up and fewer conversions.
A Performance Max campaign requires a budget like all other campaigns, but with the following restrictions:
Try an average daily budget of at least three times your CPA or cost per conversion for the conversion actions selected for your campaign. Generally, the budget should be consistent with other well-performing campaigns in your account. Learn more about choosing budget.
If a budget is too low relative to the CPA or cost per conversion, you might see a slower ramp-up period or fewer conversions over several days.
Java
/** Creates a MutateOperation that creates a new CampaignBudget. */ private MutateOperation createCampaignBudgetOperation ( long customerId ) { CampaignBudget campaignBudget = CampaignBudget . newBuilder () . setName ( "Performance Max campaign budget #" + getPrintableDateTime ()) // The budget period already defaults to DAILY. . setAmountMicros ( 50_000_000 ) . setDeliveryMethod ( BudgetDeliveryMethod . STANDARD ) // A Performance Max campaign cannot use a shared campaign budget. . setExplicitlyShared ( false ) // Set 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 )) . build (); return MutateOperation . newBuilder () . setCampaignBudgetOperation ( CampaignBudgetOperation . newBuilder (). setCreate ( campaignBudget ). build ()) . 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="budgetResourceName">The temporary resource name of the budget to /// create.</param> /// <returns>A MutateOperation that creates a CampaignBudget.</returns> private MutateOperation CreateCampaignBudgetOperation ( string budgetResourceName ) { MutateOperation operation = new MutateOperation { CampaignBudgetOperation = new CampaignBudgetOperation { Create = new CampaignBudget { Name = "Performance Max campaign budget #" + ExampleUtilities . GetRandomString (), // The budget period already defaults to DAILY. AmountMicros = 50000000 , // A Performance Max campaign cannot use a shared campaign budget. ExplicitlyShared = false , // Set a temporary ID in the budget's resource name so it can be referenced // by the campaign in later steps. ResourceName = budgetResourceName } } }; return operation ; }
PHP
private static function createCampaignBudgetOperation(int $customerId): MutateOperation { // Creates a mutate operation that creates a campaign budget operation. return new MutateOperation([ 'campaign_budget_operation' => new CampaignBudgetOperation([ 'create' => new CampaignBudget([ // 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 ), 'name' => 'Performance Max campaign budget #' . Helper::getPrintableDatetime(), // The budget period already defaults to DAILY. 'amount_micros' => 50000000, 'delivery_method' => BudgetDeliveryMethod::STANDARD, // A Performance Max campaign cannot use a shared campaign budget. 'explicitly_shared' => false ]) ]) ]); }

