Introduzione all'API Analytics Reporting v4; guida rapida al linguaggio PHP per le applicazioni web

Questo tutorial illustra i passaggi necessari per accedere alla versione 4 dell'API Analytics Reporting.

1. Abilita l'API

Per iniziare a utilizzare l'API Analytics Reporting v4, devi prima utilizzare lo strumento di configurazione, che ti guiderà nella creazione di un progetto nella console API di Google, nell'abilitazione dell'API e nella creazione delle credenziali.

Nota: per creare un ID client web o un client applicazione installata, devi impostare un nome di prodotto nella schermata di consenso. Se non lo hai già fatto, ti verrà chiesto di configurare la schermata per il consenso.

Crea credenziali

  • Apri la pagina Credenziali.
  • Fai clic su Crea credenziali e seleziona ID client OAuth
  • Come Tipo di applicazione, seleziona Applicazione web.
  • Assegna all'ID client il nome quickstart e fai clic su Crea.
  • Lascia vuoto il campo Origini JavaScript autorizzate, che non sono necessarie per questo tutorial.
  • Imposta gli URI di reindirizzamento autorizzati su http://localhost:8080/oauth2callback.php
  • Fai clic su Crea.

Nella pagina Credenziali, fai clic sull'ID client appena creato, quindi fai clic su Scarica JSON e salvalo come client_secrets.json. Ti servirà più avanti nel tutorial.

2. installa la libreria client

Puoi ottenere la libreria client delle API di Google per PHP utilizzando Composer:

composer require google/apiclient:^2.0

3. Configura l'anteprima

Dovrai creare due file:

  • index.php sarà la pagina principale visitata dall'utente.
  • oauth2callback.php gestirà la risposta OAuth 2.0

index.php

Questo file contiene la logica principale per eseguire query sulle API di Google Analytics e visualizzare i risultati.

  • Copia o scarica il primo codice campione in index.php.
  • Sostituisci il valore di VIEW_ID. Puoi utilizzare Esplora account per trovare un ID vista.
<?php

// Load the Google API PHP Client Library.
require_once __DIR__ . '/vendor/autoload.php';

session_start();

$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);


// If the user has already authorized this app then get an access token
// else redirect to ask the user to authorize access to Google Analytics.
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  // Set the access token on the client.
  $client->setAccessToken($_SESSION['access_token']);

  // Create an authorized analytics service object.
  $analytics = new Google_Service_AnalyticsReporting($client);

  // Call the Analytics Reporting API V4.
  $response = getReport($analytics);

  // Print the response.
  printResults($response);

} else {
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}


/**
 * Queries the Analytics Reporting API V4.
 *
 * @param service An authorized Analytics Reporting API V4 service object.
 * @return The Analytics Reporting API V4 response.
 */
function getReport($analytics) {

  // Replace with your view ID, for example XXXX.
  $VIEW_ID = "<REPLACE_WITH_VIEW_ID>";

  // Create the DateRange object.
  $dateRange = new Google_Service_AnalyticsReporting_DateRange();
  $dateRange->setStartDate("7daysAgo");
  $dateRange->setEndDate("today");

  // Create the Metrics object.
  $sessions = new Google_Service_AnalyticsReporting_Metric();
  $sessions->setExpression("ga:sessions");
  $sessions->setAlias("sessions");

  // Create the ReportRequest object.
  $request = new Google_Service_AnalyticsReporting_ReportRequest();
  $request->setViewId($VIEW_ID);
  $request->setDateRanges($dateRange);
  $request->setMetrics(array($sessions));

  $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
  $body->setReportRequests( array( $request) );
  return $analytics->reports->batchGet( $body );
}


/**
 * Parses and prints the Analytics Reporting API V4 response.
 *
 * @param An Analytics Reporting API V4 response.
 */
function printResults($reports) {
  for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
    $report = $reports[ $reportIndex ];
    $header = $report->getColumnHeader();
    $dimensionHeaders = $header->getDimensions();
    $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
    $rows = $report->getData()->getRows();

    for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
      $row = $rows[ $rowIndex ];
      $dimensions = $row->getDimensions();
      $metrics = $row->getMetrics();
      for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
        print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n");
      }

      for ($j = 0; $j < count($metrics); $j++) {
        $values = $metrics[$j]->getValues();
        for ($k = 0; $k < count($values); $k++) {
          $entry = $metricHeaders[$k];
          print($entry->getName() . ": " . $values[$k] . "\n");
        }
      }
    }
  }
}


oauth2callback.php

che gestisce la risposta OAuth 2.0. Copia o scarica il secondo codice campione in oauth2callback.php.

<?php

// Load the Google API PHP Client Library.
require_once __DIR__ . '/vendor/autoload.php';

// Start a session to persist credentials.
session_start();

// Create the client object and set the authorization configuration
// from the client_secrets.json you downloaded from the Developers Console.
$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

// Handle authorization flow from the server.
if (! isset($_GET['code'])) {
  $auth_url = $client->createAuthUrl();
  header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}


4. esegui l'esempio

Esegui l'esempio con un server web configurato per pubblicare PHP. Se usi PHP 5.4 o versioni successive, puoi utilizzare il server web di prova integrato di PHP eseguendo questo comando:

php -S localhost:8080 -t /path/to/sample

quindi visita http://localhost:8080 nel browser.

Al termine di questi passaggi, il campione restituisce il numero di sessioni degli ultimi sette giorni per la vista in questione.