Integração com o Google Analytics

A plataforma Google Analytics permite-lhe medir as interações dos utilizadores com a sua empresa em vários dispositivos e ambientes. A plataforma fornece todos os recursos de computação para recolher, armazenar, processar e criar relatórios sobre estas interações dos utilizadores.

A recolha de dados do Analytics pode ocorrer do lado do cliente e do servidor. O Google Analytics oferece APIs e SDKs fáceis de usar para enviar dados para o Google Analytics. Além disso, desenvolvemos código que pode usar nas suas aplicações do App Engine para enviar facilmente estatísticas do lado do servidor para o Google Analytics.

Recolha de estatísticas por parte do cliente

Com as APIs e os SDKs de recolha, pode medir a forma como os utilizadores interagem com o seu conteúdo e as suas iniciativas de marketing. Depois de fazer a implementação, pode ver os dados de interações dos utilizadores no Google Analytics ou através das APIs Reporting. Para mais detalhes sobre a recolha de estatísticas do lado do cliente, selecione o link abaixo com base no tipo de cliente:

  • Acompanhamento da Web (analytics.js): mede a interação do utilizador com Websites ou aplicações Web.
  • Android - Meça a interação do utilizador com aplicações Android.
  • iOS: meça a interação do utilizador com aplicações iOS.
  • Protocolo de Medição: meça a interação do utilizador em qualquer ambiente com este protocolo de baixo nível.

Recolha de estatísticas do lado do servidor do App Engine

Embora o App Engine já forneça um mecanismo para registar eventos na sua aplicação, pode ser vantajoso acompanhar eventos específicos do lado do servidor no Google Analytics. Seguem-se algumas das vantagens:

  • Análise de dados do histórico: o App Engine permite-lhe configurar o número máximo de dias ou o tamanho do ficheiro de registo. Após esse período, deixa de ter acesso a esses ficheiros de registo. O acompanhamento de eventos no Google Analytics oferece-lhe um período muito mais longo de visibilidade dos eventos passados.
  • Acompanhe eventos principais: os ficheiros de registo podem ser detalhados com vários componentes da sua aplicação a escrever dados neles. Ao usar o acompanhamento de eventos, pode identificar apenas os eventos principais que tem interesse em monitorizar e acompanhá-los, juntamente com alguns metadados adicionais.
  • Interface do utilizador avançada: tire partido da interface do utilizador avançada que o Google Analytics oferece para visualizar, criar relatórios e exportar estes eventos do lado do servidor.

Pode fazê-lo facilmente integrando o código-fonte de exemplo abaixo na sua aplicação do App Engine. Para mais informações sobre esta abordagem, consulte o guia para programadores do Google Analytics para o acompanhamento de eventos.

Exemplo de código-fonte

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