Integrazione con Google Analytics

La piattaforma Google Analytics ti consente di misurare le interazioni degli utenti con la tua attività su vari dispositivi e ambienti. La piattaforma fornisce tutte le risorse di calcolo per raccogliere, memorizzare, elaborare e generare report su queste interazioni utente.

La raccolta di dati può avvenire sia lato client sia lato server. Google Analytics fornisce API e SDK facili da utilizzare per inviare dati a Google Analytics. Oltre a queste, abbiamo sviluppato un codice che puoi utilizzare nelle tue applicazioni App Engine per inviare facilmente i dati e le analisi lato server a Google Analytics.

Raccolta Dati lato client

Con gli SDK e le API di raccolta, puoi misurare il modo in cui gli utenti interagiscono con i tuoi contenuti e le tue iniziative di marketing. Dopo l'implementazione, potrai visualizzare i dati sulle interazioni degli utenti in Google Analytics o tramite le API di reporting. Per ulteriori dettagli sulla raccolta di dati e analisi lato client, seleziona il link di seguito in base al tipo di client:

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

Raccolta di dati e analisi lato server di App Engine

Sebbene App Engine fornisca già un meccanismo per registrare gli eventi nella tua applicazione, potrebbe essere vantaggioso monitorare eventi lato server specifici in Google Analytics. Ecco alcuni dei vantaggi:

  • Analisi dei dati storici: App Engine ti consente di configurare il numero massimo di giorni o le dimensioni del file di log. Una volta trascorso questo periodo di tempo, non avrai più accesso a questi file di log. Il monitoraggio degli eventi in Google Analytics ti offre una visibilità molto più lunga degli eventi passati.
  • Monitora gli eventi chiave: i file di log possono essere molto dettagliati con vari componenti della tua applicazione che vi scrivono dati. Utilizzando il monitoraggio eventi, puoi identificare solo gli eventi chiave che ti interessa monitorare e seguirli insieme ad alcuni metadati aggiuntivi.
  • Interfaccia utente efficace: sfrutta la ricca interfaccia utente fornita da Google Analytics per visualizzare, generare report ed esportare questi eventi lato server.

Questo può essere fatto facilmente integrando il codice sorgente di esempio riportato di seguito nella tua applicazione App Engine. Per ulteriori informazioni su questo approccio, consulta la guida per gli sviluppatori di Google Analytics relativa al monitoraggio eventi.

Codice sorgente di esempio

import com.google.appengine.api.urlfetch.URLFetchService;
import com.google.appengine.api.urlfetch.URLFetchServiceFactory;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.client.utils.URIBuilder;

@SuppressWarnings("serial")
// With @WebServlet annotation the webapp/WEB-INF/web.xml is no longer required.
@WebServlet(
    name = "analytics",
    description = "Analytics: Send Analytics Event to Google Analytics",
    urlPatterns = "/analytics"
)
public class AnalyticsServlet extends HttpServlet {

  @Override
  public void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws IOException, ServletException {
    String trackingId = System.getenv("GA_TRACKING_ID");
    URIBuilder builder = new URIBuilder();
    builder
        .setScheme("http")
        .setHost("www.google-analytics.com")
        .setPath("/collect")
        .addParameter("v", "1") // API Version.
        .addParameter("tid", trackingId) // Tracking ID / Property ID.
        // Anonymous Client Identifier. Ideally, this should be a UUID that
        // is associated with particular user, device, or browser instance.
        .addParameter("cid", "555")
        .addParameter("t", "event") // Event hit type.
        .addParameter("ec", "example") // Event category.
        .addParameter("ea", "test action"); // Event action.
    URI uri = null;
    try {
      uri = builder.build();
    } catch (URISyntaxException e) {
      throw new ServletException("Problem building URI", e);
    }
    URLFetchService fetcher = URLFetchServiceFactory.getURLFetchService();
    URL url = uri.toURL();
    fetcher.fetch(url);
    resp.getWriter().println("Event tracked.");
  }
}