Mit diesem Paket können Sie ganz einfach Daten aus Google Analytics abrufen.
Hier einige Beispiele der bereitgestellten Methoden:
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 ));
Die meisten Methoden geben ein IlluminateSupportCollection
Objekt zurück, das die Ergebnisse enthält.
Wir investieren viele Ressourcen in die Erstellung erstklassiger Open-Source-Pakete. Sie können uns unterstützen, indem Sie eines unserer kostenpflichtigen Produkte kaufen.
Wir freuen uns sehr, dass Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden. Unsere Adresse finden Sie auf unserer Kontaktseite. Wir veröffentlichen alle erhaltenen Postkarten auf unserer virtuellen Postkartenwand.
Dieses Paket kann über Composer installiert werden.
composer require spatie/laravel-analytics
Optional können Sie die Konfigurationsdatei dieses Pakets mit diesem Befehl veröffentlichen:
php artisan vendor:publish --tag= " analytics-config "
Die folgende Konfigurationsdatei wird in config/analytics.php
veröffentlicht
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 ' ,
],
];
Als Erstes müssen Sie sich einige Anmeldeinformationen für die Verwendung der Google APIs besorgen. Ich gehe davon aus, dass Sie bereits ein Google-Konto erstellt haben und angemeldet sind. Gehen Sie zur Website der Google API und wählen oder erstellen Sie ein Projekt.
Als nächstes müssen wir angeben, welche APIs das Projekt nutzen darf. Gehen Sie zur API-Bibliothek und suchen Sie nach „Google Analytics Data API“.
Wählen Sie „Aktivieren“, um die API zu aktivieren.
Nachdem Sie nun ein Projekt erstellt haben, das Zugriff auf die Analytics-API hat, ist es an der Zeit, eine Datei mit diesen Anmeldeinformationen herunterzuladen. Klicken Sie in der Seitenleiste auf „Anmeldeinformationen“. Sie möchten einen „Dienstkontoschlüssel“ erstellen.
Auf dem nächsten Bildschirm können Sie dem Dienstkonto einen Namen geben. Sie können es beliebig benennen. In der Dienstkonto-ID sehen Sie eine E-Mail-Adresse. Wir werden diese E-Mail-Adresse später in diesem Handbuch verwenden.
Gehen Sie zum Detailbildschirm Ihres erstellten Dienstkontos und wählen Sie „Schlüssel“ aus. Wählen Sie im Dropdown-Menü „Schlüssel hinzufügen“ die Option „Neuen Schlüssel erstellen“.
Wählen Sie „JSON“ als Schlüsseltyp und klicken Sie auf „Erstellen“, um die JSON-Datei herunterzuladen.
Speichern Sie den JSON-Code in Ihrem Laravel-Projekt an dem Speicherort, der im Schlüssel service_account_credentials_json
der Konfigurationsdatei dieses Pakets angegeben ist. Da die JSON-Datei potenziell vertrauliche Informationen enthält, empfehle ich nicht, sie in Ihr Git-Repository zu übertragen.
Ich gehe davon aus, dass Sie auf der Analytics-Website bereits ein Analytics-Konto erstellt haben und die neuen GA4-Eigenschaften verwenden.
Zuerst müssen Sie Ihre Immobilien-ID kennen. Gehen Sie in Analytics zu Einstellungen > Property-Einstellungen. Hier können Sie Ihre Immobilien-ID kopieren. Verwenden Sie diesen Wert für den Schlüssel ANALYTICS_PROPERTY_ID
in Ihrer .env-Datei.
Jetzt müssen wir Zugriff auf das von Ihnen erstellte Dienstkonto gewähren. Gehen Sie im Admin-Bereich der Immobilie zu „Property Access Management“. Klicken Sie auf das Pluszeichen in der oberen rechten Ecke, um einen neuen Benutzer hinzuzufügen.
Auf diesem Bildschirm können Sie Zugriff auf die E-Mail-Adresse gewähren, die im Schlüssel client_email
aus der JSON-Datei enthalten ist, die Sie im vorherigen Schritt heruntergeladen haben. Die Rolle des Analysten reicht aus.
Nach Abschluss der Installation können Sie Analytics-Daten problemlos abrufen. Fast alle Methoden geben eine IlluminateSupportCollection
-Instanz zurück.
Hier sind einige Beispiele für die Verwendung von Punkten
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
ist eine Collection
, in der jedes Element ein Array ist, das die Schlüssel date
, visitors
und pageViews
enthält
Wenn Sie mehr Kontrolle über den Zeitraum haben möchten, für den Sie Daten abrufen möchten, können Sie ein startDate
und ein endDate
an das Periodenobjekt übergeben.
$ startDate = Carbon:: now ()-> subYear ();
$ endDate = Carbon:: now ();
Period:: create ( $ startDate , $ endDate );
public function fetchVisitorsAndPageViews( Period $ period ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel activeUsers
, screenPageViews
und pageTitle
enthält.
public function fetchVisitorsAndPageViewsByDate( Period $ period ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel date
, activeUsers
, screenPageViews
und pageTitle
enthält.
public function fetchTotalVisitorsAndPageViews( Period $ period ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel date
, date
, visitors
und pageViews
enthält.
public function fetchMostVisitedPages( Period $ period , int $ maxResults = 20 ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel fullPageUrl
, pageTitle
und screenPageViews
enthält.
public function fetchTopReferrers( Period $ period , int $ maxResults = 20 ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel screenPageViews
und pageReferrer
enthält.
public function fetchUserTypes( Period $ period ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel activeUsers
und newVsReturning
enthält, die gleich new
oder returning
können.
public function fetchTopBrowsers( Period $ period , int $ maxResults = 10 ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel screenPageViews
und browser
enthält.
public function fetchTopCountries( Period $ period , int $ maxResults = 10 ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel screenPageViews
und country
enthält.
public function fetchTopOperatingSystems( Period $ period , int $ maxResults = 10 ): Collection
Die Funktion gibt eine Collection
zurück, in der jedes Element ein Array ist, das die Schlüssel screenPageViews
und operatingSystem
enthält.
Für alle anderen Abfragen können Sie die get
-Funktion verwenden.
public function get( Period $ period , array $ metrics , array $ dimensions = [], int $ limit = 10 , array $ orderBy = [], FilterExpression $ dimensionFilter = null , FilterExpression $ metricFilter = null ): Collection
Hier sind einige zusätzliche Informationen zu den Argumenten, die Sie übergeben können:
Period $period
: ein SpatieAnalyticsPeriod-Objekt, um das Start- und Enddatum für Ihre Abfrage anzugeben.
array $metrics
: ein Array von abzurufenden Metriken. Eine Liste aller Kennzahlen finden Sie hier.
array $dimensions
: ein Array von Dimensionen, nach denen die Ergebnisse gruppiert werden sollen. Eine Auflistung aller Maße finden Sie hier.
int $limit
: die maximale Anzahl der zurückzugebenden Ergebnisse.
array $orderBy
: von OrderBy-Objekten, nach denen die Ergebnisse sortiert werden sollen.
array $offset
: Der Standardwert ist 0. Sie können dies in Kombination mit dem Parameter $limit verwenden, um eine Paginierung zu erhalten.
bool $keepEmptyRows
: Wenn falsch oder nicht angegeben, wird nicht jede Zeile mit allen Metriken gleich 0 zurückgegeben. Bei „true“ werden diese Zeilen zurückgegeben, sofern sie nicht separat durch einen Filter entfernt werden.
Zum Beispiel:
$ orderBy = [
OrderBy:: dimension ( ' date ' , true ),
OrderBy:: metric ( ' pageViews ' , false ),
];
FilterExpression $dimensionFilter
: Filtern Sie das Ergebnis so, dass es nur bestimmte Dimensionswerte enthält. Weitere Details finden Sie hier.
Zum Beispiel:
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
: Filter, der nach dem Aggregieren der Berichtszeilen angewendet wird, ähnlich der SQL-Having-Klausel. Dimensionen können in diesem Filter nicht verwendet werden. Weitere Details finden Sie hier.
Zum Beispiel:
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
Weitere Informationen zu den letzten Änderungen finden Sie im CHANGELOG.
Weitere Informationen finden Sie unter BEITRAGEN.
Wenn Sie einen Sicherheitsfehler gefunden haben, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Und ein besonderer Dank geht an Caneco für das Logo
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.