Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Symfony 2.7 : intégration de Google Analytics

Par Jérémy PERCHE Publié le 05/10/2016 à 23:14:54 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Ce tutoriel requiert que vous ayez une installation de Symfony 2.7 avec tout ce qui va avec (base de données, composer, etc…), ainsi que d’un compte Google Analytics lié à un site web et bien évidemment les connaissances nécessaires en PHP et Symfony.

Présentation de Google Analytics

Pour les quelques personnes aujourd’hui qui ne connaitraient pas Google Analytics je vais faire une brève présentation.

Google Analytics est l'outil d'analyse du trafic web numéro un, utilisé par plus de 10 millions de sites, soit plus de 80% du marché mondial. L’un de ses grands points forts est qu’il est gratuit et simple d’utilisation, ce qui fait qu’il peut tout aussi bien être utilisé par des novices comme par des éditeurs de site internet professionnels.

Analytics vous permet de glaner de nombreuses informations concernant vos visiteurs telles que :

  • L’évolution globale du trafic de son site, c’est-à-dire le nombre de visites sur la durée ainsi que d’autres données comme les nouveaux utilisateurs, la durée des sessions, le taux de rebonds…

  • Le type de visiteur de son site, en effet Analytics vous permet de savoir entre autre l’âge, le sexe, les centres d’intérêt, l’origine géographique, le comportement sur le site, etc.

  • La fidélisation peut aussi être analysée avec le nombre de visiteurs qui reviennent après leur première visite.

  • L'acquisition, comment on acquiert de nouveaux visiteurs est très important ainsi on peut savoir si ces derniers viennent suite à une campagne marketing, un réseau social, un moteur de recherche ou encore d’un autre site.

    En plus de tous ces outils, il y en a d’autres qui permettent l’analyse de tout ce qui touche aux réseaux sociaux, à tout le domaine du mobile ou encore celui de la publicité en particulier avec Google Adwords.

Initialisation du bundle

Comme pour l’initialisation de n’importe quel bundle en règle générale, il nous faut importer et charger ce dernier. Nous allons donc le faire en trois étapes. En premier lieu, ajoutons le bundle à notre composer.json comme ceci :

{
    "require": {
        …
        "mediafigaro/google-analytics-api-symfony": "^1.0"
    }
}

Mettons ensuite à jour notre composer en tapant la commande suivante dans la console :

php composer.phar update

Pour finir ajoutons dans le AppKernel.php la ligne suivante, afin de charger le bundle dans le noyau de Symfony.

public function registerBundles()
{
    $bundles = array(
        // ...
        new MediaFigaro\GoogleAnalyticsApi\GoogleAnalyticsApi(),
    );
}

Nous en avons fini avec l’initialisation de notre bundle, il fait maintenant partie de notre application, prêt à être configuré.

Configuration du bundle

Création du certificat Google Analytics API v4

Avant toute chose, vous devez déjà avoir créer un projet dans Google API Console si ce n’est pas le cas suivez cet outil.

Nous allons donc obtenir le certificat pour pouvoir requêter l’API de Google Analytics. Pour se faire rendez-vous sur la page « Compte de service » et sélectionner votre projet.

Une fois que cela est fait, cliquer sur Créer un compte de service en haut de la page pour arriver sur une interface où il faut rentrer un nom de compte de service ainsi que cocher « Indiquer une nouvelle clé privée » au format JSON pour finaliser la création du compte comme dans le screenshoot ci-dessous.

Le compte est maintenant crée et le certificat téléchargé au format JSON, il nous reste une dernière étape dans la configuration côté Google, celle d’ajouter des autorisations sur Google Analytics à l’adresse email liée au certificat que l’on vient de créer.

Pour ce faire on récupère en premier lieu l’adresse email liée au certificat dans « Compte de service » sous le label « ID du compte de service », c’est une adresse qui finit généralement par iam.gserviceaccount.com

Puis on se rend dans l’administration de Google Analytics ainsi que dans Gestion des utilisateurs pour ajouter un nouvel utilisateur.

Modification des fichiers de configuration

Avant d’entamer la configuration de Symfony, il est nécessaire de récupérer l’identifiant de vue dans Google Analytics puisque c’est un paramètre qui est demandé pratiquement lors de chaque requête à l’API. Pour récupérer cette identifiant, rendez-vous dans l’administration de votre compte Google Analytics et cliquer sur « Paramètres de la vue ».

On a donc tous les éléments nécessaires maintenant. Pour que notre bundle soit fonctionnel au sein de Symfony, il nous faut modifier les fichiers app/config/config.yml et app/config/parameters.yml pour y ajouter le chemin vers le certificat ainsi que l’identifiant de la vue.

app/config/config.yml

# Google Analytics Bundle Configuration
google_analytics_api:
    google_analytics_json_key: "%google_analytics_json_key%"

app/config/parameters.yml

google_analytics_json_key: ../app/Resources/analytics/auth-0000000000000.json
google_analytics_view_id: 'yourViewId'

Surtout ne pas oublier de placer son certificat au niveau du chemin spécifié, /app/Resources/analytics dans cet exemple.

Notre bundle est maintenant configuré et prêt à être utilisé, on peut dès à présent créer un contrôleur et requêter l’API Google Analytics :

// src/AppBundle/Controller/DefaultController.php

public function indexAction()
{

    $analyticsService = $this->get('google_analytics_api.api');
    $viewId = $this->container->getParameter('google_analytics_view_id');
    
    $sessions = $analyticsService->getSessionsDateRange($viewId,'30daysAgo','today');
    $bounceRate = $analyticsService->getBounceRateDateRange($viewId,'30daysAgo','today');
    $avgTimeOnPage = $analyticsService->getAvgTimeOnPageDateRange($viewId,'30daysAgo','today');
    $pageViewsPerSession = $analyticsService->getPageviewsPerSessionDateRange($viewId,'30daysAgo','today');
    $percentNewVisits = $analyticsService->getPercentNewVisitsDateRange($viewId,'30daysAgo','today');
    $pageViews = $analyticsService->getPageViewsDateRange($viewId,'30daysAgo','today');
    $avgPageLoadTime = $analyticsService->getAvgPageLoadTimeDateRange($viewId,'30daysAgo','today');

    echo $sessions;

    return $this->render('demoBundle:Analytics:index.html.twig');
}

Ainsi notre contrôleur va nous renvoyer le nombre de sessions ainsi que d'autres informations durant les 30 derniers jours. Pour voir plus de métriques possibles à obtenir direction la documentation Google Analytics API v4.

Merci de votre lecture !

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels