ZW3B :-: API Client * Contents * Docs by LAB3W.ORJ

Translate this page

Name : BETA-TESTERS

Project name : ZW3B-API-BETA-TESTERS

Authorized. - 200 - Client API Name and Origin Wildcard OK

¿Comment? 'Ou' ¿Que faire?, Développement, Google, Comment récupérer des valeurs google analytics et les afficher sur votre site

Utiliser ce code PHP pour initialiser un compte de service et afficher les pages actives sur votre site Web - API Google Analytics

Author : O.Romain.Jaillet-ramey

Je vous écris une petite documentation pour travailler avec les API Google.

Je souhaite accéder à mon compte Google Analytics grâce à l'API Google Analytics pour afficher des valeurs sur mon site Web - ZW3B.Site :-: Stats .

Comment-faire ?

Créer un compte de Service

Dans un premier temps, il faut créer dans votre Console Cloud Plateform sur la page Identifiants un Compte de Service - un email.

Par exemple : google-analytics@PROJECT-ID.iam.gserviceaccount.com

Récupérer les JSON de compte de Service pour l'envoyer dans la variable setAuthConfigFile au moment de l'initialisation.

Je viens de m'apercevoir que Google API développeurs nous conseille d'utiliser :

Les clés de compte de service peuvent présenter un risque de sécurité si elles sont compromises. Nous vous recommandons d'éviter de télécharger les clés de compte de service et d'utiliser plutôt la fédération d'identité de charge de travail . Pour en savoir plus sur le meilleur moyen d'authentifier les comptes de service sur Google Cloud, cliquez ici .

Autoriser le compte de service à pourvoir accéder à votre compte Analytics

Il faudra lui (cette adresse email de compte de service) donner accès à votre compte Google Analytics depuis la plateforme Google Analytics .

  1. Selectionner un de vos tags/propriétés Analytics
  2. Cliquer en bas, sur Admin
  3. Puis dans les paramètres de Vues -> Sélectionner Gestion des accès à la vue
  4. Puis ajouter l'email du compte de service en Lire et analyser par exemple.

Script PHP

Si vous n'avez pas encore installer les APIs Google, vous pouvez le faire facilement avec composer.

Initialise mon compte PHP

J'initialise le client pour accéder à Google Analytics.

Script avec 50 lignes

001[php]
002// Je précise que j'ai installé l'API Google_Client avec composer.
003
004function initializeCompteservice() {
005    
006    if(file_exists('/var/pro/web_lib/php/vendor/google/apiclient/src/vendor/autoload.php'))
007        require_once  $dir_web_lib.'vendor/autoload.php';
008        
009        try {
010            
011            $client = new Google_Client();
012            // API
013            $client->setApplicationName('API Google Analytics test');
014            // Comptes de service (par exemple dans un répertoire hors web)
015            $client->setAuthConfigFile('/etc/google/google-analytics-iam.gserviceaccount.com.json');
016            
017            // https://developers.google.com/identity/protocols/oauth2/scopes#analytics
018            $client->setScopes(
019                array(
020                    # API Google Analytics , v3 - https://developers.google.com/analytics
021                    'https://www.googleapis.com/auth/analytics.readonly' // Afficher vos données Google Analytics
022                    /*, 'https://www.googleapis.com/auth/analytics' // Affichez et gérez vos données Google Analytics
023                     , 'https://www.googleapis.com/auth/analytics.edit' // Modifier les entités de gestion de Google Analytics
024                     , 'https://www.googleapis.com/auth/analytics.manage.users' // Gérer les utilisateurs du compte Google Analytics par adresse e-mail
025                     , 'https://www.googleapis.com/auth/analytics.manage.users.readonly' // Afficher les autorisations des utilisateurs de Google Analytics
026                     , 'https://www.googleapis.com/auth/analytics.provision' // Créer un nouveau compte Google Analytics avec sa propriété et sa vue par défaut
027                     , 'https://www.googleapis.com/auth/analytics.user.deletion' // Gérer les demandes de suppression d'utilisateurs Google Analytics
028                     */
029                )
030            );
031            
032            $redirect_uri = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
033            
034            $client->setRedirectUri($redirect_uri);
035            
036        }
037        catch (Google_Service_Exception $e) {
038            //$error = sprintf('<p>A service error occurred: <code class="code">%s</code></p>',
039            $error = ($e->getMessage());
040            $error = json_decode($error);
041        }
042        catch (Google_Exception $e) {
043            //$error = sprintf('<p>An client error occurred: <code class="code">%s</code></p>',
044            $error = ($e->getMessage());
045            $error = json_decode($error);
046        }
047        
048        return isset($client) && is_object($client) ? $client : $error;
049}
050[/php]
Retirer les numéros de lignes

Récupération des valeurs realtime

Je vous écris un script pour afficher les pages Web des internautes actifs sur une des vue (Site Web) Analytics.

Script avec 33 lignes

001[php]
002function get_active_users($id_view, $analytics) {
003    
004    $id_view = isset($id_view) ? $id_view : '95109434';
005    
006    $metrics  = 'rt:activeUsers';
007    
008    // 7 parametres dans les dimensions maximum
009    $queryParams = array(
010        'dimensions' => 'rt:pageTitle,rt:pagePath,rt:country,rt:city,rt:browser,rt:operatingSystem,rt:operatingSystemVersion',
011        'max-results' => 10
012    );
013    
014    try {
015        
016        $results = $analytics->data_realtime->get('ga:'.$id_view.'', $metrics, $queryParams);
017        
018    }
019    catch (Google_Service_Exception $e) {
020        //$error = sprintf('<p>A service error occurred: <code class="code">%s</code></p>',
021        $error = ($e->getMessage());
022        $error = json_decode($error);
023    }
024    catch (Google_Exception $e) {
025        //$error = sprintf('<p>An client error occurred: <code class="code">%s</code></p>',
026        $error = ($e->getMessage());
027        $error = json_decode($error);
028    }
029    
030    return isset($results) && is_object($results) ? $results : $error;
031    
032}
033[/php]
Retirer les numéros de lignes

Tester :

Script avec 36 lignes

001[php]
002$ga['website'] = 'howto.zw3b.fr';
003$ga['id_view'] = '95109434'; // ID de la vue (et non du tag Analytics)
004
005$analytics = initializeCompteservice();
006$realtime = get_active_users($ga['id_view'], $analytics);
007
008$datas['rows'] = isset($realtime->rows) && is_array($realtime->rows) ? $realtime->rows : null;
009
010// Je re-écris les valeurs (avec des noms) - rows[0] est la 1ère valeur envoyée dans la $queryParams['dimensions'].
011if(isset($datas['rows']) && is_array($datas['rows'])):
012foreach($datas['rows'] as $c => $rows) {
013    
014    $dat['rows'][$c]['title'] = $rows[0];
015    $dat['rows'][$c]['url'] = '//'.$ga['website'].''.$rows[1];
016    $dat['rows'][$c]['internaute']['country'] = $rows[2];
017    $dat['rows'][$c]['internaute']['city'] = $rows[3];
018    $dat['rows'][$c]['internaute']['browser'] = $rows[4];
019    $dat['rows'][$c]['internaute']['operatingSystem'] = ''.$rows[5].' '.$rows[6];
020    
021}
022endif;
023
024// Puis enfin le résultat
025
026if(isset($dat['rows']) && is_array($dat['rows'])):
027echo '<ul>';
028foreach($dat['rows'] as $rows) {
029    
030    echo '<li><a href="'.$rows['url'].'">'.$rows['title'].'</a></li>';
031    
032}
033echo '</ul>';
034endif;
035
036[/php]
Retirer les numéros de lignes

Çà doit fonctionner - Sans avoir essayer ce script (juste ci-dessus) :/


API Google Analytics : Creating a Realtime Report
API Google Analytics : Realtime Dimensions & Metrics