Attivatori di Google Analytics per Firebase
Google Analytics for Firebase fornisce report sugli eventi che ti aiutano a capire come gli utenti interagiscono con la tua app. Con le funzioni Cloud Run, puoi accedere agli eventi di conversione registrati da dispositivi Apple e Android e attivare funzioni in base a questi eventi.
Tipi di evento
Google Analytics for Firebase attiva l'evento log
. Si tratta di
un tipo di evento potente, poiché qualsiasi azione intrapresa da un utente nella tua app può essere
registrata e, a sua volta, attivare una funzione.
Tipo di evento | Trigger |
---|---|
providers/google.firebase.analytics/eventTypes/event.log
|
Attivato quando viene registrato un evento di conversione. |
Le funzioni Cloud Run possono rispondere alla registrazione di un evento di conversione di Google Analytics for
Firebase. Ad esempio, se un utente effettua un acquisto in-app, viene registrato un
evento di conversione in_app_purchase
che può essere utilizzato dalle
funzioni Cloud Run.
Struttura dell'evento
Questo trigger richiama la funzione con un evento simile a quello mostrato di seguito:
{ "eventDim": [ // Contains a single event { "date": "20090213", "name": "screen_view", "params": { "firebase_conversion": { "intValue": "1" }, "firebase_event_origin": { "stringValue": "auto" }, "firebase_previous_class": { "stringValue": "MainActivity" }, "firebase_previous_id": { "intValue": "1928209043426257906" }, "firebase_previous_screen": { "stringValue": "id-D-D" }, "firebase_screen": { "stringValue": "id-C-C" }, "firebase_screen_class": { "stringValue": "MainActivity" }, "firebase_screen_id": { "intValue": "1234567890000" } }, "previousTimestampMicros": "1234567890000", "timestampMicros": "1234567890000" } ], "userDim": { // A UserDimensions object } }
Le informazioni utente, come quelle sull'applicazione o sul dispositivo, sono disponibili nella proprietà userDim
. Le informazioni sull'evento registrato
sono disponibili nell'array eventDim
. Gli oggetti contenuti in questo array
includono un campo name
che contiene il nome dell'evento di conversione (ad esempio
in_app_purchase
). Qui vengono visualizzati anche i campi personalizzati configurati in Google Analytics for Firebase.
Esempio di codice
Utilizza il seguente snippet per elaborare questa risposta:
Node.js
Python
Go
C#
using CloudNative.CloudEvents; using Google.Cloud.Functions.Framework; using Google.Events.Protobuf.Firebase.Analytics.V1; using Microsoft.Extensions.Logging; using System; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace FirebaseAnalytics; public class Function : ICloudEventFunction<AnalyticsLogData> { private readonly ILogger _logger; public Function(ILogger<Function> logger) => _logger = logger; public Task HandleAsync(CloudEvent cloudEvent, AnalyticsLogData data, CancellationToken cancellationToken) { _logger.LogInformation("Event source: {source}", cloudEvent.Source); _logger.LogInformation("Event count: {count}", data.EventDim.Count); var firstEvent = data.EventDim.FirstOrDefault(); if (firstEvent is object) { _logger.LogInformation("First event name: {name}", firstEvent.Name); DateTimeOffset timestamp = DateTimeOffset.FromUnixTimeMilliseconds(firstEvent.TimestampMicros / 1000); _logger.LogInformation("First event timestamp: {timestamp:u}", timestamp); } var userObject = data.UserDim; if (userObject is object) { _logger.LogInformation("Device model: {device}", userObject.DeviceInfo?.DeviceModel); _logger.LogInformation("Location: {city}, {country}", userObject.GeoInfo?.City, userObject.GeoInfo.Country); } // In this example, we don't need to perform any asynchronous operations, so the // method doesn't need to be declared async. return Task.CompletedTask; } }
Ruby
PHP
use Google\CloudFunctions\CloudEvent; function firebaseAnalytics(CloudEvent $cloudevent): void { $log = fopen(getenv('LOGGER_OUTPUT') ?: 'php://stderr', 'wb'); $data = $cloudevent->getData(); fwrite($log, 'Function triggered by the following event:' . $data['resource'] . PHP_EOL); $analyticsEvent = $data['eventDim'][0]; $unixTime = $analyticsEvent['timestampMicros'] / 1000; fwrite($log, 'Name: ' . $analyticsEvent['name'] . PHP_EOL); fwrite($log, 'Timestamp: ' . gmdate("Y-m-d\TH:i:s\Z", $unixTime) . PHP_EOL); $userObj = $data['userDim']; fwrite($log, sprintf( 'Location: %s, %s' . PHP_EOL, $userObj['geoInfo']['city'], $userObj['geoInfo']['country'] )); fwrite($log, 'Device Model: %s' . $userObj['deviceInfo']['deviceModel'] . PHP_EOL); }
Deployment della funzione
Per eseguire il deployment della funzione, specifica il tipo di evento e il progetto in cui
hai configurato Firebase Auth. Nella console è presente un campo per il tipo di
evento che contiene log
, l'unica opzione, e nome evento log, ovvero
l'evento di conversione che attiverà la funzione.
Nella riga di comando, per specificare questi parametri devono essere utilizzate stringhe specifiche. Il seguente comando Google Cloud CLI esegue il deployment di una funzione che viene attivata quando un utente effettua un acquisto in-app:
gcloud functions deploy FUNCTION_NAME \ --no-gen2 \ --entry-point ENTRY_POINT \ --trigger-event providers/google.firebase.analytics/eventTypes/event.log \ --trigger-resource projects/YOUR_PROJECT_ID/events/in_app_purchase \ --runtime RUNTIME
Argomento | Descrizione |
---|---|
FUNCTION_NAME |
Il nome registrato della funzione Cloud Run di cui stai eseguendo il deployment.
Può essere il nome di una funzione nel tuo
codice sorgente o una stringa arbitraria. Se FUNCTION_NAME è una
stringa arbitraria, devi includere il
flag --entry-point .
|
--entry-point ENTRY_POINT |
Il nome di una funzione o di una classe nel codice sorgente. Facoltativo, a meno che
non hai utilizzato FUNCTION_NAME
per specificare la
funzione nel codice sorgente da eseguire durante il deployment. In questo
caso, devi utilizzare --entry-point per fornire il nome della
funzione eseguibile.
|
--trigger-event NAME |
Il nome del tipo di evento che la funzione vuole ricevere. Per
Google Analytics for Firebase, questo valore è sempre
providers/google.firebase.analytics/eventTypes/event.log.
|
--trigger-resource NAME |
Il nome evento Google Analytics completo, incluse le informazioni sul progetto. Deve avere il seguente formato:
projects/YOUR_PROJECT_ID/events/CONVERSION_EVENT_NAME
|
--runtime RUNTIME |
Il nome del runtime che stai utilizzando. Per un elenco completo, consulta il
riferimento gcloud .
|