Opportunity Analysis with Kratu

Post on 21-Jan-2015

227 views 0 download

Tags:

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;}