<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.gdata.analytics">
    <title>Using Google Analytics</title>

    <para>
        The Google Analytics <acronym>API</acronym> allows client applications to 
        request data, saved in the analytics accounts.
    </para>

    <para>
        See <ulink
            url="http://code.google.com/apis/analytics/docs/gdata/v2/gdataOverview.html">http://code.google.com/apis/analytics/docs/gdata/v2/gdataOverview.html</ulink>
        for more information about the Google Analytics <acronym>API</acronym>.
    </para>

    <sect2 id="zend.gdata.analytics.accounts">
        <title>Retrieving account data</title>

        <para>
           Using the account feed, you are able to retrieve a list of all the accounts available to a specified user.  
        </para>

        <programlisting language="php"><![CDATA[
$service = Zend_Gdata_Analytics::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($email, $password, $service);
$analytics = new Zend_Gdata_Analytics($client);  
$accounts = $analytics->getAccountFeed();

foreach ($accounts as $account) {  
  echo "\n{$account->title}\n";
}
]]></programlisting>

        <para>
            The <command>$analytics->getAccountFeed()</command> call, results in a 
            <classname>Zend_Gdata_Analytics_AccountFeed</classname> object that  contains
            <classname>Zend_Gdata_Analytics_AccountEntry</classname> objects. Each of this
            objects represent a google analytics account.
        </para>
    </sect2>

    <sect2 id="zend.gdata.analytics.reports">
        <title>Retrieving report data</title>

        <para>
            Besides the account feed, google offers a data feed, to retrieve report data using
            the Google Analytics <acronym>API</acronym>. To easily request for these reports,
            Zend_Gdata_Analytics offers a simple query construction interface. You can use all
            the <ulink url="http://code.google.com/intl/de-CH/apis/analytics/docs/gdata/dimsmets/dimsmets.html">metrics
            and dimensions</ulink> specified by the API. Additionaly you can apply some <ulink url="http://code.google.com/intl/de-CH/apis/analytics/docs/gdata/v2/gdataReferenceDataFeed.html#filters">filters</ulink>
            to retrieve some <ulink url="http://code.google.com/intl/de-CH/apis/analytics/docs/gdata/gdataCommonQueries.html">common
            data</ulink> or even complex results.
        </para>

        <programlisting language="php"><![CDATA[
$query = $service->newDataQuery()->setProfileId($profileId)  
  ->addMetric(Zend_Gdata_Analytics_DataQuery::METRIC_BOUNCES)   
  ->addMetric(Zend_Gdata_Analytics_DataQuery::METRIC_VISITS) 
  ->addDimension(Zend_Gdata_Analytics_DataQuery::DIMENSION_MEDIUM)  
  ->addDimension(Zend_Gdata_Analytics_DataQuery::DIMENSION_SOURCE)  
  ->addFilter("ga:browser==Firefox")  
  ->setStartDate('2011-05-01')   
  ->setEndDate('2011-05-31')   
  ->addSort(Zend_Gdata_Analytics_DataQuery::METRIC_VISITS, true)  
  ->addSort(Zend_Gdata_Analytics_DataQuery::METRIC_BOUNCES, false)  
  ->setMaxResults(50); 
  
$result = $analytics->getDataFeed($query);
foreach($result as $row){  
  echo $row->getMetric('ga:visits')."\t";  
  echo $row->getValue('ga:bounces')."\n";  
}
]]></programlisting>
    </sect2>
</sect1>
