Con este paquete puede recuperar fácilmente datos de Google Analytics.
A continuación se muestran algunos ejemplos de los métodos proporcionados:
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 mayoría de los métodos devolverán un objeto IlluminateSupportCollection
que contiene los resultados.
Invertimos muchos recursos en la creación de los mejores paquetes de código abierto. Puedes apoyarnos comprando uno de nuestros productos pagos.
Apreciamos mucho que nos envíe una postal desde su ciudad natal, mencionando cuál de nuestros paquetes está utilizando. Encontrarás nuestra dirección en nuestra página de contacto. Publicamos todas las postales recibidas en nuestro muro virtual de postales.
Este paquete se puede instalar a través de Composer.
composer require spatie/laravel-analytics
Opcionalmente, puedes publicar el archivo de configuración de este paquete con este comando:
php artisan vendor:publish --tag= " analytics-config "
El siguiente archivo de configuración se publicará en 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 ' ,
],
];
Lo primero que deberá hacer es obtener algunas credenciales para utilizar las API de Google. Supongo que ya creó una cuenta de Google y ha iniciado sesión. Diríjase al sitio de la API de Google y seleccione o cree un proyecto.
A continuación debemos especificar qué API puede consumir el proyecto. Vaya a la biblioteca API y busque "API de datos de Google Analytics".
Elija habilitar para habilitar la API.
Ahora que ha creado un proyecto que tiene acceso a la API de Analytics, es hora de descargar un archivo con estas credenciales. Haga clic en "Credenciales" en la barra lateral. Querrá crear una "Clave de cuenta de servicio".
En la siguiente pantalla puede darle un nombre a la cuenta de servicio. Puedes nombrarlo como quieras. En la identificación de la cuenta de servicio verá una dirección de correo electrónico. Usaremos esta dirección de correo electrónico más adelante en esta guía.
Vaya a la pantalla de detalles de su cuenta de servicio creada y seleccione "claves", en el menú desplegable "Agregar clave", seleccione "Crear nueva clave".
Seleccione "JSON" como tipo de clave y haga clic en "Crear" para descargar el archivo JSON.
Guarde el json dentro de su proyecto Laravel en la ubicación especificada en la clave service_account_credentials_json
del archivo de configuración de este paquete. Debido a que el archivo json contiene información potencialmente confidencial, no recomiendo enviarlo a su repositorio git.
Supongo que ya creó una cuenta de Analytics en el sitio de Analytics y está utilizando las nuevas propiedades GA4.
Primero necesitará saber el número de identificación de su propiedad. En Analytics, vaya a Configuración > Configuración de propiedad. Aquí podrá copiar su identificación de propiedad. Utilice este valor para la clave ANALYTICS_PROPERTY_ID
en su archivo .env.
Ahora necesitaremos dar acceso a la cuenta de servicio que creó. Vaya a "Gestión de acceso a la propiedad" en la sección Administrador de la propiedad. Haga clic en el signo más en la esquina superior derecha para agregar un nuevo usuario.
En esta pantalla puede otorgar acceso a la dirección de correo electrónico que se encuentra en la clave client_email
del archivo json que descargó en el paso anterior. El rol de analista es suficiente.
Cuando finalice la instalación, podrá recuperar fácilmente los datos de Analytics. Casi todos los métodos devolverán una instancia de IlluminateSupportCollection
.
A continuación se muestran algunos ejemplos que utilizan puntos.
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
es una Collection
en la que cada elemento es una matriz que contiene las claves date
, visitors
y pageViews
Si desea tener más control sobre el período para el que desea recuperar datos, puede pasar una startDate
y una endDate
al objeto del período.
$ startDate = Carbon:: now ()-> subYear ();
$ endDate = Carbon:: now ();
Period:: create ( $ startDate , $ endDate );
public function fetchVisitorsAndPageViews( Period $ period ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves activeUsers
, screenPageViews
y pageTitle
.
public function fetchVisitorsAndPageViewsByDate( Period $ period ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves date
, activeUsers
, screenPageViews
y pageTitle
.
public function fetchTotalVisitorsAndPageViews( Period $ period ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves date
, date
, visitors
y pageViews
.
public function fetchMostVisitedPages( Period $ period , int $ maxResults = 20 ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves fullPageUrl
, pageTitle
y screenPageViews
.
public function fetchTopReferrers( Period $ period , int $ maxResults = 20 ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves screenPageViews
y pageReferrer
.
public function fetchUserTypes( Period $ period ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves activeUsers
y newVsReturning
, que pueden ser iguales a new
o returning
.
public function fetchTopBrowsers( Period $ period , int $ maxResults = 10 ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves screenPageViews
y browser
.
public function fetchTopCountries( Period $ period , int $ maxResults = 10 ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves screenPageViews
y country
.
public function fetchTopOperatingSystems( Period $ period , int $ maxResults = 10 ): Collection
La función devuelve una Collection
en la que cada elemento es una matriz que contiene las claves screenPageViews
y operatingSystem
.
Para todas las demás consultas, puede utilizar la función get
.
public function get( Period $ period , array $ metrics , array $ dimensions = [], int $ limit = 10 , array $ orderBy = [], FilterExpression $ dimensionFilter = null , FilterExpression $ metricFilter = null ): Collection
Aquí hay información adicional sobre los argumentos que puede pasar:
Period $period
: un objeto SpatieAnalyticsPeriod para indicar la fecha de inicio y finalización de su consulta.
array $metrics
: una matriz de métricas para recuperar. Puede encontrar una lista de todas las métricas aquí.
array $dimensions
: una matriz de dimensiones para agrupar los resultados. Puede encontrar una lista de todas las dimensiones aquí.
int $limit
: el número máximo de resultados a devolver.
array $orderBy
: de objetos OrderBy para ordenar los resultados.
array $offset
: el valor predeterminado es 0, puede usar esto en combinación con el parámetro $limit para tener paginación.
bool $keepEmptyRows
: si es falso o no se especifica, no se devolverá cada fila con todas las métricas iguales a 0. Si es verdadero, estas filas se devolverán si un filtro no las elimina por separado.
Por ejemplo:
$ orderBy = [
OrderBy:: dimension ( ' date ' , true ),
OrderBy:: metric ( ' pageViews ' , false ),
];
FilterExpression $dimensionFilter
: filtra el resultado para incluir solo valores de dimensión específicos. Puedes encontrar más detalles aquí.
Por ejemplo:
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
: filtro aplicado después de agregar las filas del informe, similar a la cláusula de SQL. Las dimensiones no se pueden utilizar en este filtro. Puedes encontrar más detalles aquí.
Por ejemplo:
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
Consulte CHANGELOG para obtener más información sobre los cambios recientes.
Consulte CONTRIBUCIÓN para obtener más detalles.
Si encuentra un error relacionado con la seguridad, envíe un correo electrónico a [email protected] en lugar de utilizar el rastreador de problemas.
Y un agradecimiento especial a Caneco por el logo.
La Licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.