44
Google Inc. - All Rights Reserved

Bid Estimation with the AdWords API (v2)

  • Upload
    marcwan

  • View
    946

  • Download
    2

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Page 2: Bid Estimation with the AdWords API (v2)

Bid Estimation with the APIMaintaining highly performing AdWords ads

Joel Toby, Google, Inc.

Page 3: Bid Estimation with the AdWords API (v2)

Agenda

● Bid Estimation Objectives

● Achieving These Objectives

● Services Available Via the API

● Utilizing Estimates for a New Campaign

● Optimizing Existing Campaigns

Page 4: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Bid Estimation Objectives

Page 5: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

1. Create relevant ad campaigns that drive high volumes of quality traffic

2. Maximise ROI by minimizing CPC

3. Maintain and constantly improve these campaigns

4. Achieve all of the above efficiently and scalably

Bid Estimation Objectives

Page 6: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Achieving these objectives

Page 7: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

1. Relevant campaigns, high traffic volumes

2. Maximise ROI by minimizing CPC

3. Maintain and improve campaigns

4. Efficiently and scalably

The Importance of Quality Score

Directly affected by Quality Score

Page 8: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

What does Quality Score influence?

EligibilityDetermines whether an ad is

eligible to enter the auction for that query

PositionDetermines relative position of an ad in relation to other ads

on that result page

PriceA better Quality Score reduces

the price you need to bid to maintain a given position

Top SlotOnly high quality ads are

eligible to appear above the natural search results

Page 9: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

What contributes to Quality Score?

Quality Score range: 1 - 10

Quality Score

Clickthrough rate * Relevance Landing Page

* Clickthrough rate (CTR) is the most important factor

Page 10: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

● Some of the useful data exposed by the API○ Keyword Ideas○ Keyword historic stats data○ Traffic estimate data○ Cost and clickthrough rate estimates○ Keyword search volume estimates

The Available Data

Page 11: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

API Estimation Data Services

Page 12: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

● TargetingIdeaService (TIS)○ Generate new keyword ideas based on parameters○ Retrieve historic statistics for existing keywords based on

parameters

● TrafficEstimatorService (TES)○ Retrieve traffic estimates for proposed or existing campaigns, ad

groups, and keywords

● Report data○ Often combined with estimates data when optimizing campaigns

Targeting Idea and Traffic Estimator Service

Page 13: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

TargetingIdeaService RequestsTargetingIdeaSelector - Key components

SearchParameters[]RelatedToQuerySearchParameter

LocationSearchParameter

RelatedToUrlSearchParameter

ExcludedKeywordSearchParameter

RequestedAttributeTypesSEARCH_VOLUME

AVERAGE_CPC

COMPETITION

KEYWORD_TEXT

RequestTypeIDEAS

STATS

IdeaType

CurrencyCode

Page 14: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

TrafficEstimatorService RequestsTrafficEstimatorSelector

campaignEstimateRequests

adGroupEstimateRequests

keywordEstimateRequests

Page 15: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

CampaignEstimateRequestTrafficEstimatorSelector

campaignEstimateRequests

adGroupEstimateRequests

keywordEstimateRequests

campaignId

dailyBudget

criteria

networkSetting

Page 16: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

AdGroupEstimateRequestTrafficEstimatorSelector

campaignEstimateRequests

adGroupEstimateRequests

keywordEstimateRequestsadGroupId

maxCpc

Page 17: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

KeywordEstimateRequestTrafficEstimatorSelector

campaignEstimateRequests

adGroupEstimateRequests

keywordEstimateRequestsisNegative

maxCpc

Page 18: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Building a new campaignAn real-world example

Page 19: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Example: A New Campaign

● The business○ A bakery○ Based in New York○ Has a website

● Use the TargetingIdeaService to○ Get some good keyword ideas○ Evaluate some existing keyword ideas

● Use the TrafficEstimateService to○ Plug keywords into a complete campaign and estimate traffic

volumes and cost

Page 20: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

// Building the request, first the SelectorTargetingIdeaSelector selector = new TargetingIdeaSelector();selector.setRequestType(RequestType.IDEAS);selector.setIdeaType(IdeaType.KEYWORD);selector.setRequestedAttributeTypes(new AttributeType[] {

AttributeType.KEYWORD_TEXT,AttributeType.SEARCH_VOLUME,AttributeType.AVERAGE_CPC,AttributeType.COMPETITION

});

JAVA

TargetingIdeaService: Get Keyword Ideas

Page 21: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

// Paging is required for the targeting idea service.Paging paging = new Paging();paging.setStartIndex(0);paging.setNumberResults(15);selector.setPaging(paging);

JAVA

TargetingIdeaService: Get Keyword Ideas

Page 22: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

// Get ideas related to query search parameter.RelatedToQuerySearchParameter relatedToQuerySearchParameter =

new RelatedToQuerySearchParameter();relatedToQuerySearchParameter.setQueries(new String[]

{"bakery", "pastries", "birthday cake"});

JAVA

TargetingIdeaService: Get Keyword Ideas

Page 23: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

LocationSearchParameter locationParameter = new LocationSearchParameter();

Location newYork = new Location();newYork.setId(1023191l); // code for New York *locationParameter.setLocations(new Location[] {newYork});

CategoryProductsAndServicesSearchParameter categoryParameter =new CategoryProductsAndServicesSearchParameter();

categoryParameter.setCategoryId(13693); // Cat ID for ‘Bakeries’*

JAVA

* See ‘Appendix A: Criteria Codes’ in API docs:https://developers.google.com/adwords/api/docs/appendix/productsservices

TargetingIdeaService: Get Keyword Ideas

Page 24: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

// Sending the RequestRelatedToUrlSearchParameter urlParameter =

new RelatedToUrlSearchParameter();urlParameter.setUrls(new String[] {"http://newyorkbakery.com/"});

selector.setSearchParameters(new SearchParameter[] {relatedToQuerySearchParameter,locationParameter, categoryParameter});

// Get keywords ideas.TargetingIdeaPage page = targetingIdeaService.get(selector);

JAVA

TargetingIdeaService: Get Keyword Ideas

Page 25: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

// Parsing the results// Parse keyword ideas data.if (page.getEntries() != null && page.getEntries().length > 0) {

for (TargetingIdea targetingIdea : page.getEntries()) {Map<AttributeType, Attribute> data =

Maps.toMap(targetingIdea.getData());

StringAttribute keyword = (StringAttribute) data.get(AttributeType.

KEYWORD_TEXT);

JAVA

TargetingIdeaService: Get Keyword Ideas

Page 26: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

JAVA

long averageMonthlySearches =((LongAttribute) data.get(AttributeType.SEARCH_VOLUME))

.getValue();

Money averageCpc =((MoneyAttribute) data.get(AttributeType.AVERAGE_CPC))

.getValue();

double competition =((DoubleAttribute) data.get(AttributeType.COMPETITION))

.getValue();

TargetingIdeaService: Get Keyword Ideas

Page 27: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Keyword textAvg monthly

search volumeAverage

CPC Competitioncake bakery 170 0.485384 0.41bakery story 390 0.069918 0.12specialty cakes 90 0.510527 0.8local bakeries 40 0.187052 0.41online bakery 70 0.652462 0.8bakery names 70 0.074779 0.19creative cakes 210 1.009925 0.15french pastries 260 0.231775 0.16bakery cakes 70 0.405006 0.51

TargetingIdeaService: Get Keyword Ideas

Page 28: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

TargetingIdeaService: Get stats for existing keywordsStats request differences

● RequestType = STATS● Some SearchParameters are not compatible with

STATS requests and cannot be used● CategoryProductsAndServicesSearchParameter

Stats results differences● No new keyword ideas will be returned● Result contains stats for the request keywords

Page 29: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Keyword textAvg monthly

search volumeAverage

CPC Competitionbirthday cakes nyc 390 0.507404 0.65

TIS: Keyword Stats Results

Page 30: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Traffic Estimates for a New Campaign

● The business○ A bakery○ Based in New York○ Has a website

● Use the TargetingIdeaService to○ Get some good keyword ideas○ Evaluate some existing keyword ideas

● Use the TrafficEstimatorService to○ Plug keywords into a complete campaign and estimate traffic

volumes and cost

Page 31: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

JAVA// Create an Keyword estimate request.List<KeywordEstimateRequest> keywordEstimateRequests =

new ArrayList<KeywordEstimateRequest>();

for(String keywordText : candidateKeywords) {Keyword keyword = new Keyword(null, null, null,

keywordText, KeywordMatchType.BROAD);

KeywordEstimateRequest keywordEstimateRequest = new KeywordEstimateRequest();

keywordEstimateRequest.setKeyword(keyword);keywordEstimateRequests.add(keywordEstimateRequest);

}

TrafficEstimatorService

Page 32: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

JAVA// Create an AdGroup estimate request.List<AdGroupEstimateRequest> adGroupEstimateRequests =

new ArrayList<AdGroupEstimateRequest>();AdGroupEstimateRequest adGroupEstimateRequest =

new AdGroupEstimateRequest();

adGroupEstimateRequest.setKeywordEstimateRequests(keywordEstimateRequests.toArray(

new KeywordEstimateRequest[] {}));adGroupEstimateRequest.setMaxCpc(new Money(null, 600000L));adGroupEstimateRequests.add(adGroupEstimateRequest);

TrafficEstimatorService

Page 33: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

JAVA

// Create a campaign estimate request.List<CampaignEstimateRequest> campaignEstimateRequests =

new ArrayList<CampaignEstimateRequest>();CampaignEstimateRequest campaignEstimateRequest =

new CampaignEstimateRequest();

campaignEstimateRequest.setAdGroupEstimateRequests(adGroupEstimateRequests

.toArray(new AdGroupEstimateRequest[] {}));

TrafficEstimatorService

Page 34: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

JAVA

// Build the CampaignEstimateRequestsLocation newYork = new Location();newYork.setId(1023191l);Language english = new Language();english.setId(1000L);campaignEstimateRequest.setCriteria(new Criterion[]

{newYork, english});

campaignEstimateRequests.add(campaignEstimateRequest);

TrafficEstimatorService

Page 35: Bid Estimation with the AdWords API (v2)

HTML

Google Inc. - All Rights Reserved

JAVA

// Create Selector.TrafficEstimatorSelector selector = new

TrafficEstimatorSelector();selector.setCampaignEstimateRequests(

campaignEstimateRequests.toArray(new CampaignEstimateRequest[] {}));

// Get traffic estimates.TrafficEstimatorResult result =

trafficEstimatorService.get(selector);

TrafficEstimatorService

Page 36: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

TrafficEstimatorResult

● TrafficEstimatorResult is a nest of objects that reflects the request

● StatsEstimates are contained only within the KeywordEstimates returned.

● Each KeywordEstimate contains two StatsEstimates: upper and lower bound estimates

Page 37: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

The StatsEstimate object

StatsEstimateaverageCpcaveragePositionclicksPerDayimpressionsPerDayclickThroughRatetotalCost

Page 38: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Campaign Optimization

Page 39: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Optimizing the new campaign

● Once campaigns have been serving for a while, they should be optimized.

● Reports provide ‘actual’ performance data including data not available in estimates○ QualityScore○ Conversions

KeywordPerfReport

SearchQueryReport

CriteriaPerfReport

Page 40: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

A simple, effective way to optimize

● Use report data to remove low QualityScore keywords● This will improve the performance of your campaigns

Click volume increase of 26%with a 62% improvement in CTR

290 real accounts were recently optimized in this way with great results:

Page 41: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

You might then use the TES and TIS to replace keywords with new ones

Back To Estimates...

Estimate Data

Report Data

Remove Keywords

New Keywords

Page 42: Bid Estimation with the AdWords API (v2)

Google Inc - All Rights Reserved

ResourcesGuides

Using Keyword Planner to get keyword ideas and traffic estimates -https://support.google.com/adwords/answer/2999770?rd=1

Understanding your Keyword Planner statistics and traffic estimates -https://support.google.com/adwords/answer/3022575

Page 43: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved

Questions?

Page 44: Bid Estimation with the AdWords API (v2)

Google Inc. - All Rights Reserved