Exploring the Google Analytics API

6,931 views

Published on

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.

Published in: Technology, Business
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,931
On SlideShare
0
From Embeds
0
Number of Embeds
3,476
Actions
Shares
0
Downloads
34
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Exploring the Google Analytics API

  1. 1. Exploring the Google Analytics API Vanessa Sabino @bani
  2. 2. Google Analytics It’s all about Data •  Web sites •  Mobile apps •  Coffee makers* •  Etc. * http://youtu.be/C27yMQOS8n0
  3. 3. Google Analytics
  4. 4. Goals & Conversion Optimization
  5. 5. The Core Reporting API https://developers.google.com/analytics/devguides/reporting/core/v3/
  6. 6. Why use the API? 1.  Productivity (and less sampling) http://xkcd.com/303/
  7. 7. Why use the API? 1.  Productivity 2.  + Results max-results=10,000
  8. 8. Why use the API? 1.  Productivity 2.  + Results 3.  + Dimensions Up to 7 dimensions!
  9. 9. Why use the API? 1.  Productivity 2.  + Results 3.  + Dimensions 4.  Visualization http://tinyurl.com/GA-Apps
  10. 10. Why use the API? 1.  Productivity 2.  + Results 3.  + Dimensions 4.  Visualization 5.  Web apps http://sumall.com/
  11. 11. Why use the API? 1.  Productivity 2.  + Results 3.  + Dimensions 4.  Visualization 5.  Web apps 6.  Data storage
  12. 12. API Concepts
  13. 13. Metrics & Dimensions https://developers.google.com/analytics/devguides/reporting/core/dimsmets
  14. 14. 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
  15. 15. 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
  16. 16. Query Explorer http://tinyurl.com/gdata-explorer
  17. 17. Steps to use the API 1.  Authenticate 2.  Get your data 3. 
  18. 18. Register your Project https://code.google.com/apis/console
  19. 19. oAuth Authentication
  20. 20. 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"      }   }  
  21. 21. 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
  22. 22. 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()  
  23. 23. 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()   CoreReportingAPIQuery
  24. 24. Handle the results   for  row  in  results.get('rows'):      output  =  []      for  cell  in  row:          output.append('%16s'  %  cell)      print  ''.join(output)  
  25. 25. 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
  26. 26. Handle the results   totals  =     results.get('totalsForAllResults')     for  metric_name,  metric_total     in  totals.iteritems():      print  '%s  =  %s'  %        (metric_name,  metric_total)  
  27. 27. 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’)
  28. 28. 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
  29. 29. 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
  30. 30. Thank you Vanessa Sabino @bani vanessa@weureka.com http://www.slideshare.net/vanessasabino/

×