Opportunity Analysis with Kratu

33
Google Inc. - All Rights Reserved

description

 

Transcript of Opportunity Analysis with Kratu

Page 1: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Page 2: Opportunity Analysis with Kratu

Account Performance & OptimizationFinding the needle in your haystack

<SPEAKER>, Google, Inc.

Page 3: Opportunity Analysis with Kratu

Agenda

● Optimization at scale● Keyword optimizations

● Targeting Idea Service● Traffic Estimator Service

● Discovering opportunities● Intro to Kratu● Demo

Page 4: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

How to Optimize?

Page 5: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Profile

Optimize

Measure

Optimization Cycle

Page 6: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Performance dataStructural data

ServicesAWQL AdHocReports

Profile

Optimize

Measure

Page 7: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

ProfileKratuCustom strategy

Predictive Analysis

Optimize

Measure

Page 8: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

AutomaticManualSemi Automatic

Profile

Optimize

Measure

Page 9: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Developing a solid reporting backend

Page 10: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Develop a pipeline! Two options.

1. Roll your own, or...

2. Use AwReporting○ Out of the box, open source solution ○ Pulls reports into your relational database

Regular, Automatic Reporting is Essential

Page 11: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

KeywordOptimizations

Page 12: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Targeting Idea Service

TargetingIdeaService

SearchParameter[ ]

TargetingIdeaSelectorKeyword / Placement

Ideas / Stats

AttributeType[ ] (fields)

TargetingIdea[ ]

Type_AttributeMapEntry[ ](field,value)

Page 13: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Search Parameters & FieldsSearchParameter[ ] AttributeType[ ] (fields)

● AdSpecList● CategoryProductsAndServices● Competition● ExcludedKeyword● IdeaTextFilter● IncludeAdultContent● Language● Location● Network ● PlacementType● RelatedToQuery● RelatedToUrl● SearchVolume● SeedAdGroupId

● Average Cpc● Average Targeted Monthly Searches● Category Products and Services● Competition● Criterion● Extracted from Webpage● Global Monthly Searches● Idea Type● Keyword Category● Keyword Text● Negative Keywords● Search Share● Search Volume● Targeted Monthly Searches

...

Page 14: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

ExampleLanguageSearchParameter = englishRelatedToUrlSearchParameter = http://www.someplumbers.com/LocationSearchParameter = uk

RequestType.IDEAS, IdeaType.KEYWORD

{AttributeType.KEYWORD_TEXT, AttributeType.SEARCH_VOLUME,AttributeType.AVERAGE_CPC ,AttributeType.COMPETITION}

Targeting Idea Service

KEYWORD_TEXT searchVol avgCPC Competition'london plumbing service' 16 5.13 0.858'london plumbing services' 46 9.41 0.765'emergency plumbing service' 28 6.71 0.912 ...

Page 15: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Traffic Estimator Service

criterionId, Min & Max StatsEstimates

campaignId

Traffic Estimator Service

CampaignEstimateRequest[ ]

TrafficEstimatorSelector

CampaignEstimate[ ]AdGroupEstimate[ ]

AdGroupEstimateRequest[ ]

KeywordEstimateRequest[ ]

KeywordEstimate[ ]

Criterion[ ], campaignId

adGroupId, maxCPC

keyword, maxCpc, isNegative

adGroupId

averageCpc, averagePosition, clicksPerDay, impressionsPerDay, clickThroughRate, totalCost

Page 16: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

ExamplecampaignEstimateRequest.setCriteria(new Criterion[] { uk, english });

adGroupEstimateRequest.setMaxCpc(new Money(null, 1000000)); // 1€

adGroupEstimateRequest.setKeywordEstimateRequests( ...'london plumbing service''emergency plumbing service london''emergency plumbing services london'... )...

Keyword avgCPC avgPosition dayClicks totalCost CTR dayImpressions

'london plumbing service', 0.87, 2.00, 0.02, 0.02, 0.04, 0.58'plumbing services london', 0.71, 8.56, 0.54, 0.39, 0.01, 49.33 ...

Traffic Estimator Service

Page 17: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Example Optimization - Epsilon Greedy

windshield repair

vehicle glass repair

car window repair

fix car glass

auto glass repair

car glass replacement

car glass

glass window

glasses repair

window repair

KW ResearchUsing TIS+TES

Automatic● Regular● Set and forget● Needs close monitoring

Semi-automatic● Manual lookup

● Suggest KWs for exchange

● KW Research can be manual

KW

Page 18: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Discovering Optimization Ideas with Kratu

Page 19: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

● Periodically visit their accounts

● Look for problems

● Experience tells them how to fix

● For accounts that are fine, waste of time

Most AMs Work in “PULL” Mode

Page 20: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

● Want to change this to a PUSH model

● Tell AMs what accounts need help

● Don’t worry about ones that are performing well

● Account Managers can do more in less time

PULL is Inefficient

Page 21: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Kratu - Open Source Issue and Opportunity Discovery

Page 22: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

● Open source - http://google.github.com/kratu/● End to end tutorial - http://google.github.

com/kratu/tutorial/● Client-side, runs in browser. Implemented in JavaScript.● Includes prebuilt working example for AdWords

● Created by experienced Google Account Managers● Used internally at Google.● Unmaintained sample code, use at own-risk.

Kratu

Page 23: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Demo!http://google.github.com/kratu/examples/adwordshealthcheck/

Page 24: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Kratu - Implementation

Web server

Reporting backend

FetchProcess

Store

/kratu/

/rest/accounts/

Data StorageMySql

MongoDB...

Page 25: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

● Easy to add other signals

● Add any key/value pair to your data, define a weight and a

threshold

● BYOD - Bring Your Own Data

● Anything that can be converted to a JS Array with key/value

objects

● Includes simple JSON and CSV loaders

Kratu - Flexible & Customizable

Page 26: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

● Flexible model● Compose new signals from multiple data points● Custom and built-in event handlers (integrate with

other systems)● Paginations for larger number of accounts● Use it to create reports

● Targeted, e.g., upselling opportunities, mobile adoption● Personalized, e.g., individual for Account managers

Kratu - Flexible & Customizable

Page 27: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

● https://github.com/googleads/aw-

reporting/tree/master/examples/kratubackend

● Rest backend for the Kratu project over MongoDB /

MySql

● Reuses the AwReporting project

● Get the benefits of both projects

Kratu - Backend example

Page 28: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Kratu - Json response[{

"lostISBudget": 0,"lostISRank": 90,"key": "7767761884-Search Network" ,"mccId": 2742928629,"timestamp": "Mar 6, 2013 8:51:08 AM" ,"accountId": 7767761884,"accountDescriptiveName": "Julian 1$-day","cost": 0,"clicks": 0,"impressions": 0,"conversions": 0,"ctr": 0,"avgCpm": 0,"avgCpc": 0,"avgPosition": 0,"currencyCode": "USD","adNetwork": "Search Network"

}]

Page 29: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

● Improved stability and ease of use of backend.

● Lovely new UI.

● Slightly more help and ease of writing your own signals.

New Version

Page 30: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

ResourcesCode and tutorials

http://google.github.io/kratu/http://google.github.io/kratu/tutorial/

Page 31: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Questions?

Page 32: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Page 33: Opportunity Analysis with Kratu

Google Inc. - All Rights Reserved

Kratu - Restlet example

router.attach("/accountreports/{accountId}", ReportRest.class);

String accountId = (String) getRequestAttributes().get("accountId");

@Getpublic JsonRepresentation getAccountPerformanceReportHandler() {

// Gets Reports from MongoDB or MySql as Java Objects List<Report> listAccountReports = Report.getReportByAccountIdMonth( accountId, date, "AccountReport");

String resultJsonList = gson.toJson(listAccountReports);

JsonRepresentation jsonRepresentation = new JsonRepresentation(resultJsonList); jsonRepresentation.setMediaType(MediaType.APPLICATION_JSON); return jsonRepresentation;}