SlideShare a Scribd company logo
1 of 39
Download to read offline
AdWords API Workshops – All rights reserved
AW Reports to DB
An introduction to the tool

by Gustavo Moreira
<SPEAKER>, Google, Inc.
AdWords API Workshops – All rights reserved
Agenda
● What is the tool
● Overview
● Why is it important?
● How to get started
● Next steps

AdWords API Workshops – All rights reserved
Defining AW Reports to DB
What the tool actually does

AdWords API Workshops – All rights reserved
The Problem
● Big number of accounts
● A lot of performance information
● Hard to scale
● Very useful information

AdWords API Workshops – All rights reserved

Defining AwReporting
The Solution
● Use the API
● Download overnight
● Persist locally
● Build on top of it

AdWords API Workshops – All rights reserved

Defining AwReporting
The Tool
● Multi-threaded download
● Persists to SQL DBs*
● Also persists to MongoDB
● Handles all the API access
● Expose Java objects
● * Uses Hibernate to do the persistence
AdWords API Workshops – All rights reserved

Defining AwReporting
The Tool
● It is open source!
● Designed to be extended
● Can run as a command line
● Can be part of your platform

AdWords API Workshops – All rights reserved

Defining AwReporting
A Quick Overview
Bird’s eye view on the tool

AdWords API Workshops – All rights reserved
How does it work?

In the cloud

Custom Java
code

AdWords
API

Java

AwReporting

Properties
file
Local file
AdWords API Workshops – All rights reserved

Downloaders

AwReporting
Model

Part of the tool
Internal to the tool
User-specific

DB

Custom
platform
Any language
Components
Local to the user

Database

● Report definitions
● Entity persisters
● AwReporting main

Map the reports to
entities

Report definitions

Handles the
persistence layer

Entity persisters

Executes the
download and
persistence
AdWords API Workshops – All rights reserved

AwReporting
main

A Quick Overview
Report Definitions
● Java Beans with annotations
Java

@Entity
@Table(name = "AW_ReportAd")
@CsvReport(value = AD_PERFORMANCE_REPORT) // CSV Report
public class ReportAd extends Report {
// Field annotations
@Column(name = "AD_ID")
@CsvField(value = "Ad ID", reportField = "Id")
public Long adId;

AdWords API Workshops – All rights reserved

A Quick Overview
Report Definitions
@CsvReport(value = AD_PERFORMANCE_REPORT)

● The name found in the documentation:
○ https://developers.google.com/adwords/api/docs/appendix/reports *

@CsvField(value = "Ad ID", reportField = "Id")

● The display name, and the report field name
* Resources will be available in the final slides
AdWords API Workshops – All rights reserved

A Quick Overview
Report Definitions
AdWords
API

Report
(CSV)

Report
definition

Java
bean
AwReporting

Report
definition

Persister

Java
bean

Report
definition
DB
Combined
AdWords API Workshops – All rights reserved

A Quick Overview
Entity Persisters
● Interface to handle entities
● Contains methods to save, delete and get
● Use it to access the database!
● It talks Java Bean

AdWords API Workshops – All rights reserved

A Quick Overview
Entity Persisters
● Takes care of the transaction
● Handles the exceptions
● Type safe

AdWords API Workshops – All rights reserved

A Quick Overview
AwReporting Main
● Coordinates all the parts
● Handles parallelism
● Standalone command line program
● Flexible configuration
● Uses OAuth 2.0 to authenticate (ONLY)

AdWords API Workshops – All rights reserved

A Quick Overview
AwReporting Main
● Configuration in a properties file
Properties
mccAccountId=<MCC>
developerToken=<Developer Token>
...
aw.report.model.db.mysql.driver=com.mysql.jdbc.Driver
...
aw.report.downloader.num.threads=20
...
// Define the reports fields to be selected
KEYWORDS_PERFORMANCE_REPORT=ExternalCustomerId,Date,...

AdWords API Workshops – All rights reserved

A Quick Overview
AwReporting Main
● Command line standalone
$ java -Xmx512m -jar aw-report-tool.jar
-startDate <some date> 
-endDate <some date> 
-file <properties-location>/configuration.properties

● startDate, endDate: yyyyMMdd format
● file: the properties file

AdWords API Workshops – All rights reserved

A Quick Overview
Possible Applications
Why the tool is important

AdWords API Workshops – All rights reserved
Reducing API Adoption Time
● Out of the box solution to reports
● Very small work time required
● Latest API version
● Easy to extend

AdWords API Workshops – All rights reserved

Possible Applications
Follow the Example
● Best practices applied to the real world
● Very good executable examples
● The DAs invest time on it
● More features to come

AdWords API Workshops – All rights reserved

Possible Applications
Starting Point
● Remove reports out of the way
● Local data is easier to handle
● First step towards automation
● Automated report generation to clients?

AdWords API Workshops – All rights reserved

Possible Applications
Getting Started
Take my money!

AdWords API Workshops – All rights reserved
Building the Tool
● Start by downloading the source code:
○

http://goo.gl/TQxIdN *

● Follow the guide to build the tool
● Everything is open source

* Resources will be available in the final slides
AdWords API Workshops – All rights reserved

Getting Started
Demo

AdWords API Workshops – All rights reserved
Accessing the Source Code
● Default Maven project format
● $ mvn eclipse:eclipse
● You can edit, and build yourself!
● Two different modules/projects

AdWords API Workshops – All rights reserved

Getting Started
Demo

AdWords API Workshops – All rights reserved
System Requirements
● AdWords developer token
● Database (MySQL)
● Java 6

AdWords API Workshops – All rights reserved

Getting Started
Knowledge Requirements (to code)
● Java 6 - Annotations, Generics, etc.
● Maven - build
● Spring framework, Hibernate - beans and database

AdWords API Workshops – All rights reserved

Getting Started
Customizing the Tool
● Add a new report by creating a new definition
● Manage the downloads via the properties file
● Database fields via annotations
● Entity persister to access the data

AdWords API Workshops – All rights reserved

Getting Started
Demo

AdWords API Workshops – All rights reserved
Taking the Extra Step
Now what?

AdWords API Workshops – All rights reserved
The Data is Yours!
● Create your own reports
● Optimize for the report values
● Auto-generate PDF reports
● Integrate with internal systems

AdWords API Workshops – All rights reserved

Taking the Extra Step
Non Exclusive Application
● The tool goes well with other platforms
● Define your own database
● No need to use Java
● Follow the best practices, implement your own!

AdWords API Workshops – All rights reserved

Taking the Extra Step
Seeking Complete Automation
● You need data to automate
● Management of campaigns, ads, keywords, etc.
● Feedback for optimization
● Performance history

AdWords API Workshops – All rights reserved

Taking the Extra Step
Resources
AW Reports to DB - https://github.com/googleads/aw-reporting
Report documentation - https://developers.google.
com/adwords/api/docs/appendix/reports

AdWords API Workshops – All rights reserved
Questions?
Thank you!

AdWords API Workshops – All rights reserved
AdWords API Workshops – All rights reserved

More Related Content

What's hot

Modular GraphQL with Schema Stitching
Modular GraphQL with Schema StitchingModular GraphQL with Schema Stitching
Modular GraphQL with Schema StitchingSashko Stubailo
 
Introduction to SPAs with AngularJS
Introduction to SPAs with AngularJSIntroduction to SPAs with AngularJS
Introduction to SPAs with AngularJSLaurent Duveau
 
Build sfdx plugin in 15 minutes
Build sfdx plugin in 15 minutesBuild sfdx plugin in 15 minutes
Build sfdx plugin in 15 minutesJitendra Zaa
 
Introduction to mulesoft - Alpharetta Developer Group Meet
Introduction to mulesoft - Alpharetta Developer Group MeetIntroduction to mulesoft - Alpharetta Developer Group Meet
Introduction to mulesoft - Alpharetta Developer Group MeetJitendra Zaa
 
Module 2: Adding JavaScript to APEX Apps
Module 2: Adding JavaScript to APEX AppsModule 2: Adding JavaScript to APEX Apps
Module 2: Adding JavaScript to APEX AppsDaniel McGhan
 
REST vs GraphQL
REST vs GraphQLREST vs GraphQL
REST vs GraphQLSquareboat
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQLvaluebound
 
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016John Mulhall
 
Metrics by coda hale : to know your app’ health
Metrics by coda hale : to know your app’ healthMetrics by coda hale : to know your app’ health
Metrics by coda hale : to know your app’ healthIzzet Mustafaiev
 
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...Shortening the time from analysis to deployment with ml as-a-service — Luiz A...
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...PAPIs.io
 
Neo4j Data Loading with Kettle
Neo4j Data Loading with KettleNeo4j Data Loading with Kettle
Neo4j Data Loading with KettleNeo4j
 
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays
 
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...apidays
 
Enterprise graph applications
Enterprise graph applicationsEnterprise graph applications
Enterprise graph applicationsDavid Colebatch
 
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsGraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsNicola Molinari
 

What's hot (19)

Modular GraphQL with Schema Stitching
Modular GraphQL with Schema StitchingModular GraphQL with Schema Stitching
Modular GraphQL with Schema Stitching
 
Introduction to SPAs with AngularJS
Introduction to SPAs with AngularJSIntroduction to SPAs with AngularJS
Introduction to SPAs with AngularJS
 
Build sfdx plugin in 15 minutes
Build sfdx plugin in 15 minutesBuild sfdx plugin in 15 minutes
Build sfdx plugin in 15 minutes
 
Key alias dev standard final
Key alias   dev standard finalKey alias   dev standard final
Key alias dev standard final
 
Introduction to mulesoft - Alpharetta Developer Group Meet
Introduction to mulesoft - Alpharetta Developer Group MeetIntroduction to mulesoft - Alpharetta Developer Group Meet
Introduction to mulesoft - Alpharetta Developer Group Meet
 
Module 2: Adding JavaScript to APEX Apps
Module 2: Adding JavaScript to APEX AppsModule 2: Adding JavaScript to APEX Apps
Module 2: Adding JavaScript to APEX Apps
 
REST vs GraphQL
REST vs GraphQLREST vs GraphQL
REST vs GraphQL
 
Rapids erase the waiting hassle by Andrada Olteanu
Rapids erase the waiting hassle by Andrada OlteanuRapids erase the waiting hassle by Andrada Olteanu
Rapids erase the waiting hassle by Andrada Olteanu
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQL
 
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
 
Metrics
MetricsMetrics
Metrics
 
Metrics by coda hale : to know your app’ health
Metrics by coda hale : to know your app’ healthMetrics by coda hale : to know your app’ health
Metrics by coda hale : to know your app’ health
 
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...Shortening the time from analysis to deployment with ml as-a-service — Luiz A...
Shortening the time from analysis to deployment with ml as-a-service — Luiz A...
 
Neo4j Data Loading with Kettle
Neo4j Data Loading with KettleNeo4j Data Loading with Kettle
Neo4j Data Loading with Kettle
 
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
 
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
apidays LIVE Australia - Leveraging DevOps to visualize your digital ecosyste...
 
Enterprise graph applications
Enterprise graph applicationsEnterprise graph applications
Enterprise graph applications
 
GraphQL Europe Recap
GraphQL Europe RecapGraphQL Europe Recap
GraphQL Europe Recap
 
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsGraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
 

Similar to Intro AwReporting Tool Persist AdWords Data

AdWords Scripts
AdWords ScriptsAdWords Scripts
AdWords Scriptsmarcwan
 
Creating a custom API for a headless Drupal
Creating a custom API for a headless DrupalCreating a custom API for a headless Drupal
Creating a custom API for a headless DrupalExove
 
Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)wesley chun
 
Why use ad words api
Why use ad words apiWhy use ad words api
Why use ad words apisupergigas
 
Write an API for Almost Anything: The Amazing Power and Flexibility of Django...
Write an API for Almost Anything: The Amazing Power and Flexibility of Django...Write an API for Almost Anything: The Amazing Power and Flexibility of Django...
Write an API for Almost Anything: The Amazing Power and Flexibility of Django...Caktus Group
 
Rate limits and performance Talk
Rate limits and performance TalkRate limits and performance Talk
Rate limits and performance Talkmarcwan
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloudwesley chun
 
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)Ido Green
 
Dev ops for big data cluster management tools
Dev ops for big data  cluster management toolsDev ops for big data  cluster management tools
Dev ops for big data cluster management toolsRan Silberman
 
AdWords API - How to build a platform
AdWords API - How to build a platformAdWords API - How to build a platform
AdWords API - How to build a platformTimoBoz
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
Introduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API DevelopmentIntroduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API DevelopmentColin Su
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testingrdekleijn
 
Cloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google CloudCloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google Cloudwesley chun
 
AdWords API Feed Services
AdWords API Feed ServicesAdWords API Feed Services
AdWords API Feed Servicesmarcwan
 
OAuth 2.0 refresher Talk
OAuth 2.0 refresher TalkOAuth 2.0 refresher Talk
OAuth 2.0 refresher Talkmarcwan
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application StrategiesBIOVIA
 
PaaS application in Heroku
PaaS application in HerokuPaaS application in Heroku
PaaS application in HerokuDileepa Jayakody
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIswesley chun
 

Similar to Intro AwReporting Tool Persist AdWords Data (20)

AdWords Scripts
AdWords ScriptsAdWords Scripts
AdWords Scripts
 
Creating a custom API for a headless Drupal
Creating a custom API for a headless DrupalCreating a custom API for a headless Drupal
Creating a custom API for a headless Drupal
 
Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)
 
Why use ad words api
Why use ad words apiWhy use ad words api
Why use ad words api
 
Write an API for Almost Anything: The Amazing Power and Flexibility of Django...
Write an API for Almost Anything: The Amazing Power and Flexibility of Django...Write an API for Almost Anything: The Amazing Power and Flexibility of Django...
Write an API for Almost Anything: The Amazing Power and Flexibility of Django...
 
Rate limits and performance Talk
Rate limits and performance TalkRate limits and performance Talk
Rate limits and performance Talk
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
 
Dev ops for big data cluster management tools
Dev ops for big data  cluster management toolsDev ops for big data  cluster management tools
Dev ops for big data cluster management tools
 
AdWords API - How to build a platform
AdWords API - How to build a platformAdWords API - How to build a platform
AdWords API - How to build a platform
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Introduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API DevelopmentIntroduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API Development
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
 
Cloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google CloudCloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google Cloud
 
AdWords API Feed Services
AdWords API Feed ServicesAdWords API Feed Services
AdWords API Feed Services
 
OAuth 2.0 refresher Talk
OAuth 2.0 refresher TalkOAuth 2.0 refresher Talk
OAuth 2.0 refresher Talk
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies
 
PaaS application in Heroku
PaaS application in HerokuPaaS application in Heroku
PaaS application in Heroku
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
 

More from marcwan

Mcc scripts deck (日本語)
Mcc scripts deck (日本語)Mcc scripts deck (日本語)
Mcc scripts deck (日本語)marcwan
 
Getting started with Google Analytics and the AdWords API
Getting started with Google Analytics and the AdWords APIGetting started with Google Analytics and the AdWords API
Getting started with Google Analytics and the AdWords APImarcwan
 
Bid Estimation with the AdWords API (v2)
Bid Estimation with the AdWords API (v2)Bid Estimation with the AdWords API (v2)
Bid Estimation with the AdWords API (v2)marcwan
 
Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)marcwan
 
Opportunity Analysis with Kratu
Opportunity Analysis with KratuOpportunity Analysis with Kratu
Opportunity Analysis with Kratumarcwan
 
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
 
AwReporting Update
AwReporting UpdateAwReporting Update
AwReporting Updatemarcwan
 
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
 

More from marcwan (20)

Mcc scripts deck (日本語)
Mcc scripts deck (日本語)Mcc scripts deck (日本語)
Mcc scripts deck (日本語)
 
Getting started with Google Analytics and the AdWords API
Getting started with Google Analytics and the AdWords APIGetting started with Google Analytics and the AdWords API
Getting started with Google Analytics and the AdWords API
 
Bid Estimation with the AdWords API (v2)
Bid Estimation with the AdWords API (v2)Bid Estimation with the AdWords API (v2)
Bid Estimation with the AdWords API (v2)
 
Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)
 
Opportunity Analysis with Kratu
Opportunity Analysis with KratuOpportunity Analysis with Kratu
Opportunity Analysis with Kratu
 
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
 
AwReporting Update
AwReporting UpdateAwReporting Update
AwReporting Update
 
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)
 

Recently uploaded

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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingSelcen Ozturkcan
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Recently uploaded (20)

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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Intro AwReporting Tool Persist AdWords Data

  • 1. AdWords API Workshops – All rights reserved
  • 2. AW Reports to DB An introduction to the tool by Gustavo Moreira <SPEAKER>, Google, Inc. AdWords API Workshops – All rights reserved
  • 3. Agenda ● What is the tool ● Overview ● Why is it important? ● How to get started ● Next steps AdWords API Workshops – All rights reserved
  • 4. Defining AW Reports to DB What the tool actually does AdWords API Workshops – All rights reserved
  • 5. The Problem ● Big number of accounts ● A lot of performance information ● Hard to scale ● Very useful information AdWords API Workshops – All rights reserved Defining AwReporting
  • 6. The Solution ● Use the API ● Download overnight ● Persist locally ● Build on top of it AdWords API Workshops – All rights reserved Defining AwReporting
  • 7. The Tool ● Multi-threaded download ● Persists to SQL DBs* ● Also persists to MongoDB ● Handles all the API access ● Expose Java objects ● * Uses Hibernate to do the persistence AdWords API Workshops – All rights reserved Defining AwReporting
  • 8. The Tool ● It is open source! ● Designed to be extended ● Can run as a command line ● Can be part of your platform AdWords API Workshops – All rights reserved Defining AwReporting
  • 9. A Quick Overview Bird’s eye view on the tool AdWords API Workshops – All rights reserved
  • 10. How does it work? In the cloud Custom Java code AdWords API Java AwReporting Properties file Local file AdWords API Workshops – All rights reserved Downloaders AwReporting Model Part of the tool Internal to the tool User-specific DB Custom platform Any language
  • 11. Components Local to the user Database ● Report definitions ● Entity persisters ● AwReporting main Map the reports to entities Report definitions Handles the persistence layer Entity persisters Executes the download and persistence AdWords API Workshops – All rights reserved AwReporting main A Quick Overview
  • 12. Report Definitions ● Java Beans with annotations Java @Entity @Table(name = "AW_ReportAd") @CsvReport(value = AD_PERFORMANCE_REPORT) // CSV Report public class ReportAd extends Report { // Field annotations @Column(name = "AD_ID") @CsvField(value = "Ad ID", reportField = "Id") public Long adId; AdWords API Workshops – All rights reserved A Quick Overview
  • 13. Report Definitions @CsvReport(value = AD_PERFORMANCE_REPORT) ● The name found in the documentation: ○ https://developers.google.com/adwords/api/docs/appendix/reports * @CsvField(value = "Ad ID", reportField = "Id") ● The display name, and the report field name * Resources will be available in the final slides AdWords API Workshops – All rights reserved A Quick Overview
  • 15. Entity Persisters ● Interface to handle entities ● Contains methods to save, delete and get ● Use it to access the database! ● It talks Java Bean AdWords API Workshops – All rights reserved A Quick Overview
  • 16. Entity Persisters ● Takes care of the transaction ● Handles the exceptions ● Type safe AdWords API Workshops – All rights reserved A Quick Overview
  • 17. AwReporting Main ● Coordinates all the parts ● Handles parallelism ● Standalone command line program ● Flexible configuration ● Uses OAuth 2.0 to authenticate (ONLY) AdWords API Workshops – All rights reserved A Quick Overview
  • 18. AwReporting Main ● Configuration in a properties file Properties mccAccountId=<MCC> developerToken=<Developer Token> ... aw.report.model.db.mysql.driver=com.mysql.jdbc.Driver ... aw.report.downloader.num.threads=20 ... // Define the reports fields to be selected KEYWORDS_PERFORMANCE_REPORT=ExternalCustomerId,Date,... AdWords API Workshops – All rights reserved A Quick Overview
  • 19. AwReporting Main ● Command line standalone $ java -Xmx512m -jar aw-report-tool.jar -startDate <some date> -endDate <some date> -file <properties-location>/configuration.properties ● startDate, endDate: yyyyMMdd format ● file: the properties file AdWords API Workshops – All rights reserved A Quick Overview
  • 20. Possible Applications Why the tool is important AdWords API Workshops – All rights reserved
  • 21. Reducing API Adoption Time ● Out of the box solution to reports ● Very small work time required ● Latest API version ● Easy to extend AdWords API Workshops – All rights reserved Possible Applications
  • 22. Follow the Example ● Best practices applied to the real world ● Very good executable examples ● The DAs invest time on it ● More features to come AdWords API Workshops – All rights reserved Possible Applications
  • 23. Starting Point ● Remove reports out of the way ● Local data is easier to handle ● First step towards automation ● Automated report generation to clients? AdWords API Workshops – All rights reserved Possible Applications
  • 24. Getting Started Take my money! AdWords API Workshops – All rights reserved
  • 25. Building the Tool ● Start by downloading the source code: ○ http://goo.gl/TQxIdN * ● Follow the guide to build the tool ● Everything is open source * Resources will be available in the final slides AdWords API Workshops – All rights reserved Getting Started
  • 26. Demo AdWords API Workshops – All rights reserved
  • 27. Accessing the Source Code ● Default Maven project format ● $ mvn eclipse:eclipse ● You can edit, and build yourself! ● Two different modules/projects AdWords API Workshops – All rights reserved Getting Started
  • 28. Demo AdWords API Workshops – All rights reserved
  • 29. System Requirements ● AdWords developer token ● Database (MySQL) ● Java 6 AdWords API Workshops – All rights reserved Getting Started
  • 30. Knowledge Requirements (to code) ● Java 6 - Annotations, Generics, etc. ● Maven - build ● Spring framework, Hibernate - beans and database AdWords API Workshops – All rights reserved Getting Started
  • 31. Customizing the Tool ● Add a new report by creating a new definition ● Manage the downloads via the properties file ● Database fields via annotations ● Entity persister to access the data AdWords API Workshops – All rights reserved Getting Started
  • 32. Demo AdWords API Workshops – All rights reserved
  • 33. Taking the Extra Step Now what? AdWords API Workshops – All rights reserved
  • 34. The Data is Yours! ● Create your own reports ● Optimize for the report values ● Auto-generate PDF reports ● Integrate with internal systems AdWords API Workshops – All rights reserved Taking the Extra Step
  • 35. Non Exclusive Application ● The tool goes well with other platforms ● Define your own database ● No need to use Java ● Follow the best practices, implement your own! AdWords API Workshops – All rights reserved Taking the Extra Step
  • 36. Seeking Complete Automation ● You need data to automate ● Management of campaigns, ads, keywords, etc. ● Feedback for optimization ● Performance history AdWords API Workshops – All rights reserved Taking the Extra Step
  • 37. Resources AW Reports to DB - https://github.com/googleads/aw-reporting Report documentation - https://developers.google. com/adwords/api/docs/appendix/reports AdWords API Workshops – All rights reserved
  • 38. Questions? Thank you! AdWords API Workshops – All rights reserved
  • 39. AdWords API Workshops – All rights reserved