Opportunity Analysis with Kratu

  • 183 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
183
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Google Inc. - All Rights Reserved
  • 2. Account Performance & Optimization Finding the needle in your haystack <SPEAKER>, Google, Inc.
  • 3. Agenda ● Optimization at scale ● Keyword optimizations ● Targeting Idea Service ● Traffic Estimator Service ● Discovering opportunities ● Intro to Kratu ● Demo
  • 4. Google Inc. - All Rights Reserved How to Optimize?
  • 5. Google Inc. - All Rights Reserved Profile Optimize Measure Optimization Cycle
  • 6. Google Inc. - All Rights Reserved Performance data Structural data ServicesAWQL AdHoc Reports Profile Optimize Measure
  • 7. Google Inc. - All Rights Reserved Profile Kratu Custom strategy Predictive Analysis Optimize Measure
  • 8. Google Inc. - All Rights Reserved Automatic Manual Semi Automatic Profile Optimize Measure
  • 9. Google Inc. - All Rights Reserved Developing a solid reporting backend
  • 10. 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
  • 11. Google Inc. - All Rights Reserved Keyword Optimizations
  • 12. Google Inc. - All Rights Reserved Targeting Idea Service TargetingIdeaService SearchParameter[ ] TargetingIdeaSelector Keyword / Placement Ideas / Stats AttributeType[ ] (fields) TargetingIdea[ ] Type_AttributeMapEntry[ ] (field,value)
  • 13. Google Inc. - All Rights Reserved Search Parameters & Fields SearchParameter[ ] 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 ...
  • 14. Google Inc. - All Rights Reserved Example LanguageSearchParameter = english RelatedToUrlSearchParameter = 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 ...
  • 15. 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
  • 16. Google Inc. - All Rights Reserved Example campaignEstimateRequest.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
  • 17. 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 Research Using TIS+TES Automatic ● Regular ● Set and forget ● Needs close monitoring Semi-automatic ● Manual lookup ● Suggest KWs for exchange ● KW Research can be manual KW
  • 18. Google Inc. - All Rights Reserved Discovering Optimization Ideas with Kratu
  • 19. 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
  • 20. 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
  • 21. Google Inc. - All Rights Reserved Kratu - Open Source Issue and Opportunity Discovery
  • 22. 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
  • 23. Google Inc. - All Rights Reserved Demo! http://google.github.com/kratu/examples/adwordshealthcheck/
  • 24. Google Inc. - All Rights Reserved Kratu - Implementation Web server Reporting backend Fetch Process Store /kratu/ /rest/accounts/ Data Storage MySql MongoDB ...
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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" }]
  • 29. 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
  • 30. Google Inc. - All Rights Reserved Resources Code and tutorials http://google.github.io/kratu/ http://google.github.io/kratu/tutorial/
  • 31. Google Inc. - All Rights Reserved Questions?
  • 32. Google Inc. - All Rights Reserved
  • 33. Google Inc. - All Rights Reserved Kratu - Restlet example router.attach("/accountreports/{accountId}", ReportRest.class); String accountId = (String) getRequestAttributes().get("accountId"); @Get public 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; }