Opportunity Analysis with Kratu
-
Upload
marcwan -
Category
Technology
-
view
227 -
download
0
description
Transcript of Opportunity Analysis with Kratu
Google Inc. - All Rights Reserved
Account Performance & OptimizationFinding the needle in your haystack
<SPEAKER>, Google, Inc.
Agenda
● Optimization at scale● Keyword optimizations
● Targeting Idea Service● Traffic Estimator Service
● Discovering opportunities● Intro to Kratu● Demo
Google Inc. - All Rights Reserved
How to Optimize?
Google Inc. - All Rights Reserved
Profile
Optimize
Measure
Optimization Cycle
Google Inc. - All Rights Reserved
Performance dataStructural data
ServicesAWQL AdHocReports
Profile
Optimize
Measure
Google Inc. - All Rights Reserved
ProfileKratuCustom strategy
Predictive Analysis
Optimize
Measure
Google Inc. - All Rights Reserved
AutomaticManualSemi Automatic
Profile
Optimize
Measure
Google Inc. - All Rights Reserved
Developing a solid reporting backend
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
Google Inc. - All Rights Reserved
KeywordOptimizations
Google Inc. - All Rights Reserved
Targeting Idea Service
TargetingIdeaService
SearchParameter[ ]
TargetingIdeaSelectorKeyword / Placement
Ideas / Stats
AttributeType[ ] (fields)
TargetingIdea[ ]
Type_AttributeMapEntry[ ](field,value)
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
...
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 ...
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
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
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
Google Inc. - All Rights Reserved
Discovering Optimization Ideas 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
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
Google Inc. - All Rights Reserved
Kratu - Open Source Issue and Opportunity Discovery
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
Google Inc. - All Rights Reserved
Demo!http://google.github.com/kratu/examples/adwordshealthcheck/
Google Inc. - All Rights Reserved
Kratu - Implementation
Web server
Reporting backend
FetchProcess
Store
/kratu/
/rest/accounts/
Data StorageMySql
MongoDB...
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
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
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
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"
}]
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
Google Inc. - All Rights Reserved
ResourcesCode and tutorials
http://google.github.io/kratu/http://google.github.io/kratu/tutorial/
Google Inc. - All Rights Reserved
Questions?
Google Inc. - All Rights Reserved
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;}