Mengintegrasikan dengan Google Analytics

Platform Google Analytics memungkinkan Anda mengukur interaksi pengguna dengan bisnis Anda di berbagai perangkat dan lingkungan. Platform ini menyediakan semua resource komputasi untuk mengumpulkan, menyimpan, memproses, dan melaporkan interaksi pengguna ini.

Pengumpulan data Analytics dapat dilakukan di sisi klien dan server. Google Analytics menyediakan API dan SDK yang mudah digunakan untuk mengirim data ke Google Analytics. Selain itu, kami telah mengembangkan kode yang dapat Anda gunakan di aplikasi App Engine untuk mengirimkan analisis sisi server ke Google Analytics dengan mudah.

Pengumpulan analisis sisi klien

Dengan API dan SDK pengumpulan, Anda dapat mengukur cara pengguna berinteraksi dengan konten dan inisiatif pemasaran Anda. Setelah diterapkan, Anda akan dapat melihat data interaksi pengguna di dalam Google Analytics atau melalui Reporting API. Untuk mengetahui detail selengkapnya tentang pengumpulan analisis sisi klien, pilih link di bawah ini berdasarkan jenis klien Anda:

  • Pelacakan Web (analytics.js) - Mengukur interaksi pengguna dengan situs atau aplikasi web.
  • Android - Mengukur interaksi pengguna dengan aplikasi Android.
  • iOS - Mengukur interaksi pengguna dengan aplikasi iOS.
  • Measurement Protocol - Mengukur interaksi pengguna di lingkungan apa pun dengan protokol tingkat rendah ini.

Pengumpulan analisis sisi server App Engine

Meskipun App Engine telah menyediakan mekanisme untuk mencatat peristiwa ke dalam log di aplikasi Anda, melacak peristiwa sisi server tertentu di Google Analytics mungkin dapat bermanfaat. Beberapa manfaatnya adalah sebagai berikut:

  • Analisis data historis - App Engine memungkinkan Anda mengonfigurasi jumlah hari atau ukuran file log maksimum. Setelah waktu tersebut berlalu, Anda tidak lagi memiliki akses ke file log tersebut. Peristiwa pelacakan di Google Analytics memberi Anda jangka waktu yang lebih panjang untuk melihat visibilitas peristiwa terdahulu.
  • Lacak peristiwa utama - File log bisa menjadi panjang dengan berbagai komponen aplikasi yang menulis data ke file tersebut. Dengan menggunakan pelacakan peristiwa, Anda dapat menemukan hanya peristiwa utama yang ingin Anda pantau dan melacaknya, bersama dengan beberapa metadata tambahan.
  • Antarmuka pengguna yang canggih - Manfaatkan antarmuka pengguna lengkap yang disediakan Google Analytics untuk memvisualisasikan, melaporkan, dan mengekspor peristiwa sisi server ini.

Hal ini dapat dilakukan dengan mudah dengan mengintegrasikan sampel kode sumber di bawah ini ke dalam aplikasi App Engine Anda. Untuk mengetahui informasi tambahan tentang pendekatan ini, baca panduan developer Google Analytics untuk Pelacakan Peristiwa.

Sampel kode sumber

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