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

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 dati e 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 maggiori dettagli sulla raccolta di dati e analisi lato client, seleziona il link di seguito in base al tipo di cliente:

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

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 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 tempo, non hanno più accesso ai 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. Con il monitoraggio eventi puoi individuare solo gli eventi chiave che ti interessa monitorare e monitorare insieme ad alcuni metadati aggiuntivi.
  • Interfaccia utente potente: sfrutta la ricca interfaccia utente offerti da Google Analytics per visualizzare, registrare ed esportare questi dati lato server eventi.

Per farlo, puoi integrare facilmente 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 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.");
  }
}