En utilisant ce package, vous pouvez facilement récupérer des données de Google Analytics.
Voici quelques exemples des méthodes proposées :
use Spatie Analytics Facades Analytics ;
use Spatie Analytics Period ;
/ / fetch the most visited pages for today and the past week
Analytics:: fetchMostVisitedPages (Period:: days ( 7 ));
/ / fetch visitors and page views for the past week
Analytics:: fetchVisitorsAndPageViews (Period:: days ( 7 ));
La plupart des méthodes renverront un objet IlluminateSupportCollection
contenant les résultats.
Nous investissons beaucoup de ressources dans la création des meilleurs packages open source de leur catégorie. Vous pouvez nous soutenir en achetant l'un de nos produits payants.
Nous apprécions grandement que vous nous envoyiez une carte postale de votre ville natale, mentionnant le(s) forfait(s) que vous utilisez. Vous trouverez notre adresse sur notre page contact. Nous publions toutes les cartes postales reçues sur notre mur virtuel de cartes postales.
Ce package peut être installé via Composer.
composer require spatie/laravel-analytics
Facultativement, vous pouvez publier le fichier de configuration de ce package avec cette commande :
php artisan vendor:publish --tag= " analytics-config "
Le fichier de configuration suivant sera publié dans config/analytics.php
return [
/ *
* The property id of which you want to display data .
* /
' property_id ' => env ( ' ANALYTICS_PROPERTY_ID ' ),
/ *
* Path to the client secret json file . Take a look at the README of this package
* to learn how to get this file . You can also pass the credentials as an array
* instead of a file path .
* /
' service_account_credentials_json ' => storage_path ( ' app/analytics/service-account-credentials.json ' ),
/ *
* The amount of minutes the Google API responses will be cached .
* If you set this to zero , the responses won 't be cached at all.
*/
' cache_lifetime_in_minutes ' => 60 * 24 ,
/ *
* Here you may configure the "store" that the underlying Google_Client will
* use to store it 's data. You may also add extra parameters that will
* be passed on setCacheConfig (see docs for google-api-php-client).
*
* Optional parameters: "lifetime", "prefix"
*/
' cache ' => [
' store ' => ' file ' ,
],
];
La première chose que vous devrez faire est d'obtenir des informations d'identification pour utiliser les API Google. Je suppose que vous avez déjà créé un compte Google et que vous êtes connecté. Rendez-vous sur le site de l'API Google et sélectionnez ou créez un projet.
Ensuite, nous devons spécifier quelles API le projet peut utiliser. Accédez à la bibliothèque d'API et recherchez « Google Analytics Data API ».
Choisissez activer pour activer l'API.
Maintenant que vous avez créé un projet ayant accès à l'API Analytics, il est temps de télécharger un fichier avec ces informations d'identification. Cliquez sur « Identifiants » dans la barre latérale. Vous souhaiterez créer une « Clé de compte de service ».
Sur l'écran suivant, vous pouvez donner un nom au compte de service. Vous pouvez le nommer comme vous le souhaitez. Dans l'identifiant du compte de service, vous verrez une adresse e-mail. Nous utiliserons cette adresse e-mail plus loin dans ce guide.
Accédez à l'écran de détails de votre compte de service créé et sélectionnez « Clés », dans la liste déroulante « Ajouter une clé », sélectionnez « Créer une nouvelle clé ».
Sélectionnez « JSON » comme type de clé et cliquez sur « Créer » pour télécharger le fichier JSON.
Enregistrez le json dans votre projet Laravel à l'emplacement spécifié dans la clé service_account_credentials_json
du fichier de configuration de ce package. Étant donné que le fichier json contient des informations potentiellement sensibles, je ne recommande pas de le publier dans votre référentiel git.
Je suppose que vous avez déjà créé un compte Analytics sur le site Analytics et que vous utilisez les nouvelles propriétés GA4.
Vous devrez d’abord connaître l’identifiant de votre propriété. Dans Analytics, accédez à Paramètres > Paramètres de propriété. Ici, vous pourrez copier votre identifiant de propriété. Utilisez cette valeur pour la clé ANALYTICS_PROPERTY_ID
dans votre fichier .env.
Nous devrons maintenant donner accès au compte de service que vous avez créé. Accédez à « Gestion des accès à la propriété » dans la section Admin de la propriété. Cliquez sur le signe plus dans le coin supérieur droit pour ajouter un nouvel utilisateur.
Sur cet écran, vous pouvez accorder l'accès à l'adresse e-mail trouvée dans la clé client_email
à partir du fichier json que vous avez téléchargé à l'étape précédente. Le rôle d’analyste est suffisant.
Une fois l'installation terminée, vous pouvez facilement récupérer les données Analytics. Presque toutes les méthodes renverront une instance IlluminateSupportCollection
.
Voici quelques exemples utilisant des points
use Spatie Analytics Facades Analytics ;
/ / retrieve visitors and page view data for the current day and the last seven days
$ analyticsData = Analytics:: fetchVisitorsAndPageViews (Period:: days ( 7 ));
/ / retrieve visitors and page views since the 6 months ago
$ analyticsData = Analytics:: fetchVisitorsAndPageViews (Period:: months ( 6 ));
$analyticsData
est une Collection
dans laquelle chaque élément est un tableau contenant les clés date
, visitors
et pageViews
Si vous souhaitez avoir plus de contrôle sur la période pour laquelle vous souhaitez récupérer des données, vous pouvez transmettre un startDate
et un endDate
à l'objet période.
$ startDate = Carbon:: now ()-> subYear ();
$ endDate = Carbon:: now ();
Period:: create ( $ startDate , $ endDate );
public function fetchVisitorsAndPageViews( Period $ period ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés activeUsers
, screenPageViews
et pageTitle
.
public function fetchVisitorsAndPageViewsByDate( Period $ period ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés date
, activeUsers
, screenPageViews
et pageTitle
.
public function fetchTotalVisitorsAndPageViews( Period $ period ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés date
, date
, visitors
et pageViews
.
public function fetchMostVisitedPages( Period $ period , int $ maxResults = 20 ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés fullPageUrl
, pageTitle
et screenPageViews
.
public function fetchTopReferrers( Period $ period , int $ maxResults = 20 ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés screenPageViews
et pageReferrer
.
public function fetchUserTypes( Period $ period ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés activeUsers
et newVsReturning
qui peuvent être égales à new
ou returning
.
public function fetchTopBrowsers( Period $ period , int $ maxResults = 10 ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés screenPageViews
et browser
.
public function fetchTopCountries( Period $ period , int $ maxResults = 10 ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés screenPageViews
et country
.
public function fetchTopOperatingSystems( Period $ period , int $ maxResults = 10 ): Collection
La fonction renvoie une Collection
dans laquelle chaque élément est un tableau contenant les clés screenPageViews
et operatingSystem
.
Pour toutes les autres requêtes, vous pouvez utiliser la fonction get
.
public function get( Period $ period , array $ metrics , array $ dimensions = [], int $ limit = 10 , array $ orderBy = [], FilterExpression $ dimensionFilter = null , FilterExpression $ metricFilter = null ): Collection
Voici quelques informations supplémentaires sur les arguments que vous pouvez transmettre :
Period $period
: un objet SpatieAnalyticsPeriod pour indiquer la date de début et de fin de votre requête.
array $metrics
: un tableau de métriques à récupérer. Vous pouvez trouver une liste de toutes les mesures ici.
array $dimensions
: un tableau de dimensions pour regrouper les résultats. Vous pouvez trouver une liste de toutes les dimensions ici.
int $limit
: le nombre maximum de résultats à renvoyer.
array $orderBy
: d'objets OrderBy pour trier les résultats.
array $offset
: La valeur par défaut est 0, vous pouvez l'utiliser en combinaison avec le paramètre $limit pour avoir la pagination.
bool $keepEmptyRows
: Si faux ou non spécifié, chaque ligne avec toutes les métriques égales à 0 ne sera pas renvoyée. Si c'est vrai, ces lignes seront renvoyées si elles ne sont pas supprimées séparément par un filtre.
Par exemple:
$ orderBy = [
OrderBy:: dimension ( ' date ' , true ),
OrderBy:: metric ( ' pageViews ' , false ),
];
FilterExpression $dimensionFilter
: filtre le résultat pour inclure uniquement des valeurs de dimension spécifiques. Vous pouvez trouver plus de détails ici.
Par exemple:
use Google Analytics Data V1beta Filter ;
use Google Analytics Data V1beta FilterExpression ;
use Google Analytics Data V1beta Filter StringFilter ;
use Google Analytics Data V1beta Filter StringFilter MatchType ;
$ dimensionFilter = new FilterExpression ([
' filter ' => new Filter ([
' field_name ' => ' eventName ' ,
' string_filter ' => new StringFilter ([
' match_type ' => MatchType:: EXACT ,
' value ' => ' click ' ,
]),
]),
]);
FilterExpression $metricFilter
: filtre appliqué après l'agrégation des lignes du rapport, similaire à la clause have SQL. Les dimensions ne peuvent pas être utilisées dans ce filtre. Vous pouvez trouver plus de détails ici.
Par exemple:
use Google Analytics Data V1beta Filter ;
use Google Analytics Data V1beta FilterExpression ;
use Google Analytics Data V1beta Filter NumericFilter ;
use Google Analytics Data V1beta NumericValue ;
use Google Analytics Data V1beta Filter NumericFilter Operation ;
$ metricFilter = new FilterExpression ([
' filter ' => new Filter ([
' field_name ' => ' eventCount ' ,
' numeric_filter ' => new NumericFilter ([
' operation ' => Operation:: GREATER_THAN ,
' value ' => new NumericValue ([
' int64_value ' => 3 ,
]),
]),
]),
]);
## Testing
Run the tests with:
``` bash
vendor/bin/pest
Veuillez consulter CHANGELOG pour plus d'informations sur ce qui a changé récemment.
Veuillez consulter CONTRIBUER pour plus de détails.
Si vous avez trouvé un bug concernant la sécurité, veuillez envoyer un mail à [email protected] au lieu d'utiliser le suivi des problèmes.
Et un merci tout spécial à Caneco pour le logo
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.