SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
AdWords API Workshops 2013


Account Performance &
Optimization
Finding the needle in your haystack




                             Google Confidential and Proprietary
Overview
1. How to Optimize
    ○   The Optimization Cycle

2. Developing a solid reporting backend
    ○   Reporting Workflow
    ○   Strategies for scaling, processing and storage
    ○   Introduction to sample applications

3. Keyword Optimizations
    ○   What are TIS and TES
    ○   Discovering good ideas with TIS and TES
    ○   Automated keyword optimizations strategy

4. Discovering optimization opportunities with Kratu
    ○   Introduction to Kratu
    ○   AdWords Optimization Report in Kratu
    ○   Kratu backend example



                                                         Google Confidential and Proprietary
How to Optimize?




      Google Confidential and Proprietary
Measure                Profile
      Optimization Cycle




       Optimize

                            Google Confidential and Proprietary
Measure                       Profile
     Performance data
     Structural data
             AdHoc
      AWQL             Services
             Reports




       Optimize

                                   Google Confidential and Proprietary
Measure                     Profile
     Kratu
     Custom (eg. Epsilon)

     Predictive Analysis




       Optimize

                                 Google Confidential and Proprietary
Measure               Profile
     Automatic
     Manual
     Semi Automatic



       Optimize

                           Google Confidential and Proprietary
Developing a solid reporting backend

                            Google Confidential and Proprietary
Reporting Workflow                      MCC Info




                                        Managed
     List<ManagedCustomer>              Customer
                                         Service




Report Definition

  ReportType

                                                    Report                  Data Storage
  DateRange         Report Downloader              Processor                    MySql
                                                                               MongoDB
                                                                                  ...
     Fields
                         n-Threads



                                                               Google Confidential and Proprietary
Report                 Data Storage
 Report Downloader              Processor                  MySql
                                                          MongoDB
                                                             ...


      n-Threads

                        Process local temp files
                                                   Keys must guarantee
Based on                Parses rows using a        Uniqueness per
MultipleClient          CSVReader                  ReportRow
ReportDownloader                                   (Date/Day, Segments)
example                 Write calls to Storage
                        must be in batches         Rows Updates are
Each Thread runs a                                 frequent
ReportDownloder with:   Batch size depends on
                        technology/memory          Create indexes for:
 ●   AdWordsSession
 ●   ClientCustomerId   Shard data based on         ●    AccountId
 ●   ReportDefinition   account, subMCCs, dates     ●    Date/Day
 ●   CSV & GZip         or common attributes        ●    CampaignId
                                                    ●    Segments...



                                                        Google Confidential and Proprietary
Implementing a MySql ReportProcessor
connection.setAutoCommit( false);
statement.execute(" SET UNIQUE_CHECKS=0; ALTER TABLE ... DISABLE KEYS;");
for (File file : localFiles) {
  preparedStatement = "INSERT INTO .. (.) VALUES (.) ON DUPLICATE KEY UPDATE
(.)";

    CSVReader csvReader = new CSVReader(new InputStreamReader (new FileInputStream
(
          file.getAbsolutePath() + ".gunzip"), " UTF-8"), ',', '"', 1);

    reportRows = new ModifiedCsvToBean <Report>(). parseReport(mapping, csvReader);

  for (Report reportItem : reportRows) {
     addInsertToBatch(reportItem, preparedStatement);
    // Executing the Batch every 500 inserts to reduce memory usage
    if (batchSize++ >= 500) {
       preparedStatement.executeBatch();
       connection.commit();
       batchSize = 0;
    }
  }...
}...
statement.execute(" SET UNIQUE_CHECKS=1; ALTER TABLE ... ENABLE KEYS;");
                                                               Google Confidential and Proprietary
Implementing a MongoDB ReportProcessor

for (File file : localFiles) {

    CSVReader csvReader = new CSVReader(new InputStreamReader(
          new FileInputStream(file),"UTF-8"), ',', '"', 1);

    List<Report> reportObjectList =
      ModifiedCsvToBean<Report>().parseReport(mapping, csvReader);

    csvReader.close();


    // Save in MongoDB (there is also an AppEngine implementation)
    // Iterates using Google Gson: gsonBuilder.create().toJson(Object)
    // and DBObject: com.mongodb.util.JSON.parse(jsonObject)
    noSqlStorage.save(reportObjectList);
}



                                                       Google Confidential and Proprietary
Keyword
Optimizations




     Google Confidential and Proprietary
TIS                                 SearchParameter[ ]

                                   Keyword / Placement
      TargetingIdeaSelector
                                         Ideas / Stats

                                   AttributeType[ ] (fields)


       Targeting Idea
          Service


         TargetingIdea[ ]
       Type_AttributeMapEntry[ ]
              (field,value)


                                   Google Confidential and Proprietary
TIS - Search Parameters & Fields

  SearchParameter[ ]                AttributeType[ ] (fields)


  ●   AdSpecList                    ●   Average Cpc
  ●   CategoryProductsAndServices   ●   Average Targeted Monthly Searches
  ●   Competition                   ●   Category Products and Services
  ●   ExcludedKeyword               ●   Competition
  ●   IdeaTextFilter                ●   Criterion
  ●   IncludeAdultContent           ●   Extracted from Webpage
  ●   Language                      ●   Global Monthly Searches
  ●   Location                      ●   Idea Type
  ●   Network NEW                   ●   Keyword Category
  ●   PlacementType                 ●   Keyword Text
  ●   RelatedToQuery                ●   Negative Keywords
  ●   RelatedToUrl                  ●   Search Share
  ●   SearchVolume                  ●   Search Volume
  ●   SeedAdGroupId                 ●   Targeted Monthly Searches
                                         ...


                                                                Google Confidential and Proprietary
TIS 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
    ...                                   new




                                                        Google Confidential and Proprietary
TES
                       TrafficEstimatorSelector
                           CampaignEstimateRequest[ ]      Criterion[ ], campaignId

                           AdGroupEstimateRequest[ ]     adGroupId, maxCPC

                           KeywordEstimateRequest[ ]     keyword, maxCpc, isNegative




                   Traffic Estimator Service

                          CampaignEstimate[ ]               campaignId

                               AdGroupEstimate[ ]        adGroupId

                               KeywordEstimate[ ]      criterionId, Min & Max StatsEstimates

averageCpc, averagePosition, clicksPerDay, impressionsPerDay, clickThroughRate, totalCost

                                                                      Google Confidential and Proprietary
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'... )...




                 Traffic Estimator Service

    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
                                                              new   new
  ...


                                                            Google Confidential and Proprietary
Example Optimization - Epsilon Greedy Inspired
http://en.wikipedia.org/wiki/Multi-armed_bandit


Automatic                                         auto glass repair
● Regular                                         car glass replacement
● Set and forget
● Needs close monitoring                          windshield repair

                                                  vehicle glass repair
Semi-automatic                                                                            KW Research
● Manual lookup                                   car window repair                        Using TIS+TES

● Suggest KWs for exchange                        fix car glass
● KW Research can be
      manual                                      car glass

                                                  glass window

                                                  glasses repair

                        KW                        window repair


                                                                          Google Confidential and Proprietary
Discovering optimization opportunities with Kratu




                                        Google Confidential and Proprietary
Kratu - Open Source Issue and Opportunity Discovery




                                         Google Confidential and Proprietary
Kratu - Open Source Issue and Opportunity Discovery
●   Open Source, Google driven
     ○   http://google.github.com/kratu/
●   Client-side, runs in the browser. Implemented in JavaScript
●   Includes prebuilt working example for AdWords
     ○   Starting point created by experienced Google Account Managers
     ○   Used internally at Google to display data for millions of accounts
     ○   Provided as-is. Use with caution. Google accepts no liabilities.
●   BYOD - Bring Your Own Data
     ○   Anything that can be converted to a JS Array with key/value objects
     ○   Includes simple JSON and CSV loaders

●   We offer a Google built sample backend
●   Easily integratable with other, non-AdWords data


                                                               Google Confidential and Proprietary
Demo Time
http://google.github.com/kratu/examples/adwordshealthcheck/




                                                  Google Confidential and Proprietary
Kratu - Implementation - Overview


                       Reporting
    Data Storage       backend
      MySql              Fetch
     MongoDB            Process
        ...              Store




     Web server

     /kratu/

     /rest/accounts/




                                    Google Confidential and Proprietary
Kratu - Implementation
●   Easy to add other signals
     ○   Add any key/value pair to your data, define a weight and a threshold
●   Flexible model
     ○   Custom and built-in calculation of opportunity/issue
     ○   Compose new signals from multiple data points
     ○   Custom and built-in event handlers (integrate with other systems)
     ○   Custom and built-in formatting
●   Paginations for larger number of accounts
●   Re-use data and signals to produce new reports
     ○   Targeted reports, eg. upselling opportunities, mobile adoption
     ○   Personalized reports, eg. individual for Account managers
●   End-to-end tutorial available here:
     ○   http://google.github.com/kratu/tutorial/


                                                              Google Confidential and Proprietary
Kratu - backend example
Quick example using Restlet and Gson:
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;
}



                                                       Google Confidential and Proprietary
Kratu - backend example
Json response example:
[{
     "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 Confidential and Proprietary
Q&A

Contenu connexe

Similaire à Account Performance and Optimization

Opportunity Analysis with Kratu
Opportunity Analysis with KratuOpportunity Analysis with Kratu
Opportunity Analysis with Kratumarcwan
 
Large scale data capture and experimentation platform at Grab
Large scale data capture and experimentation platform at GrabLarge scale data capture and experimentation platform at Grab
Large scale data capture and experimentation platform at GrabRoman
 
About The Event-Driven Data Layer & Adobe Analytics
About The Event-Driven Data Layer & Adobe AnalyticsAbout The Event-Driven Data Layer & Adobe Analytics
About The Event-Driven Data Layer & Adobe AnalyticsKevin Haag
 
[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming Apps[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming AppsWSO2
 
Building Data Products with BigQuery for PPC and SEO (SMX 2022)
Building Data Products with BigQuery for PPC and SEO (SMX 2022)Building Data Products with BigQuery for PPC and SEO (SMX 2022)
Building Data Products with BigQuery for PPC and SEO (SMX 2022)Christopher Gutknecht
 
A federated information infrastructure that works
A federated information infrastructure that works A federated information infrastructure that works
A federated information infrastructure that works Stratebi
 
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...AlexACMSC
 
Optimizing a React application for Core Web Vitals
Optimizing a React application for Core Web VitalsOptimizing a React application for Core Web Vitals
Optimizing a React application for Core Web VitalsJuan Picado
 
Applying BigQuery ML on e-commerce data analytics
Applying BigQuery ML on e-commerce data analyticsApplying BigQuery ML on e-commerce data analytics
Applying BigQuery ML on e-commerce data analyticsMárton Kodok
 
Deep Visibility: Logging From Distributed Microservices
Deep Visibility: Logging From Distributed MicroservicesDeep Visibility: Logging From Distributed Microservices
Deep Visibility: Logging From Distributed MicroservicesAaronLieberman5
 
Optimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature DeliveryOptimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature DeliveryOptimizely
 
AwReporting Update
AwReporting UpdateAwReporting Update
AwReporting Updatemarcwan
 
Big Query - Women Techmarkers (Ukraine - March 2014)
Big Query - Women Techmarkers (Ukraine - March 2014)Big Query - Women Techmarkers (Ukraine - March 2014)
Big Query - Women Techmarkers (Ukraine - March 2014)Ido Green
 
James Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 PatternsJames Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 Patternsakqaanoraks
 
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Amazon Web Services
 
Design for Scale - Building Real Time, High Performing Marketing Technology p...
Design for Scale - Building Real Time, High Performing Marketing Technology p...Design for Scale - Building Real Time, High Performing Marketing Technology p...
Design for Scale - Building Real Time, High Performing Marketing Technology p...Amazon Web Services
 
Sprint 45 review
Sprint 45 reviewSprint 45 review
Sprint 45 reviewManageIQ
 

Similaire à Account Performance and Optimization (20)

Opportunity Analysis with Kratu
Opportunity Analysis with KratuOpportunity Analysis with Kratu
Opportunity Analysis with Kratu
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
 
Siddhi - cloud-native stream processor
Siddhi - cloud-native stream processorSiddhi - cloud-native stream processor
Siddhi - cloud-native stream processor
 
Large scale data capture and experimentation platform at Grab
Large scale data capture and experimentation platform at GrabLarge scale data capture and experimentation platform at Grab
Large scale data capture and experimentation platform at Grab
 
About The Event-Driven Data Layer & Adobe Analytics
About The Event-Driven Data Layer & Adobe AnalyticsAbout The Event-Driven Data Layer & Adobe Analytics
About The Event-Driven Data Layer & Adobe Analytics
 
[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming Apps[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming Apps
 
Building Data Products with BigQuery for PPC and SEO (SMX 2022)
Building Data Products with BigQuery for PPC and SEO (SMX 2022)Building Data Products with BigQuery for PPC and SEO (SMX 2022)
Building Data Products with BigQuery for PPC and SEO (SMX 2022)
 
A federated information infrastructure that works
A federated information infrastructure that works A federated information infrastructure that works
A federated information infrastructure that works
 
Modern Thinking área digital MSKM 21/09/2017
Modern Thinking área digital MSKM 21/09/2017Modern Thinking área digital MSKM 21/09/2017
Modern Thinking área digital MSKM 21/09/2017
 
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...
 
Optimizing a React application for Core Web Vitals
Optimizing a React application for Core Web VitalsOptimizing a React application for Core Web Vitals
Optimizing a React application for Core Web Vitals
 
Applying BigQuery ML on e-commerce data analytics
Applying BigQuery ML on e-commerce data analyticsApplying BigQuery ML on e-commerce data analytics
Applying BigQuery ML on e-commerce data analytics
 
Deep Visibility: Logging From Distributed Microservices
Deep Visibility: Logging From Distributed MicroservicesDeep Visibility: Logging From Distributed Microservices
Deep Visibility: Logging From Distributed Microservices
 
Optimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature DeliveryOptimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature Delivery
 
AwReporting Update
AwReporting UpdateAwReporting Update
AwReporting Update
 
Big Query - Women Techmarkers (Ukraine - March 2014)
Big Query - Women Techmarkers (Ukraine - March 2014)Big Query - Women Techmarkers (Ukraine - March 2014)
Big Query - Women Techmarkers (Ukraine - March 2014)
 
James Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 PatternsJames Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 Patterns
 
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
 
Design for Scale - Building Real Time, High Performing Marketing Technology p...
Design for Scale - Building Real Time, High Performing Marketing Technology p...Design for Scale - Building Real Time, High Performing Marketing Technology p...
Design for Scale - Building Real Time, High Performing Marketing Technology p...
 
Sprint 45 review
Sprint 45 reviewSprint 45 review
Sprint 45 review
 

Plus de marcwan

Mcc scripts deck (日本語)
Mcc scripts deck (日本語)Mcc scripts deck (日本語)
Mcc scripts deck (日本語)marcwan
 
Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)marcwan
 
07. feeds update
07. feeds update07. feeds update
07. feeds updatemarcwan
 
AdWords API & OAuth 2.0, Advanced
AdWords API & OAuth 2.0, Advanced AdWords API & OAuth 2.0, Advanced
AdWords API & OAuth 2.0, Advanced marcwan
 
AdWords Scripts and MCC Scripting
AdWords Scripts and MCC ScriptingAdWords Scripts and MCC Scripting
AdWords Scripts and MCC Scriptingmarcwan
 
Getting Started with AdWords API and Google Analytics
Getting Started with AdWords API and Google AnalyticsGetting Started with AdWords API and Google Analytics
Getting Started with AdWords API and Google Analyticsmarcwan
 
Shopping Campaigns and AdWords API
Shopping Campaigns and AdWords APIShopping Campaigns and AdWords API
Shopping Campaigns and AdWords APImarcwan
 
API Updates for v201402
API Updates for v201402API Updates for v201402
API Updates for v201402marcwan
 
AdWords API Targeting Options
AdWords API Targeting OptionsAdWords API Targeting Options
AdWords API Targeting Optionsmarcwan
 
Reporting Tips and Tricks (Spanish)
Reporting Tips and Tricks (Spanish)Reporting Tips and Tricks (Spanish)
Reporting Tips and Tricks (Spanish)marcwan
 
Rate limits and performance (Spanish)
Rate limits and performance (Spanish)Rate limits and performance (Spanish)
Rate limits and performance (Spanish)marcwan
 
OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)marcwan
 
End to-end how to build a platform (Spanish)
End to-end how to build a platform (Spanish)End to-end how to build a platform (Spanish)
End to-end how to build a platform (Spanish)marcwan
 
AwReporting tool introduction (Spanish)
AwReporting tool introduction (Spanish)AwReporting tool introduction (Spanish)
AwReporting tool introduction (Spanish)marcwan
 
Api update rundown (Spanish)
Api update rundown (Spanish)Api update rundown (Spanish)
Api update rundown (Spanish)marcwan
 
AdWords Scripts (Spanish)
AdWords Scripts (Spanish)AdWords Scripts (Spanish)
AdWords Scripts (Spanish)marcwan
 
Mobile landing pages (Spanish)
Mobile landing pages (Spanish)Mobile landing pages (Spanish)
Mobile landing pages (Spanish)marcwan
 
Rate limits and performance
Rate limits and performanceRate limits and performance
Rate limits and performancemarcwan
 
OAuth 2.0 refresher
OAuth 2.0 refresherOAuth 2.0 refresher
OAuth 2.0 refreshermarcwan
 
Mobile landing pages
Mobile landing pagesMobile landing pages
Mobile landing pagesmarcwan
 

Plus de marcwan (20)

Mcc scripts deck (日本語)
Mcc scripts deck (日本語)Mcc scripts deck (日本語)
Mcc scripts deck (日本語)
 
Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)
 
07. feeds update
07. feeds update07. feeds update
07. feeds update
 
AdWords API & OAuth 2.0, Advanced
AdWords API & OAuth 2.0, Advanced AdWords API & OAuth 2.0, Advanced
AdWords API & OAuth 2.0, Advanced
 
AdWords Scripts and MCC Scripting
AdWords Scripts and MCC ScriptingAdWords Scripts and MCC Scripting
AdWords Scripts and MCC Scripting
 
Getting Started with AdWords API and Google Analytics
Getting Started with AdWords API and Google AnalyticsGetting Started with AdWords API and Google Analytics
Getting Started with AdWords API and Google Analytics
 
Shopping Campaigns and AdWords API
Shopping Campaigns and AdWords APIShopping Campaigns and AdWords API
Shopping Campaigns and AdWords API
 
API Updates for v201402
API Updates for v201402API Updates for v201402
API Updates for v201402
 
AdWords API Targeting Options
AdWords API Targeting OptionsAdWords API Targeting Options
AdWords API Targeting Options
 
Reporting Tips and Tricks (Spanish)
Reporting Tips and Tricks (Spanish)Reporting Tips and Tricks (Spanish)
Reporting Tips and Tricks (Spanish)
 
Rate limits and performance (Spanish)
Rate limits and performance (Spanish)Rate limits and performance (Spanish)
Rate limits and performance (Spanish)
 
OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)
 
End to-end how to build a platform (Spanish)
End to-end how to build a platform (Spanish)End to-end how to build a platform (Spanish)
End to-end how to build a platform (Spanish)
 
AwReporting tool introduction (Spanish)
AwReporting tool introduction (Spanish)AwReporting tool introduction (Spanish)
AwReporting tool introduction (Spanish)
 
Api update rundown (Spanish)
Api update rundown (Spanish)Api update rundown (Spanish)
Api update rundown (Spanish)
 
AdWords Scripts (Spanish)
AdWords Scripts (Spanish)AdWords Scripts (Spanish)
AdWords Scripts (Spanish)
 
Mobile landing pages (Spanish)
Mobile landing pages (Spanish)Mobile landing pages (Spanish)
Mobile landing pages (Spanish)
 
Rate limits and performance
Rate limits and performanceRate limits and performance
Rate limits and performance
 
OAuth 2.0 refresher
OAuth 2.0 refresherOAuth 2.0 refresher
OAuth 2.0 refresher
 
Mobile landing pages
Mobile landing pagesMobile landing pages
Mobile landing pages
 

Dernier

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Account Performance and Optimization

  • 1. AdWords API Workshops 2013 Account Performance & Optimization Finding the needle in your haystack Google Confidential and Proprietary
  • 2. Overview 1. How to Optimize ○ The Optimization Cycle 2. Developing a solid reporting backend ○ Reporting Workflow ○ Strategies for scaling, processing and storage ○ Introduction to sample applications 3. Keyword Optimizations ○ What are TIS and TES ○ Discovering good ideas with TIS and TES ○ Automated keyword optimizations strategy 4. Discovering optimization opportunities with Kratu ○ Introduction to Kratu ○ AdWords Optimization Report in Kratu ○ Kratu backend example Google Confidential and Proprietary
  • 3. How to Optimize? Google Confidential and Proprietary
  • 4. Measure Profile Optimization Cycle Optimize Google Confidential and Proprietary
  • 5. Measure Profile Performance data Structural data AdHoc AWQL Services Reports Optimize Google Confidential and Proprietary
  • 6. Measure Profile Kratu Custom (eg. Epsilon) Predictive Analysis Optimize Google Confidential and Proprietary
  • 7. Measure Profile Automatic Manual Semi Automatic Optimize Google Confidential and Proprietary
  • 8. Developing a solid reporting backend Google Confidential and Proprietary
  • 9. Reporting Workflow MCC Info Managed List<ManagedCustomer> Customer Service Report Definition ReportType Report Data Storage DateRange Report Downloader Processor MySql MongoDB ... Fields n-Threads Google Confidential and Proprietary
  • 10. Report Data Storage Report Downloader Processor MySql MongoDB ... n-Threads Process local temp files Keys must guarantee Based on Parses rows using a Uniqueness per MultipleClient CSVReader ReportRow ReportDownloader (Date/Day, Segments) example Write calls to Storage must be in batches Rows Updates are Each Thread runs a frequent ReportDownloder with: Batch size depends on technology/memory Create indexes for: ● AdWordsSession ● ClientCustomerId Shard data based on ● AccountId ● ReportDefinition account, subMCCs, dates ● Date/Day ● CSV & GZip or common attributes ● CampaignId ● Segments... Google Confidential and Proprietary
  • 11. Implementing a MySql ReportProcessor connection.setAutoCommit( false); statement.execute(" SET UNIQUE_CHECKS=0; ALTER TABLE ... DISABLE KEYS;"); for (File file : localFiles) { preparedStatement = "INSERT INTO .. (.) VALUES (.) ON DUPLICATE KEY UPDATE (.)"; CSVReader csvReader = new CSVReader(new InputStreamReader (new FileInputStream ( file.getAbsolutePath() + ".gunzip"), " UTF-8"), ',', '"', 1); reportRows = new ModifiedCsvToBean <Report>(). parseReport(mapping, csvReader); for (Report reportItem : reportRows) { addInsertToBatch(reportItem, preparedStatement); // Executing the Batch every 500 inserts to reduce memory usage if (batchSize++ >= 500) { preparedStatement.executeBatch(); connection.commit(); batchSize = 0; } }... }... statement.execute(" SET UNIQUE_CHECKS=1; ALTER TABLE ... ENABLE KEYS;"); Google Confidential and Proprietary
  • 12. Implementing a MongoDB ReportProcessor for (File file : localFiles) { CSVReader csvReader = new CSVReader(new InputStreamReader( new FileInputStream(file),"UTF-8"), ',', '"', 1); List<Report> reportObjectList = ModifiedCsvToBean<Report>().parseReport(mapping, csvReader); csvReader.close(); // Save in MongoDB (there is also an AppEngine implementation) // Iterates using Google Gson: gsonBuilder.create().toJson(Object) // and DBObject: com.mongodb.util.JSON.parse(jsonObject) noSqlStorage.save(reportObjectList); } Google Confidential and Proprietary
  • 13. Keyword Optimizations Google Confidential and Proprietary
  • 14. TIS SearchParameter[ ] Keyword / Placement TargetingIdeaSelector Ideas / Stats AttributeType[ ] (fields) Targeting Idea Service TargetingIdea[ ] Type_AttributeMapEntry[ ] (field,value) Google Confidential and Proprietary
  • 15. TIS - Search Parameters & Fields SearchParameter[ ] AttributeType[ ] (fields) ● AdSpecList ● Average Cpc ● CategoryProductsAndServices ● Average Targeted Monthly Searches ● Competition ● Category Products and Services ● ExcludedKeyword ● Competition ● IdeaTextFilter ● Criterion ● IncludeAdultContent ● Extracted from Webpage ● Language ● Global Monthly Searches ● Location ● Idea Type ● Network NEW ● Keyword Category ● PlacementType ● Keyword Text ● RelatedToQuery ● Negative Keywords ● RelatedToUrl ● Search Share ● SearchVolume ● Search Volume ● SeedAdGroupId ● Targeted Monthly Searches ... Google Confidential and Proprietary
  • 16. TIS 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 ... new Google Confidential and Proprietary
  • 17. TES TrafficEstimatorSelector CampaignEstimateRequest[ ] Criterion[ ], campaignId AdGroupEstimateRequest[ ] adGroupId, maxCPC KeywordEstimateRequest[ ] keyword, maxCpc, isNegative Traffic Estimator Service CampaignEstimate[ ] campaignId AdGroupEstimate[ ] adGroupId KeywordEstimate[ ] criterionId, Min & Max StatsEstimates averageCpc, averagePosition, clicksPerDay, impressionsPerDay, clickThroughRate, totalCost Google Confidential and Proprietary
  • 18. 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'... )... Traffic Estimator Service 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 new new ... Google Confidential and Proprietary
  • 19. Example Optimization - Epsilon Greedy Inspired http://en.wikipedia.org/wiki/Multi-armed_bandit Automatic auto glass repair ● Regular car glass replacement ● Set and forget ● Needs close monitoring windshield repair vehicle glass repair Semi-automatic KW Research ● Manual lookup car window repair Using TIS+TES ● Suggest KWs for exchange fix car glass ● KW Research can be manual car glass glass window glasses repair KW window repair Google Confidential and Proprietary
  • 20. Discovering optimization opportunities with Kratu Google Confidential and Proprietary
  • 21. Kratu - Open Source Issue and Opportunity Discovery Google Confidential and Proprietary
  • 22. Kratu - Open Source Issue and Opportunity Discovery ● Open Source, Google driven ○ http://google.github.com/kratu/ ● Client-side, runs in the browser. Implemented in JavaScript ● Includes prebuilt working example for AdWords ○ Starting point created by experienced Google Account Managers ○ Used internally at Google to display data for millions of accounts ○ Provided as-is. Use with caution. Google accepts no liabilities. ● BYOD - Bring Your Own Data ○ Anything that can be converted to a JS Array with key/value objects ○ Includes simple JSON and CSV loaders ● We offer a Google built sample backend ● Easily integratable with other, non-AdWords data Google Confidential and Proprietary
  • 24. Kratu - Implementation - Overview Reporting Data Storage backend MySql Fetch MongoDB Process ... Store Web server /kratu/ /rest/accounts/ Google Confidential and Proprietary
  • 25. Kratu - Implementation ● Easy to add other signals ○ Add any key/value pair to your data, define a weight and a threshold ● Flexible model ○ Custom and built-in calculation of opportunity/issue ○ Compose new signals from multiple data points ○ Custom and built-in event handlers (integrate with other systems) ○ Custom and built-in formatting ● Paginations for larger number of accounts ● Re-use data and signals to produce new reports ○ Targeted reports, eg. upselling opportunities, mobile adoption ○ Personalized reports, eg. individual for Account managers ● End-to-end tutorial available here: ○ http://google.github.com/kratu/tutorial/ Google Confidential and Proprietary
  • 26. Kratu - backend example Quick example using Restlet and Gson: 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; } Google Confidential and Proprietary
  • 27. Kratu - backend example Json response example: [{ "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 Confidential and Proprietary
  • 28. Q&A