awreporting - the reporting tool

Post on 18-Jul-2015

1.413 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

AwReportingDownload report data to a local DB very easily

Gustavo Moreira

Agenda

● What the tool is

● Overview

● Why is it important?

● How to get started

● Demo!

What is AwReporting?

The Problem

● Larger number of accounts

● A lot of performance information

● Hard to scale

● Very useful information

The Solution

● Use the API

● Download overnight

● Persist locally

● Build on top of it

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

The Tool - Cont.

● It is open source!

● Very extendable!

● Standalone command line

● Can be part of your platform

Non-Technical Overview

1. Retrieving All the Accounts

AwReportingAdWords

API Client Account

Config. file MCC

Firstly, the tool will access the MCC and retrieve all the client accounts

2. Download the Reports

For each account, the tool will download all the configured report types from AdWords

AwReportingAdWords

API

Config. file

Client Account

Account Performance

Campaign Performance

Ads Performance

AdGroups Performance

URL Performance...

3. Persist to Local Database

Finally, all the reports are stored in your local database automatically, so the data can be accessed later

AwReporting

Account Performance

Campaign Performance

Ads Performance

AdGroups Performance

URL Performance...

Database

Account Performance

Campaign Performance

Ads Performance

AdGroups Performance

URL Performance

Client Account

4. Your Turn

Database

Account Performance

Campaign Performance

Ads Performance

CRM...

X

X

New Report*

Client Report*

Now you have all the client data locally to your system. You can integrate with your CRM, send out reports, etc...

Never Forget!

● Read and if necessary implement the RMFs!

● You can throw the data away and download again!

● It is a lot of data!

A Technical Overview

How does it work?

Properties file

AwReporting

Downloaders

DBAwReporting

Model

AdWords API

Custom platform

Custom Java code

In the cloud

Part of the tool

Internal to the tool

User-specific

Local file

Java

Any language

Components

DatabaseLocal to the user

Report definitions

Map the reports to entities

Entity persisters

Handles the persistence layer

AwReporting main

Executes the download and persistence

● Report definitions

● Entity persisters

● AwReporting main

Report Definitions

AdWords API

Report (CSV)

AwReporting

Report definition DB

Java bean

Report definition

Persister

Combined

Java bean

Report definition

Entity Persisters

● Interface to handle entities

● Contains methods to save, delete and get

● Use it to access the database!

● It talks Java Bean

Entity Persisters - Cont.

● Takes care of the transaction

● Handles the exceptions

● Type safe

AwReporting Main

● Coordinates all the parts

● Handles parallelism

● Standalone command line program

● Flexible configuration

● Uses OAuth 2.0 to authenticate (ONLY)

AwReporting Main - Cfg.

Configuration in a properties file

mccAccountId=<MCC>eveloperToken=<Developer Token>...aw.report.model.db.mysql.driver=com.mysql.jdbc.Driver...aw.report.downloader.num.threads=20...# Define the reports fields to be selectedKEYWORDS_PERFORMANCE_REPORT=ExternalCustomerId,Date,...

Possible Applications

Reducing API Adoption Time

● Out of the box solution to reports

● Very small work time required

● Latest API version

● Easy to extend

Follow the Example

● Best practices applied to the real world

● Very good executable examples

● The DAs invest time on it

● More features to come

Starting Point

● Remove reports out of the way

● Local data is easier to handle

● First step towards automation

● Automated report generation to clients?

Getting Started

Building the Tool

● Start by downloading the source code:○ http://goo.gl/TQxIdN

● Follow the guide to build the tool

● Everything is open source

Accessing the Source Code

● Default Maven project format

● $ mvn eclipse:eclipse

● You can edit, and build yourself!

● Two different modules/projects

System Requirements

● AdWords developer token

● Database (MySQL)

● Java 6

Resources

● https://github.com/googleads/aw-reporting

top related