PHP Google AnalyticsAPI - 简单示例

时间:2014-01-09 15:43:33

标签: php api google-analytics google-analytics-api

我正在尝试使用此库设置一些基本示例使用Google Analytics:https://github.com/google/google-api-php-client

对于初学者我有:

<?php

require_once 'Google/Client.php';
require_once 'Google/Service/Analytics.php';
$client = new Google_Client();
$client->setApplicationName("Client_Library_Examples");
$client->setDeveloperKey("MY_SECRET_API"); //security measures
$service = new Google_Service_Analytics($client);

$results = $service->data_ga;

echo '<pre>';
print_r($results);
echo '</pre>';

问:如何从此查询中获取Google Analytics数据?

/*
  https://www.googleapis.com/analytics/v3/data/
  ga?ids=ga%123456
  &dimensions=ga%3Acampaign
  &metrics=ga%3Atransactions
  &start-date=2013-12-25
  &end-date=2014-01-08
  &max-results=50
 */

3 个答案:

答案 0 :(得分:1)

$client->setDeveloperKey("MY_SECRET_API");

首先,据我所知,这不适用于身份验证,您需要使用OAuth2身份验证。有两种方法可以使用客户端ID进行Web应用程序或使用服务帐户。的 Authorization api

完成此操作后,您可以拨打此类电话。 (我在这里使用服务帐户)

首先进行身份验证:

$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
    $service_account_name,
    array('https://www.googleapis.com/auth/analytics.readonly'),
    $key
);
$client->setAssertionCredentials($cred);

拨打电话:

$ids = 'ga:123456'; //your id
$startDate = '2013-12-25';
$endDate = '2014-01-08';
$metrics = 'ga:transactions';

$optParams = array(
    'dimensions' => 'ga:campaign',
    'max-results' => '50'
);

$results = $service->data_ga->get($ids, $startDate, $endDate, $metrics, $optParams);

//Dump results
echo "<h3>Results Of Call:</h3>";

echo "dump of results";
var_dump($results);

echo "results['totalsForAllResults']";
var_dump($results['totalsForAllResults']);

echo "results['rows']";
foreach ($results['rows'] as $item) {
    var_dump($item);
}

答案 1 :(得分:0)

您需要执行http get以从网址获取信息。

http://www.php.net/manual/en/function.http-get.php

请记住,在发送该请求之前,您仍需要将Oauth2身份验证代码添加到字符串中。如果您还没有身份验证代码,此链接可能会有所帮助。 https://developers.google.com/analytics/solutions/articles/hello-analytics-api#authorize_access

答案 2 :(得分:0)

你能做的就是创造一个新的功能......

function ga_campaign_transactions($gaEmail, $gaPass, $gProfile, $limit)
{
    require_once('classes/google-analytics/gapi.class.php');

    $gDimensions = array('campaign');
    $gMetrics = array('transactions');
    $gSortMetric = NULL;
    $gFilter = '';
    $gSegment = '';
    $gStartDate = '2013-12-25';
    $gEndDate = '2014-01-08';
    $gStartIndex = 1;
    $gMaxResults = $limit;

    $ga = new gapi($gaEmail, $gaPass);
    $ga->requestReportData($gProfile, $gDimensions, $gMetrics, $gSortMetric, $gFilter, $gSegment, $gStartDate, $gEndDate, $gStartIndex, $gMaxResults);

    $gAnalytics_results = $ga->getResults();

    //RETURN RESULTS
    return $gAnalytics_results;

}


$gProfile = '123456';              // The Profile ID for the account, NOT GA:
$gaEmail = 'YOUR GOOGLE EMAIL';    // Google Email address.
$gaPass  = 'YOUR GOOGLE PASSWORD'; // Google Password.
// NOTE: if 2 step login is turned on, create an application password.

$limit   = 50;
$ga_campaign_transactions = ga_campaign_transactions($gaEmail, $gaPass, $gProfile, $limit)

//OUTPUT
if(!empty($ga_campaign_transactions))
{
    $counter=0;
    $gaCampResults= array(); // CREATE ARRAY TO STORE ALL RESULTS
    foreach($ga_campaign_transactions as $row)
    {

        $dim_list = $row->getDimesions();
        $met_list = $row->getMetrics();

        $gaCampResults[$counter]['campaign'] = $dim_list['campaign'];
        $gaCampResults[$counter]['transactions'] = $met_list['transactions'];
    $counter++;
    }
 }


 if(!empty($gaCampResults))
 {
     $totalCampTransactions = count($gaCampResults);
     ?>
     <h2>We Found ( <?php echo number_format($totalCampTransactions,0);?> ) Results</h2>
     <ul>
     <?php
     foreach($gaCampResults as $gaRow){
       echo "<li>Campaign:".$gaRow['campaign']." | Transactions: ".$gaRow['transactions']."</li>";
     }
     ?>
     </ul>
     <?php
 }

find Analytics Profile ID

Create Google Application password

希望这能让你走上正轨:) 未经测试,但与我一直在使用的相似......

玛蒂