In Google Analytics einbinden

Mit der Google Analytics-Plattform können Sie Nutzerinteraktionen mit Ihrem Unternehmen über verschiedene Geräte und Umgebungen hinweg messen. Die Plattform bietet alle nötigen Rechenressourcen zum Erfassen, Speichern, Verarbeiten und zur Berichterstellung für diese Nutzerinteraktionen.

Die Erfassung von Analysedaten kann sowohl client- als auch serverseitig erfolgen. Google Analytics bietet benutzerfreundliche APIs und SDKs für die Übertragung von Daten an Google Analytics. Darüber hinaus stellen wir Code zur Verfügung, mit dem Ihre App Engine-Anwendungen auf einfache Weise serverseitige Analysen an Google Analytics senden können.

Analysedaten clientseitig erfassen

Mit den APIs und SDKs für die Erfassung können Sie messen, wie Nutzer mit Ihren Inhalten und Ihren Marketinginitiativen interagieren. Deren Implementierung bietet Ihnen die Möglichkeit, Daten zu Nutzerinteraktionen in Google Analytics oder über die Reporting APIs aufzurufen. Für weitere Informationen zur clientseitigen Erfassung von Analysedaten wählen Sie einen der folgenden Links je nach Typ Ihres Clients aus:

  • Webtracking (analytics.js): Zum Messen der Nutzerinteraktion mit Websites oder Webanwendungen
  • Android: Zum Messen der Nutzerinteraktion mit Android-Anwendungen
  • iOS: Zum Messen der Nutzerinteraktion mit iOS-Anwendungen
  • Measurement Protocol: Zum Messen der Nutzerinteraktion in einer beliebigen Umgebung mit diesem Protokoll auf niedriger Ebene

Serverseitige Erfassung von Analysedaten in App Engine

Obwohl App Engine bereits ein Verfahren zum Logging von Ereignissen in Ihrer Anwendung bietet, kann es sinnvoll sein, bestimmte serverseitige Ereignisse in Google Analytics zu verfolgen. Sie profitieren unter anderem von den folgenden Vorteilen:

  • Verlaufsdaten analysieren: Mit App Engine können Sie die maximale Anzahl von Tagen oder die Größe der Log-Datei konfigurieren. Nach Ablauf dieser Zeit haben Sie keinen Zugriff mehr auf diese Log-Dateien. Das Tracking von Ereignissen in Google Analytics ermöglicht Ihnen wesentlich länger den Zugriff auf vergangene Ereignisse.
  • Wichtige Ereignisse erfassen: Log-Dateien können sehr umfangreich sein, da verschiedene Komponenten Ihrer Anwendung Daten in sie schreiben. Mithilfe von Ereignis-Tracking können Sie die für Sie wichtigen Ereignisse genau bestimmen und zusammen mit weiteren Metadaten überwachen und verfolgen.
  • Leistungsstarke Benutzeroberfläche: Nutzen Sie die umfassende Benutzeroberfläche von Google Analytics, um diese serverseitigen Ereignisse zu visualisieren, Berichte darüber zu erstellen und diese zu exportieren.

Integrieren Sie einfach den nachfolgenden Beispiel-Quellcode in Ihre App Engine-Anwendung. Weitere Informationen zu diesem Konzept finden Sie im Google Analytics-Entwicklerleitfaden für das Ereignis-Tracking.

Beispiel-Quellcode

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.");
  }
}