Tutorial ini membahas langkah-langkah yang diperlukan untuk mengakses akun Google Analytics, membuat kueri untuk Analytics API, menangani respons API, dan menampilkan hasilnya. Core Reporting API v3.0, Management API v3.0, dan OAuth2.0 digunakan dalam tutorial ini.
Langkah 1: Aktifkan Analytics API
Untuk mulai menggunakan Google Analytics API, pertama-tama Anda harus menggunakan alat penyiapan, yang memandu Anda menyelesaikan pembuatan project di Konsol API Google, mengaktifkan API, dan membuat kredensial.
Membuat client ID
Dari halaman Kredensial:
- Klik Create Credentials, lalu pilih OAuth client ID.
- Pilih Other untuk APPLICATION TYPE.
- Beri nama kredensial tersebut.
- Klik Create.
Pilih kredensial yang baru saja Anda buat, lalu klik Download JSON. Simpan file yang didownload sebagai
client_secrets.json
; Anda memerlukannya nanti dalam tutorial.
Langkah 2: Instal Library Klien Google
Untuk menginstal Klien Java Google Analytics API, Anda harus mendownload file zip yang berisi semua jar yang perlu Anda ekstrak dan salin ke classpath Java.
- Download library klien Java Google Analytics, yang dipaketkan sebagai file ZIP dengan semua dependensi yang diperlukan.
- Ekstrak file ZIP
- Tambahkan semua JAR dalam direktori
libs
ke classpath Anda. - Tambahkan jar
google-api-services-analytics-v3-[version].jar
ke classpath Anda.
Langkah 3: Siapkan contoh aplikasi
Anda harus membuat satu file bernama HelloAnalytics.java
, yang akan berisi kode contoh yang diberikan.
- Salin atau
download kode sumber berikut ke
HelloAnalytics.java
. - Pindahkan
client_secrets.json
yang telah didownload sebelumnya dalam direktori yang sama dengan kode contoh.
import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.analytics.Analytics; import com.google.api.services.analytics.AnalyticsScopes; import com.google.api.services.analytics.model.Accounts; import com.google.api.services.analytics.model.GaData; import com.google.api.services.analytics.model.Profiles; import com.google.api.services.analytics.model.Webproperties; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; /** * A simple example of how to access the Google Analytics API. */ public class HelloAnalytics { // Path to client_secrets.json file downloaded from the Developer's Console. // The path is relative to HelloAnalytics.java. private static final String CLIENT_SECRET_JSON_RESOURCE = "client_secrets.json"; // The directory where the user's credentials will be stored. private static final File DATA_STORE_DIR = new File( System.getProperty("user.home"), ".store/hello_analytics"); private static final String APPLICATION_NAME = "Hello Analytics"; private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); private static NetHttpTransport httpTransport; private static FileDataStoreFactory dataStoreFactory; public static void main(String[] args) { try { Analytics analytics = initializeAnalytics(); String profile = getFirstProfileId(analytics); printResults(getResults(analytics, profile)); } catch (Exception e) { e.printStackTrace(); } } private static Analytics initializeAnalytics() throws Exception { httpTransport = GoogleNetHttpTransport.newTrustedTransport(); dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR); // Load client secrets. GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(HelloAnalytics.class .getResourceAsStream(CLIENT_SECRET_JSON_RESOURCE))); // Set up authorization code flow for all auth scopes. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow .Builder(httpTransport, JSON_FACTORY, clientSecrets, AnalyticsScopes.all()).setDataStoreFactory(dataStoreFactory) .build(); // Authorize. Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); // Construct the Analytics service object. return new Analytics.Builder(httpTransport, JSON_FACTORY, credential) .setApplicationName(APPLICATION_NAME).build(); } private static String getFirstProfileId(Analytics analytics) throws IOException { // Get the first view (profile) ID for the authorized user. String profileId = null; // Query for the list of all accounts associated with the service account. Accounts accounts = analytics.management().accounts().list().execute(); if (accounts.getItems().isEmpty()) { System.err.println("No accounts found"); } else { String firstAccountId = accounts.getItems().get(0).getId(); // Query for the list of properties associated with the first account. Webproperties properties = analytics.management().webproperties() .list(firstAccountId).execute(); if (properties.getItems().isEmpty()) { System.err.println("No properties found"); } else { String firstWebpropertyId = properties.getItems().get(0).getId(); // Query for the list views (profiles) associated with the property. Profiles profiles = analytics.management().profiles() .list(firstAccountId, firstWebpropertyId).execute(); if (profiles.getItems().isEmpty()) { System.err.println("No views (profiles) found"); } else { // Return the first (view) profile associated with the property. profileId = profiles.getItems().get(0).getId(); } } } return profileId; } private static GaData getResults(Analytics analytics, String profileId) throws IOException { // Query the Core Reporting API for the number of sessions // in the past seven days. return analytics.data().ga() .get("ga:" + profileId, "7daysAgo", "today", "ga:sessions") .execute(); } private static void printResults(GaData results) { // Parse the response from the Core Reporting API for // the profile name and number of sessions. if (results != null && !results.getRows().isEmpty()) { System.out.println("View (Profile) Name: " + results.getProfileInfo().getProfileName()); System.out.println("Total Sessions: " + results.getRows().get(0).get(0)); } else { System.out.println("No results found"); } } }
Langkah 4: Jalankan contoh
Setelah Anda mengaktifkan Analytics API, instal library klien Google API untuk Java, dan siapkan kode sumber sampel yang akan dijalankan oleh sampel.
Jika Anda menggunakan IDE, pastikan Anda memiliki target eksekusi default yang ditetapkan
ke class HelloAnalytics
.
- Aplikasi akan memuat halaman otorisasi di browser.
- Jika belum login ke Akun Google, Anda akan diminta untuk login. Jika Anda login ke beberapa akun Google, Anda akan diminta untuk memilih satu akun yang akan digunakan untuk otorisasi.
Setelah Anda menyelesaikan langkah-langkah tersebut, contoh akan menampilkan nama tampilan (profil) Google Analytics pertama pengguna yang diotorisasi dan jumlah sesi selama tujuh hari terakhir.
Dengan objek layanan Analytics yang diotorisasi, Anda kini dapat menjalankan contoh kode apa pun yang ditemukan dalam dokumen referensi Management API. Misalnya, Anda dapat mencoba mengubah kode untuk menggunakan metode accountSummaries.list.