Things I've Tagged ‘Google Analytics’

Page 1 of 1

Interacting With the Google Analytics Core Reporting API

I needed a way for my clients to access analytics data that for a variety of reasons didn’t need or have full access to Google Analytics data through the traditional web app. I found a simple, yet soon to be deprecated, solution to my problem–the Google Analytics Core Reporting API.

There are a couple of libraries that an individual can use, depending on the language you’re working in, and since my expertise is in php, I chose to use the Google Analytics PHP Interface. This happens to interact with the older v2.4 API; unfortunately, I didn’t realize this until I already built the thing…moving on.

Start Me Up

OK, so let’s just assume you already have a Google Analytics account, because frankly why else would you need something like this? So, let’s define a few things, include the gapi class and fill in our information to connect to the core reporting API.

define('ga_email','your@email.com');     // GA Email
define('ga_password','elkkdafasff');     // 2-part authorization password
define('profile_id','2345678');          // Analytics profile ID

require_once 'gapi/gapi.class.php';
$ga = new gapi(ga_email,ga_password);

So now we’ve got an object to work with and we can start grabbing some data for our report.

With the core reporting api, you have certain metrics that you can look at depending on the dimension you’re interested in. To find exactly what metrics go with what dimensions, browse the Dimensions and Metrics Reference.

I already know that I’m interested in seeing the visits, pageviews, pages/visit, and bounce rate of all traffic sources (referrals, search engines, etc.). So, using the object we’ve already created I can define the dimensions and metrics I’m interested in, sort it by greatest number of visits, and limit my results to 50. You’ll also see that you can choose a date range. For this example I’m not providing one, so by default it will show the last month’s worth of data.

$dimensions  = array('source');
$metrics     = array('visits','pageviews','bounces');
$sort_metric = '-visits';
                        			
$ga->requestReportData(profile_id,      
    $dimensions, 
    $metrics, 
    $sort_metric, 
    $filter=null, 
    $start_date=null, 
    $end_date=null, 
    $start_index=1, 
    $max_results=50);

It is also possible to filter your data, so that if you wanted to see only referrals as a source, then you could replace $filter=null with $filter='medium==referral'. For a quick reference of what you might be able to filter, take a look at a list of common queries. Really just explore the documentation there in depth.

So we’ve got our data, now let’s put it in a format that we can browse:

<table>
  <thead>
    <tr>
      <th>&nbsp;</th>
      <th>Source</th>
      <th>Visits</th>
      <th>Pageviews</th>
      <th>Pages/Visit</th>
      <th>Bounce Rate</th>
    </tr>
  </thead>
  <tbody>
  <?php
  $i = 1;
  foreach($ga->getResults() as $result):
  ?>
    <tr>
      <td><?php echo $i; ?>.</td>
      <td><?php echo $result; ?></td>
      <td><?php echo number_format($result->getVisits()); ?></td>
      <td><?php echo number_format($result->getPageviews()); ?></td>
      <td><?php echo number_format(($result->getPageviews()/$result->getVisits()),2); ?></td>
      <td><?php echo number_format(($result->getBounces()/$result->getVisits())*100,2); ?>%</td>
    </tr>
  <?php
  $i++;
  endforeach
  ?>
  </tbody>
</table>

How easy was that?

Utilizing that as a foundation, I was able to turn it into a tool for clients, or for myself, making it easy to get a quick look at stats. If you’re at all interested in using it yourself, let me know in the comments.


Google Analytics Isn’t Functioning Properly When Using Advanced Segments

Without the ability to analyze accurate statistics, we have no way of knowing how our marketing efforts are performing; while this isn’t as big of a deal on my personal web site, my client site’s are a different matter.

I get it. Google Analytics is free, offers a fairly robust package at the price, and is powered by Google. But Google isn’t necessarily in the business of giving things away–on the contrary, they collect of that traffic data and put it to use for their own purposes. The trade off for me is that I get a fairly stable product, with little to no support, for free.

Unfortunately, in my position of a man with no means, I’m stuck when my formerly reliable tool has issues. While searching about, however, I’ve discovered something called Piwik, an open source tool that runs on your servers and helps you track traffic. So far, it doesn’t seem as robust as Analytics, but I haven’t had a chance to really play with it. It is fairly basic, and if that’s what you need, it works just fine.

Anyway, I’m stuck waiting until May 23rd for Google to get their shit together.