Retrieving Data from Google Analytics API using PHP

Recently I started playing with the google analytics API, looking at ways to bring analytics onto dashboards and generate simple reports from the data in there. Very shortly after I started to look at the API, I had working data retrieval, so I thought I’d share my experiences (and code!).I am using OAuth for authentication, and I blogged about using Google and OAuth previously so feel free to pop over there to find out more about that. I used the pecl_oauth extension to make all the requests to analytics, but even for another technology choice, the concepts apply so keep reading :)

Analytics Parameters

The data format for analytics is fairly comprehensive and easy to understand – see their data feed reference document for a clear outline of the parameters that can be passed and what format they can take. I am using the ids parameter (which is the tableId I showed retrieval of in the earlier blog post), the date parameters, metrics, dimensions and sort – so my code looks something like this, with the parameters set in $query_data.

        $oauth = new OAuth($oauth_consumer_key, $oauth_consumer_secret);
        $oauth->setToken($token, $token_secret);

        $oauth->fetch('https://www.google.com/analytics/feeds/data', $query_data);
        $result = $oauth->getLastResponse();

Combining Parameters

The biggest problem I’m encountering with the analytics is understanding how to combine the dimension and metrics parameters to get useful data. It is pretty easy to report on visitors by day/week/month, over a given date range, but getting more meaningful and useful statistics is still a work in progress! There is some documentation, which is exhaustive, but doesn’t link the available data to the sorts of questions users actually want to ask. If anyone has any suggestions on good combinations to use, I’d absolutely love to hear them – leave me a comment and I’ll post again if/when have some better data patterns!

9 thoughts on “Retrieving Data from Google Analytics API using PHP

  1. Cool! thanks for the link.

    I used to work for a SEO/Web company so i was up to date with everything but lately i have no time. Its great to know the link to api and that it is so simple.

    If i needed to make a dashboard now i am sure i would pull GA key metrics onto it : -)

    Cheers for the link

    • OAuth would be my recommendation, it can seem complicated because there are multiple steps but I found that once I got started it was very approachable. The code examples here and in my previous post are all you need … give it a shot and good luck!

  2. I haven’t looked at the supplied PHP classes lately, but when I was working on this project, there were new API features in google not supported by any of the class libraries. And I have an interest in digital identity, so as Martin says the OAuth option was important and interesting to me.

Leave a Reply

Please use [code] and [/code] around any source code you wish to share.

This site uses Akismet to reduce spam. Learn how your comment data is processed.