1. New Bidding and
Budgeting in the
Adwords API
Tell us about the money....
Google Confidential and Proprietary
2. New Bidding and Budgeting
Google Confidential and Proprietary
3. Topics
Bidding: Shared Budgets:
Objectives History
New Bidding System Objective
Interface Interface
Migration from v201209 Migration from v201206
Examples Examples
Summary
Resources
Google Confidential and Proprietary
4. The New Bidding System
Objectives:
Provide a flexible framework for:
● Creating new bidding strategies for Campaigns
● Allowing transitions between strategies
● Report on strategy performance and optimize them
The goal is to do all of this while simplifying the existing workflows.
Google Confidential and Proprietary
5. The New Bidding System
Overview:
● Select your Strategy for how you want to bid
○ by clicks, conversions, views, etc
○ using an Optimizer?
○ using Enhanced Bidding?
● Select the Type or Scheme
○ Type is just a simple enum of available options
○ Scheme lets you configure more detail
● Apply your choices to your Campaign hierarchy
Google Confidential and Proprietary
6. The New Bidding System
Interfaces:
● Campaign / AdGroup / AdGroupCriterion
○ Now contain a BiddingStrategyConfiguration attribute
● Their Services have also changed to take advantage of them
● Bidding Strategy Transitions
○ Moving from one Bidding Strategy to another is now much simpler -
just change the Configuration.
Google Confidential and Proprietary
7. The New Bidding System
Interfaces:
● Specify a biddingScheme and/or a biddingType in the
BiddingStrategyConfiguration
● biddingScheme is most useful when scheme-specific settings
need to be provided (e.g. enabling Enhanced)
● biddingType is just an enum, so provides simpler control
● If you set both, they need to match, so the API can understand your
intentions.
Google Confidential and Proprietary
8. The New Bidding System
Bidding Strategies Bidding Schemes Bidding Type
Manual CPC ManualCpcBiddingScheme MANUAL_CPC
eCPC ManualCpcBiddingScheme
with .enhancedCpcEnabled set to true.
Budget Optimizer BudgetOptimizerBiddingScheme BUDGET_OPTIMIZER
Budget Optimizer with BudgetOptimizerBiddingScheme
eCPC with .enhancedCpcEnabled set to true.
Manual CPM ManualCpmBiddingScheme MANUAL_CPM
Conversion Optimizer ConversionOptimizerBiddingScheme CONVERSION_OPTIMIZER
(Target/Max CPA)
Percent CPA PercentCpaBiddingScheme PERCENT_CPA
Google Confidential and Proprietary
9. The New Bidding System
Bids:
● PercentCpaBid
● CpaBid
● CpcBid
● CpmBid
Bid Adjustments/Modifiers:
These Bids are then acted upon by the various Bid Adjustments
coming from the Enhanced Campaigns work and a future API
update. Adjustments as +/-% in the UI are bidModifiers as
multipliers in the API.
Google Confidential and Proprietary
10. The New Bidding System
For Display Only Campaigns, the Content Bid Dimension can have the
following Types:
● KEYWORD for targeting keywords
● USER_INTEREST_AND_LIST for targeting lists of users
● VERTICAL for targeting similar categories of placements
● GENDER for targeting gender.
● AGE_RANGE for targeting age ranges.
● PLACEMENT for targeting placements.
And rather than the correct Dimension being selected for you, you will
get to set which one takes priority in each AdGroup via the
contentBidCriterionTypeGroup attribute.
Google Confidential and Proprietary
11. The New Bidding System
Migration from v201209:
● For the Content Network, specify the dimension that should be
used for bids in the contentBidCriterionTypeGroup field.
● Ads on the Search Network will always use keyword bids.
● The implicit ordering used before to select which bid to use for an
AdGroupCriterion has been replaced with explicit bid selection
○ contentBidCriterionTypeGroup
○ BiddingStrategyConfiguration
Google Confidential and Proprietary
12. The New Bidding System
Migration from v201209:
● Automatic migration of bid ordering will use the old prioritization, so
should have minimal effect. After this you will have to set the Bid
Dimension manually, however.
● Reports have been altered to cover these changes, and so you
need to alter your code to allow for them, too
○ See the Reporting talk
Google Confidential and Proprietary
13. The New Bidding System
Examples: Setting Bids
// Create ad group bid.
BiddingStrategyConfiguration biddingStrategyConfiguration
= new BiddingStrategyConfiguration();
CpmBid bid = new CpmBid();
bid.setBid(new Money(null, 10000000L));
biddingStrategyConfiguration.setBids(new Bids[] {bid});
adGroup.setBiddingStrategyConfiguration(
biddingStrategyConfiguration);
// Create operation, as usual...
Google Confidential and Proprietary
14. The New Bidding System
Examples: Bidding Strategy Transitions
// Create a new local Campaign object.
Campaign campaign = new Campaign();
campaign.setId(campaignId);
// Create a new biddingStrategyConfiguration.
BiddingStrategyConfiguration biddingStrategyConfiguration
= new BiddingStrategyConfiguration();
// You can specify either type or scheme, or both.
biddingStrategyConfiguration.setBiddingScheme(
new ManualCpcBiddingScheme());
campaign.setBiddingStrategyConfiguration(
biddingStrategyConfiguration);
// Do the usual Operation set and mutate steps...
Google Confidential and Proprietary
16. Shared Budgets
History:
Budgets pre-v201209 were each linked to a specific Campaign, and
managed through the CampaignService.
AdWords allowed one separate Budget per Campaign, but that wasn't
necessarily how advertisers wanted to manage their spend.
Google Confidential and Proprietary
17. Shared Budgets
Objective:
Advertisers wanted Campaigns to reference a Budget that can be
theirs alone, or shared among a number of other Campaigns in the
same Account.
This makes it easier to match your AdWords spending with how
your business allocates marketing budget.
Google Confidential and Proprietary
18. Shared Budgets
Interface:
● Budget
○ Has a name and ID
○ Holds a list and count of Campaigns attached to it
○ Can't be Deleted while Campaigns still reference it
● BudgetService
○ GET and MUTATE Budgets
● Campaign
○ Now has a Budget field to reference its Budget
Google Confidential and Proprietary
19. Shared Budgets
Migration from v201206:
● You have to start using the BudgetService to manage Budgets
○ even if the Budget won't be shared
● Create the Budget before you create a new Campaign
○ use the returned Budget in the Mutate call to the CampaignService
● Remember to include BudgetId and BudgetName in Selectors
● Don't include Fields in Selectors or Predicates that don't exist
○ these will now fail with INVALID_FIELD_NAME errors
● Shared Budgets are not compatible with Experiments
○ unless the Budget is only used by one Campaign
Google Confidential and Proprietary
20. Shared Budgets
Examples - Budget Creation:
// Get the BudgetService.
BudgetServiceInterface budgetService =
adWordsServices.get(session,BudgetServiceInterface.
class);
// Create a shared budget
Budget sharedBudget = new Budget();
sharedBudget.setName("My Budget");
Money budgetAmount = new Money();
budgetAmount.setMicroAmount(50000000L);
sharedBudget.setAmount(budgetAmount);
sharedBudget.setDeliveryMethod(
BudgetBudgetDeliveryMethod.STANDARD);
sharedBudget.setPeriod(BudgetBudgetPeriod.DAILY);
Google Confidential and Proprietary
21. Shared Budgets
Examples - Add the Budget:
BudgetOperation budgetOperation = new BudgetOperation();
budgetOperation.setOperand(sharedBudget);
budgetOperation.setOperator(Operator.ADD);
// Add the Budget and keep its Id
Long budgetId = budgetService.mutate(
new BudgetOperation[]{budgetOperation})
.getValue(0)
.getBudgetId();
// Get the CampaignService.
CampaignServiceInterface campaignService =
adWordsServices.get(session,
CampaignServiceInterface.class);
Google Confidential and Proprietary
22. Shared Budgets
Examples - Campaign Creation:
// Create campaign.
Campaign campaign = new Campaign();
campaign.setName("My Campaign");
campaign.setStatus(CampaignStatus.PAUSED);
campaign.setAdServingOptimizationStatus(
AdServingOptimizationStatus.ROTATE);
campaign.setFrequencyCap(
new FrequencyCap(5L, TimeUnit.DAY, Level.ADGROUP));
Budget budget = new Budget();
budget.setBudgetId(budgetId);
campaign.setBudget(budget);
// Create operations and call mutate() to add as usual...
Google Confidential and Proprietary
23. Summary
● Enhanced Campaigns meet Enhanced Bidding
● Bidding Management has started down the road to a more
powerful future, with more to come
● Bidding Transitions are easier now
● New Services help you to get better results
● Budgets can now be shared between Campaigns
Google Confidential and Proprietary