Integra Google Analytics

La plataforma de Google Analytics te permite medir las interacciones de usuarios con tu negocio en varios dispositivos y entornos. La plataforma proporciona todos los recursos de computación para recopilar, almacenar, procesar y también informar estas interacciones de usuarios.

La recopilación de Analytics puede llevarse a cabo del lado del cliente o del servidor. Google Analytics proporciona API y SDK fáciles de usar para enviar datos a Google Analytics. Además de estos, hemos desarrollado un código que puedes utilizar en tus aplicaciones de App Engine para enviar estadísticas del lado del servidor a Google Analytics fácilmente.

Recopilación de estadísticas del cliente

Con las API y los SDK de recopilación, puedes medir cómo interactúan los usuarios con tu contenido y las iniciativas de marketing. Una vez implementados, podrás ver los datos de interacción de los usuarios en Google Analytics o a través de las API de informes. Para obtener más información sobre la recopilación de estadísticas del cliente, selecciona el siguiente vínculo según el tipo de cliente:

  • Seguimiento web (analytics.js): Mide la interacción del usuario con aplicaciones o sitios web.
  • Android: Mide la interacción de los usuarios con las aplicaciones para Android.
  • iOS: Mide la interacción de los usuarios con las aplicaciones para iOS.
  • Protocolo de medición: Mide la interacción del usuario en cualquier entorno con este protocolo de nivel bajo.

Recopilación de estadísticas del servidor de App Engine

Si bien App Engine ya proporciona un mecanismo que permite registrar eventos en tu aplicación, podría ser beneficioso usar Google Analytics para realizar seguimiento de eventos específicos del servidor. Estos son algunos de los beneficios:

  • Análisis de datos históricos: App Engine te permite configurar la cantidad máxima de días o el tamaño de tu archivo de registro. Pasado ese tiempo ya no tendrás acceso a esos archivos de registro. El seguimiento de eventos en Google Analytics te permite una visibilidad más prolongada de los eventos pasados.
  • Realizar seguimiento de eventos clave: Los archivos de registro pueden ser detallados y recibir datos de varios componentes de la aplicación. Usar el seguimiento de eventos te permite seleccionar solo los eventos clave que desees supervisar y seguirlos con algunos metadatos adicionales.
  • Interfaz de usuario potente: Aprovecha la interfaz de usuario enriquecida que proporciona Google Analytics para visualizar, informar y exportar estos eventos del servidor.

Esto se puede lograr fácilmente si se integra el siguiente código fuente de muestra en tu aplicación de App Engine. Si deseas obtener más información sobre este enfoque, consulta la sección Seguimiento de eventos en la guía para desarrolladores de Google Analytics.

Código fuente de muestra

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