Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Exploring the Google Analytics API (Vanessa Sab...

Exploring the Google Analytics API (Vanessa Sabino)

Google Analytics is an excellent tool to track what happens in your website or your mobile app. In this talk, you learn how to query your data using the Python library for the Core Reporting API and why you should be doing it.

PyCon Canada

August 11, 2013
Tweet

More Decks by PyCon Canada

Other Decks in Programming

Transcript

  1. Google Analytics It’s all about Data •  Web sites • 

    Mobile apps •  Coffee makers* •  Etc. * http://youtu.be/C27yMQOS8n0
  2. Why use the API? 1.  Productivity 2.  + Results 3. 

    + Dimensions 4.  Visualization http://tinyurl.com/GA-Apps
  3. Why use the API? 1.  Productivity 2.  + Results 3. 

    + Dimensions 4.  Visualization 5.  Web apps http://sumall.com/
  4. Why use the API? 1.  Productivity 2.  + Results 3. 

    + Dimensions 4.  Visualization 5.  Web apps 6.  Data storage
  5. 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
  6. 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
  7. 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"      }   }  
  8. Python Library ¤ Python: Versions 2.5, 2.6, or 2.7 ¤ easy_install /

    pip google-api-python-client ¤ Separate file for Google AppEngine ¤  https://developers.google.com/api-client-library/ python/start/installation
  9. 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()  
  10. Get your data * https://www.google.com/analytics/web/?hl=en&pli=1#dashboard/ ViBLgd51S7YHgitTK4MoYQ/a4126737w34427220 p33794370/   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()   Core Reporting API Query
  11. Handle the results   for  row  in  results.get('rows'):    

     output  =  []      for  cell  in  row:          output.append('%16s'  %  cell)      print  ''.join(output)  
  12. 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
  13. Handle the results   totals  =  \   results.get('totalsForAllResults')  

      for  metric_name,  metric_total  \   in  totals.iteritems():      print  '%s  =  %s'  %  \      (metric_name,  metric_total)  
  14. 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
  15. 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 ¤ Google Analytics superProxy ¤  https://developers.google.com/analytics/solutions/google- analytics-super-proxy