API Update Rundown

45
AdWords API Workshops – All rights reserved

description

AdWords API Workshops Q4 2013 API Update Rundown slides.

Transcript of API Update Rundown

Page 1: API Update Rundown

AdWords API Workshops – All rights reserved

Page 2: API Update Rundown

AdWords API Workshops – All rights reserved

AdWords API Features UpdateWhat’s new, out of beta, and noteworthy

Marc Wandschneider, Google Inc.<SPEAKER>, Google, Inc.

Page 3: API Update Rundown

AdWords API Workshops – All rights reserved

● Some new features

○ Offline conversions import & tracking

○ New reporting types and fields

○ Shared budget changes

Latest Release Highlights

Page 4: API Update Rundown

AdWords API Workshops – All rights reserved

● Other noteworthy changes:

○ Names mandatory on Campaigns and AdGroups

○ Can no longer toggle search network for NetworkSetting

○ Stats objects are no longer available via services

Latest Release Highlights (cont’d)

Page 5: API Update Rundown

AdWords API Workshops – All rights reserved

● Five features graduated from beta

○ Display criteria bid modifiers

○ Dynamic Search Ads

○ AdGroup level feeds (site links)

○ Flexible bidding strategies

○ Location bid modifiers

Latest Release Highlights (cont’d)

Page 6: API Update Rundown

AdWords API Workshops – All rights reserved

New Features

Page 7: API Update Rundown

AdWords API Workshops – All rights reserved

● Allows you to register conversions by hand● Might have been manual conversion● Maybe your conversion tracker works differently

● Can register conversions up to 90 days after the click● Exact value is configurable

● Conversions can be used for● Flexible bidding● Conversion reporting (aka search funnels)

Offline Conversion Import

Page 8: API Update Rundown

AdWords API Workshops – All rights reserved

● Basic procedure

a. Register to receive GCLID with auto-tagging

b. Store incoming click ID as lead in your database

c. When conversion occurs, mark as converted in DB

d. Periodically run code to upload these conversions to API

Offline Conversion Import (cont’d)

Page 9: API Update Rundown

AdWords API Workshops – All rights reserved

● To Upload a conversion, two steps:

a. Create Import conversion type■ via UI or ConversionTrackerService

b. Report (upload) the conversion

Offline Conversion Import (cont’d)

Page 10: API Update Rundown

AdWords API Workshops – All rights reserved

Create Import Conversion Type (Code)

UploadConversion uc = new UploadConversion();

uc.setCategory(ConversionTrackerCategory.SIGNUP);

uc.setName("Freemium signup");

uc.setViewthroughLookbackWindow(30);

uc.setCtcLookbackWindow(90);

ConversionTrackerService.mutate(ADD, uc);

// NOTE: wait 6 hours after creating before uploading.

Page 11: API Update Rundown

AdWords API Workshops – All rights reserved

OfflineConversionFeed feed = new OfflineConversionFeed();

feed.setConversionName("Freemium signup");

feed.setConversionTime(conversionTime);

feed.setGoogleClickId(gClid);

feed.setConversionValue(3.50); // optional, > 0

OfflineConversionFeedService.mutate(ADD, feed);

// conversion can take up to 3 hours to be processed fully

Report Offline Conversion

Page 12: API Update Rundown

AdWords API Workshops – All rights reserved

Other Noteworthy Changes

Page 13: API Update Rundown

AdWords API Workshops – All rights reserved

● Now mandatory field

● It’s up to you to guarantee unique

among your campaigns

● Not adding will cause an error

● (that’s it)

Campaign and AdGroup Names

Page 14: API Update Rundown

AdWords API Workshops – All rights reserved

● Display only campaigns have evolved over time

● Can now no longer toggle search for NetworkSetting

● Will throw TargetError.TARGET_ERROR

● Can still toggle display network

● Only affects you if you’re changing NetworkSetting for

existing campaigns

NetworkSetting and Search

Page 15: API Update Rundown

AdWords API Workshops – All rights reserved

● Many services (7) used to contain Stats objects

● i.e. AdGroupService ,CampaignService, MutateJobService

● No longer there, will return an error

● Use reporting instead to get statistics

● Reporting API is extremely easy to use

● You should already be using it!

Stats Objects Going Away

Page 16: API Update Rundown

AdWords API Workshops – All rights reserved

● As of v201309, it is now possible to create ‘individual’ (non-shared) budgets

● As of v201302, a boolean field was added to the Budget object to support this: isExplicitlyShared

● The isExplicitlyShared value is now honoured● Set isExplicitlyShared = false to create an individual budget

● Default value: isExplicitlyShared = true

Individual Campaign Budgets Are Back...

Page 17: API Update Rundown

AdWords API Workshops – All rights reserved

● Individual budgets will not appear in the AdWords UI ‘Shared Library’

● They cannot be shared unless converted to a shared budget by setting isExplicitlyShared = true

● Shared budgets cannot be converted to Individual budgets

● Individual Budgets are automatically deleted when the Campaign is deleted○ BudgetService.mutate(REMOVE op) not required

Why Create Individual Campaign Budgets?

Page 18: API Update Rundown

AdWords API Workshops – All rights reserved

● Campaigns using Budget Optimizer or Campaign Experiments cannot share budgets

● Individual budgets enforce this

Why Create Individual Campaign Budgets?

Page 19: API Update Rundown

AdWords API Workshops – All rights reserved

Features graduated from beta

Page 20: API Update Rundown

AdWords API Workshops – All rights reserved

● BiddableAdGroupCriterion.bidModifier !!

● For modifying bids for certain Display Network segments

● Can modify bids for specific placements / audiences

● RLSAs too!

● Won’t work for keywords or other criterion types

1. Display Criteria Bid Modifiers

Page 21: API Update Rundown

AdWords API Workshops – All rights reserved

● Ads that serve based on your sites’ content● Don’t need to add headline, destination URL, or keywords● You provide only descriptions, display URL

● Same ranking — performs same as other search ads● Work within keyword-based campaigns

● Can provide DSAs as “catch-all” for non-matched keywords● Can still use negative keywords, reporting, extensions

2. Dynamic Search Ads

Page 22: API Update Rundown

AdWords API Workshops – All rights reserved

● Create Campaigns and AdGroups as before

● Feel free to add keyword criteria

● For DSAs, you need three things:

● DomainInfoExtension

● One or more Webpage Criteria

● DynamicSearchAds

Dynamic Search Ads (cont’d)

Page 23: API Update Rundown

AdWords API Workshops – All rights reserved

● Create Ad of type DynamicSearchAd● Provide description1, description2, displayUrl● One trick: If you provide url must use parameterised

value● Can update, change status, etc

Dynamic Search Ads (cont’d)

Page 24: API Update Rundown

AdWords API Workshops – All rights reserved

● url parameter, if provided, needs a parameter● One of the following values:

● {unescapedlpurl} — Used at beginning, replaces entire URL● {unescapedlpurl}?lang=en

● {escapedlpurl} — UR- encoded version, i.e. for trackers● http://www.3rdpartytracker.com/?lp={escapedlpurl}

● {lpurlpath} — Only path and query part of landing page URL● http://www.mygoodbusiness.com/tracking/{lpurlpath}

● If you don’t provide url, {unescapedlpurl} used

Dynamic Search Ads (cont’d)

Page 25: API Update Rundown

AdWords API Workshops – All rights reserved

DynamicSearchAd dsa = new DynamicSearchAd();dsa.url = "{unescapedlpurl}?source=dsa";dsa.displayUrl = "amazingcarrepairs.com";dsa.description1 = "We'll take good care of your car";dsa.description2 = "Wash and wax service included.";

AdGroupAd aga = new AdGroupAd(_adgroupid);aga.ad = dsa;

AdGroupService.mutate(ADD, aga);

Dynamic Search Ads (cont’d)

Page 26: API Update Rundown

AdWords API Workshops – All rights reserved

● Add criteria of type Webpage

● Can target by title, content, URL, etc.

● Can also add negative Webpage criteria

● Don’t serve against these pages, etc.

Dynamic Search Ads (cont’d)

Page 27: API Update Rundown

AdWords API Workshops – All rights reserved

WebpageCondition cond = new WebpageCondition();cond.operand = URL; // filter on URLs, equal to "CONTAINS"cond.argument = "/grandcherokee";

WebpageParameter param = new WebpageParameter();param.criterionName = "Jeep Grand Cherokee";param.conditions = [ cond ];

Webpage wp = new Webpage(); // the criterionwp.parameter = param;// can now put in AdGroupCriterion object and ADD!

Dynamic Search Ads (cont’d)

Page 28: API Update Rundown

AdWords API Workshops – All rights reserved

● Caveat:● DSAs depend on a DomainInfoExtension

● These are Campaign Ad Extensions

● These are NOT creatable via API● Must use UI

● Can create DSAs against existing DomainInfoExtension● Can get stats & update fields on existing DSAs

Dynamic Search Ads (cont’d)

Page 29: API Update Rundown

AdWords API Workshops – All rights reserved

● Can now use AdGroupFeedService

● Add site links to individual AdGroups

● (that’s about it, really)

3. AdGroup Level Feeds

Page 30: API Update Rundown

AdWords API Workshops – All rights reserved

● Currently bidding strategies are per campaign

● You create a new object and pass that to new campaign

● Would be nice if we could create a pool of them

● Be able to use same configuration across campaigns

● Try out different strategies in different situations

● Flexible Bidding Strategies to the rescue

● Think “shared”

4. Flexible Bidding Strategies

Page 31: API Update Rundown

AdWords API Workshops – All rights reserved

Flexible Bidding Strategies (cont’d)

Page 32: API Update Rundown

AdWords API Workshops – All rights reserved

Flexible Bidding Strategies (cont’d)

Page 33: API Update Rundown

AdWords API Workshops – All rights reserved

● BiddingStrategyService is the pool

● Create a SharedBiddingStrategy object

● Contains biddingScheme as you’re used to● I.e. TargetSpendBiddingScheme

● For Campaign.biddingStrategyConfiguration

● You just use bidding strategy ID from the shared object

Flexible Bidding Strategies (cont’d)

Page 34: API Update Rundown

AdWords API Workshops – All rights reserved

// 1. create the shared bidding strategy.TargetSpendBiddingScheme tsbs = new TargetSpendBiddingScheme();tsbs.spendTarget = 250000000; // $250 a monthtsbs.bidCeiling = 2500000; // max 2.50$ bid

SharedBiddingStrategy sbs = new SharedBiddingStrategy();sbs.name = "Monthly targeted spend";sbs.type = TARGET_SPEND;sbs.biddingScheme = tsbs;

BiddingStrategyService.mutate(ADD, sbs); // extract result

Flexible Bidding Strategies (cont’d)

Page 35: API Update Rundown

AdWords API Workshops – All rights reserved

// 2. add it to the campaign.

Campaign c = new Campaign();

// set up stuff on c

BiddingStrategyConfiguration bsc = new

BiddingStrategyConfiguration();

bsc.biddingStrategyId = sbs.id;

c.biddingStrategyConfiguration = bsc;

CampaignService.mutate(ADD, c);

Flexible Bidding Strategies (cont’d)

Page 36: API Update Rundown

AdWords API Workshops – All rights reserved

● Set different bids for

different locations

● All within the comfort of one

campaign

5. Location Bid Modifiers

Page 37: API Update Rundown

AdWords API Workshops – All rights reserved

Location Bid Modifiers (cont’d)

// 1. normal location criterion.LocationCriterion lc = new Location();lc.id = 1002451; // Toronto, Ontario, Canadalc.bidModifier = 1.0;

CampaignCriterion cc = new CampaignCriterion();cc.campaignId = _campaignId;cc.criterion = lc;CampaignCriterionService.mutate(ADD, cc);

Page 38: API Update Rundown

AdWords API Workshops – All rights reserved

Location Bid Modifiers (cont’d)

// 2. let's bid more for successful suburbLocationCriterion lc = new Location();lc.id = 1002350; // Mississauga, Ont, Can

CampaignCriterion cc = new CampaignCriterion();cc.campaignId = _campaignId;cc.criterion = lc;cc.bidModifier = 1.5; // bid 50% more for hereCampaignCriterionService.mutate(ADD, cc);

Page 39: API Update Rundown

AdWords API Workshops – All rights reserved

The NeglectedDon’t forget about these features

Page 40: API Update Rundown

AdWords API Workshops – All rights reserved

● Negative Keywords

● Site Links (now via Feed Services)

● Implementing these will help with QS, CTR, relevance

● A simple way to help you serve more effectively

A Couple of Frequently Unused Features

Page 41: API Update Rundown

AdWords API Workshops – All rights reserved

Negative Keywords

// Create keyword. We're creating ads for “Westminster dentist”.

Keyword keyword = new Keyword();

keyword.setText("reviews");

keyword.setMatchType(KeywordMatchType.BROAD);

// Create negative campaign criterion.

NegativeCampaignCriterion ncc = new NegativeCampaignCriterion();

ncc.setCampaignId(_campaignId);

ncc.setCriterion(keyword);

CampaignCriterionService.mutate(ADD, ncc);

Page 42: API Update Rundown

AdWords API Workshops – All rights reserved

● Now part of Feed Services

● Separate talk later today

Site Links

Page 43: API Update Rundown

AdWords API Workshops – All rights reserved

Helpful Links

Google Ads v201309 Blog Post - http://goo.gl/TvNQDxv201309 Migration Guide - http://goo.gl/e4O7YZ

Page 44: API Update Rundown

AdWords API Workshops – All rights reserved

Questions?

Page 45: API Update Rundown

AdWords API Workshops – All rights reserved