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, archiviare, elaborare e generare report su queste interazioni degli utenti.

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

Raccolta di dati e analisi 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 iniziative di marketing. Una volta implementati, potrai visualizzare i dati sulle interazioni degli utenti in Google Analytics o tramite le API di reporting. Per ulteriori dettagli sulla raccolta di dati di 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 per Android.
  • iOS - Misura l'interazione degli utenti con le applicazioni iOS.
  • Measurement Protocol: misura l'interazione degli utenti in qualsiasi ambiente con questo protocollo di basso livello.

Raccolta di 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. 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 eventi chiave: i file di log possono essere dettagliati con vari componenti dell'applicazione che scrivono dati. Utilizzando il monitoraggio degli eventi, puoi individuare solo gli eventi chiave che ti interessano e monitorarli insieme ad alcuni metadati aggiuntivi.
  • Interfaccia utente potente: sfrutta la ricca interfaccia utente fornita da Google Analytics per visualizzare, generare report ed esportare questi eventi lato server.

Puoi farlo 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 per il monitoraggio degli 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.");
  }
}