web-dev-qa-db-de.com

PHP Google Analytics API - Einfaches Beispiel

Ich versuche, ein einfaches Beispiel für die Verwendung von Google Analytics mit dieser Bibliothek festzulegen: https://github.com/google/google-api-php-client

Für den Anfang habe ich:

<?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>';

F: Wie erhalte ich aus dieser Abfrage Daten von 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");

Zunächst müssen Sie eine OAuth2-Authentifizierung verwenden, da dies meines Erachtens für die Authentifizierung nicht funktioniert. Hierzu gibt es zwei Möglichkeiten: die Client-ID für die Webanwendung oder die Verwendung eines Dienstkontos.Autorisierungs-API

Danach können Sie einen solchen Anruf tätigen. (Ich benutze hier ein Dienstkonto)

Zuerst authentifizieren:

$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);

Einen Anruf tätigen:

$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

was Sie tun könnten, ist eine neue Funktion zu erstellen ...

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
 }

Analytics-Profil-ID suchen

Passwort für Google-Anwendung erstellen

Hoffentlich bist du damit auf dem richtigen Weg :) ungetestet, aber ähnlich wie ich es benutzt habe ...

Marty

0
Marty

Sie müssen ein http get ausführen, um die Informationen aus der URL abzurufen.

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

Denken Sie daran, dass Sie immer noch den Oauth2-Authentifizierungscode zur Zeichenfolge hinzufügen müssen, bevor Sie diese Anforderung senden können. Dieser Link kann hilfreich sein, wenn Sie noch keinen Authentifizierungscode haben. https://developers.google.com/analytics/solutions/articles/hello-analytics-api#authorize_access

0
DaImTo