exploring the google analytics api
Post on 19-Oct-2014
3.032 views
DESCRIPTION
Updated presentation for PyCon Canada 2013 Google Analytics is an excellent tool to track what happens in your website or your mobile app. In this talk, you'll learn how to query your data using the Python library for the Core Reporting API and why you should be doing it.TRANSCRIPT
![Page 1: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/1.jpg)
Exploring the Google Analytics API
Vanessa Sabino @bani
![Page 2: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/2.jpg)
Google Analytics
It’s all about Data • Web sites • Mobile apps • Coffee makers* • Etc.
* http://youtu.be/C27yMQOS8n0
![Page 3: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/3.jpg)
Google Analytics
![Page 4: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/4.jpg)
Goals & Conversion Optimization
![Page 5: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/5.jpg)
The Core Reporting API
https://developers.google.com/analytics/devguides/reporting/core/v3/
![Page 6: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/6.jpg)
Why use the API?
1. Productivity
(and less sampling)
http://xkcd.com/303/
![Page 7: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/7.jpg)
Why use the API?
1. Productivity
2. + Results
max-results=10,000
![Page 8: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/8.jpg)
Why use the API?
1. Productivity
2. + Results
3. + Dimensions
Up to 7 dimensions!
![Page 9: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/9.jpg)
Why use the API?
1. Productivity
2. + Results
3. + Dimensions
4. Visualization
http://tinyurl.com/GA-Apps
![Page 10: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/10.jpg)
Why use the API?
1. Productivity
2. + Results
3. + Dimensions
4. Visualization
5. Web apps
http://sumall.com/
![Page 11: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/11.jpg)
Why use the API?
1. Productivity
2. + Results
3. + Dimensions
4. Visualization
5. Web apps
6. Data storage
![Page 12: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/12.jpg)
API Concepts
![Page 13: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/13.jpg)
Metrics & Dimensions
https://developers.google.com/analytics/devguides/reporting/core/dimsmets
![Page 14: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/14.jpg)
Filters & Segments
Metrics == Equals
!= Does not equal
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
Dimensions == / != Exact match
=@ / !@ Contains substring
=~ / !~ Contains a match for the regular expression
, Or ; And
https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filterSyntax
![Page 15: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/15.jpg)
Data Feed
https://www.googleapis.com/analytics/v3/data/ga
?ids=ga:12345 *
&dimensions=ga:source,ga:medium
&metrics=ga:visits,ga:bounces *
&sort=-ga:visits
&filters=ga:medium%3D%3Dreferral
&segment=gaid::10
&start-date=2011-10-01 *
&end-date=2011-10-31 *
&start-index=10
&max-results=100
&prettyprint=true
* = required
![Page 16: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/16.jpg)
Query Explorer
http://tinyurl.com/gdata-explorer
![Page 17: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/17.jpg)
Steps to use the API
1. Authenticate
2. Get your data
3.
![Page 18: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/18.jpg)
Register your Project
https://code.google.com/apis/console
![Page 19: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/19.jpg)
oAuth Authentication
![Page 20: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/20.jpg)
client_secrets.json
{
"installed": {
"auth_uri":"https://accounts.google.com/o/oauth2/auth",
"client_secret":"CleKR0UzPYhfTbjPb3TgeQRBw",
"token_uri":"https://accounts.google.com/o/oauth2/token",
"client_email":"",
"redirect_uris":["urn:ietf:wg:oauth:2.0:oob","oob"],
"client_x509_cert_url":"",
"client_id":"395901729588.apps.googleusercontent.com",
"auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"
}
}
![Page 21: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/21.jpg)
Python Library
¤ Python: Versions 2.5, 2.6, or 2.7
¤ easy_install / pip google-api-python-client
¤ Download file for Google AppEngine ¤ https://developers.google.com/api-client-library/
python/start/installation
![Page 22: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/22.jpg)
Authorize
¤ Copy hello_analytics_api_v3_auth.py
import auth_helper from apiclient.errors import HttpError from oauth2client.client \ import AccessTokenRefreshError service = \ auth_helper.initialize_service()
![Page 23: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/23.jpg)
Get your data
* https://www.google.com/analytics/web/?hl=en&pli=1#dashboard/
ViBLgd51S7YHgitTK4MoYQ/a4126737w34427220p33794370/
service.data().ga().get( ids='ga:' + profile_id*, start_date='2013-‐07-‐01', end_date='2013-‐08-‐01', metrics='ga:visits', dimensions='ga:source', sort='-‐ga:visits,ga:source', filters='ga:medium==organic', max_results='25').execute()
Co
re R
ep
ortin
g A
PI Qu
ery
![Page 24: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/24.jpg)
Handle the results
for row in results.get('rows'): output = [] for cell in row: output.append('%16s' % cell) print ''.join(output)
![Page 25: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/25.jpg)
Handle the results
for header in \ results.get('columnHeaders'): print '%s: %s -‐ %s' % ( header.get('name'), header.get('columnType'), header.get('dataType'))
ga:source: DIMENSION - STRING ga:visits: METRIC - INTEGER
![Page 26: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/26.jpg)
Handle the results
totals = \ results.get('totalsForAllResults') for metric_name, metric_total \ in totals.iteritems(): print '%s = %s' % \ (metric_name, metric_total)
![Page 27: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/27.jpg)
More data
¤ results.get('containsSampledData')
¤ results.get('profileInfo') ¤ info.get('webPropertyId') # UA-XXXXXXX-X ¤ info.get('profileId') ¤ info.get('profileName')
¤ results.get('itemsPerPage')
¤ results.get('totalResults’)
![Page 28: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/28.jpg)
Limits and Quotas
¤ Quotas ¤ 10,000 requests / profile/ day ¤ 10 concurrent requests per profile
¤ Dimensions and Metrics ¤ 7 dimensions ¤ 10 metrics ¤ Valid combinations ¤ Regular expressions: 128 characters
![Page 29: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/29.jpg)
Other Google Analytics APIs
¤ Multi-Channel Funnels Reporting API ¤ https://developers.google.com/analytics/devguides/reporting/mcf/v3/
¤ Management API ¤ https://developers.google.com/analytics/devguides/config/mgmt/v3/
¤ Real Time Reporting API ¤ http://analytics.blogspot.ca/2013/08/google-analytics-launches-real-
time-api.html
¤ See also: Google Analytics superProxy ¤ https://developers.google.com/analytics/solutions/google-
analytics-super-proxy
![Page 30: Exploring the Google Analytics API](https://reader034.vdocument.in/reader034/viewer/2022051512/5444816eafaf9f9c098b4885/html5/thumbnails/30.jpg)