web-dev-qa-db-ja.com

PHP Google AnalyticsAPI-簡単な例

このライブラリでGoogleAnalyticsを使用するいくつかの基本的な例を設定しようとしています: 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>';

Q:このクエリから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
 */
8
$client->setDeveloperKey("MY_SECRET_API");

まず第一に、これが認証に機能しないことを私が経験した限り、OAuth2認証を使用する必要があります。これを行うには、WebアプリケーションのクライアントIDを使用するか、サービスアカウントを使用するかの2つのオプションがあります。 認証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
Prutpot

あなたができることは、新しい関数を作成することです...

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
 }

アナリティクスプロファイルIDを検索

Googleアプリケーションのパスワードを作成

うまくいけば、それはあなたを正しい軌道に乗せるでしょう:)これはテストされていませんが、私が使っていたものと似ています...

マーティ

0
Marty

URLから情報を取得するには、httpgetを実行する必要があります。

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

そのリクエストを送信する前に、文字列にOauth2認証コードを追加する必要があることに注意してください。このリンクは、認証コードをまだ持っていない場合に役立つ可能性があります。 https://developers.google.com/analytics/solutions/articles/hello-analytics-api#authorize_access

0
DaImTo