Integrazione con Google Analytics

Google Analytics Platform ti consente di misurare le interazioni degli utenti con la tua attività su diversi dispositivi e ambienti. Google Analytics fornisce le risorse per raccogliere, archiviare, elaborare e generare rapporti su queste interazioni degli utenti.

Puoi raccogliere dati analitici sul lato client e sul lato server.

Raccolta di analisi lato client

Utilizza le API e gli SDK di Google Analytics per misurare il modo in cui gli utenti interagiscono con i contenuti e le iniziative di marketing. Puoi visualizzare i dati sulle interazioni degli utenti nell'interfaccia utente di Google Analytics o utilizzare le API di reporting per recuperare i dati. Per ulteriori informazioni sulla raccolta dell'analisi lato client, seleziona il link di seguito in base al tipo di client:

  • Monitoraggio web (analytics.js): consente di misurare l'interazione degli utenti con siti web o applicazioni web.
  • Android: consente di misurare l'interazione degli utenti con le app Android.
  • iOS: misura l'interazione degli utenti con le applicazioni iOS.
  • Measurement Protocol: misura l'interazione dell'utente in qualsiasi ambiente con questo protocollo di basso livello.

Raccolta di analisi lato server

Sebbene App Engine fornisca un meccanismo per la registrazione degli eventi nell'applicazione, puoi utilizzare Google Analytics per monitorare specifici eventi lato server in Google Analytics in modo da poter:

  • Analisi dei dati storici: App Engine consente di configurare il numero massimo di giorni (o dimensioni) del file di log. Una volta superato tale limite, non potrai più accedere ai file di log. Il monitoraggio degli eventi in Google Analytics offre una durata maggiore della visibilità degli eventi passati.
  • Monitoraggio di eventi chiave: i file di log possono essere dettagliati tramite vari componenti dell'applicazione che scrivono i dati. Il monitoraggio eventi consente di individuare gli eventi chiave e monitorarli, nonché alcuni metadati.
  • Lavora nell'interfaccia utente: sfrutta la ricca interfaccia utente fornita da Google Analytics per visualizzare, generare rapporti ed esportare questi eventi lato server.

Per attivare la raccolta dell'analisi lato server, puoi utilizzare un client HTTP ed effettuare richieste HTTP tramite il Measurement Protocol di Google Analytics. Per ulteriori informazioni, consulta la guida per gli sviluppatori di Google Analytics per il monitoraggio eventi.

Applicazione di esempio

L'applicazione di esempio riportata di seguito mostra come monitorare gli eventi nell'applicazione App Engine. L'applicazione effettua una richiesta HTTP e pubblica dati sull'evento su Google Analytics.

Prima di utilizzare il Google Analytics Measurement Protocol su App Engine, procedi come segue:

  1. Crea una proprietà Google Analytics e recupera l'ID monitoraggio.

  2. Includi le variabili di ambiente in app.yaml con il tuo ID monitoraggio. Ad esempio, per l'applicazione di esempio mostrata di seguito:

    env_variables:
      GA_TRACKING_ID: UA-XXXXX-Y
  3. Prima di eseguire l'app di esempio in locale, imposta le variabili di ambiente richieste dall'app:

    export GA_TRACKING_ID=YOUR_TRACKING_ID
    
  4. Esegui il codice di esempio localmente utilizzando la riga di comando. Ad esempio:

    go run analytics.go
    

  5. Integra il seguente codice nell'applicazione App Engine per pubblicare i dati di monitoraggio eventi in Google Analytics:

    
    // Sample analytics demonstrates Google Analytics calls from App Engine flexible environment.
    package main
    
    import (
    	"errors"
    	"fmt"
    	"log"
    	"net"
    	"net/http"
    	"net/url"
    	"os"
    
    	uuid "github.com/gofrs/uuid"
    
    	"google.golang.org/appengine"
    )
    
    var gaPropertyID = mustGetenv("GA_TRACKING_ID")
    
    func mustGetenv(k string) string {
    	v := os.Getenv(k)
    	if v == "" {
    		log.Fatalf("%s environment variable not set.", k)
    	}
    	return v
    }
    
    func main() {
    	http.HandleFunc("/", handle)
    
    	appengine.Main()
    }
    
    func handle(w http.ResponseWriter, r *http.Request) {
    	if r.URL.Path != "/" {
    		http.NotFound(w, r)
    		return
    	}
    
    	if err := trackEvent(r, "Example", "Test action", "label", nil); err != nil {
    		fmt.Fprintf(w, "Event did not track: %v", err)
    		return
    	}
    	fmt.Fprint(w, "Event tracked.")
    }
    
    func trackEvent(r *http.Request, category, action, label string, value *uint) error {
    	if gaPropertyID == "" {
    		return errors.New("analytics: GA_TRACKING_ID environment variable is missing")
    	}
    	if category == "" || action == "" {
    		return errors.New("analytics: category and action are required")
    	}
    
    	v := url.Values{
    		"v":   {"1"},
    		"tid": {gaPropertyID},
    		// Anonymously identifies a particular user. See the parameter guide for
    		// details:
    		// https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#cid
    		//
    		// Depending on your application, this might want to be associated with the
    		// user in a cookie.
    		"cid": {uuid.Must(uuid.NewV4()).String()},
    		"t":   {"event"},
    		"ec":  {category},
    		"ea":  {action},
    		"ua":  {r.UserAgent()},
    	}
    
    	if label != "" {
    		v.Set("el", label)
    	}
    
    	if value != nil {
    		v.Set("ev", fmt.Sprintf("%d", *value))
    	}
    
    	if remoteIP, _, err := net.SplitHostPort(r.RemoteAddr); err != nil {
    		v.Set("uip", remoteIP)
    	}
    
    	// NOTE: Google Analytics returns a 200, even if the request is malformed.
    	_, err := http.PostForm("https://www.google-analytics.com/collect", v)
    	return err
    }
    

Se hai attivato l'impostazione nella Console di amministrazione Google Analytics per escludere il traffico da spider e bot o se utilizzi Google Analytics 4 (che filtra automaticamente il traffico), potresti non visualizzare i risultati di Analytics dai client App Engine. Questi scenari filtrano lo user agent App Engine predefinito. Per visualizzare i risultati di App Engine, includi il parametro ua nei tuoi dati di monitoraggio e impostalo su un valore personalizzato.