Akses Otomatis ke Data Google Analytics di Google Spreadsheet

Nick Mihailovski, Tim Google Analytics API – Agustus 2012

Tutorial ini menjelaskan cara mengakses Management dan Core Reporting API di dalam Google Spreadsheet menggunakan Apps Script.


Pengantar

Anda dapat menggunakan Google Analytics API dan Google Apps Script untuk mengakses data Google Analytics dari Google Spreadsheet. Hal ini sangat efektif karena memungkinkan Anda untuk memanfaatkan semua fitur hebat Google Spreadsheet dengan data analisis Anda, seperti alat berbagi, kolaborasi, diagram, dan visualisasi yang mudah.

Tutorial ini akan memandu Anda memahami kode yang diperlukan untuk mengakses data Google Analytics di Google Spreadsheet menggunakan Google Apps Script.

Ringkasan

Tutorial ini akan menunjukkan cara mendaftarkan dan mengonfigurasi lingkungan Apps Script untuk menggunakan Google Analytics API. Setelah dikonfigurasi, tutorial ini akan memandu Anda mempelajari cara mengambil ID tampilan (profil) untuk pengguna yang diberi otorisasi menggunakan Management API. Lalu, cara menggunakan ID tampilan (profil) untuk mengkueri Core Reporting API guna mengambil 250 kata kunci penelusuran seluler teratas dari Google. Terakhir, hasilnya akan disisipkan ke dalam Google Spreadsheet. Setelah Anda memiliki data, tutorial ini juga membahas cara mengotomatiskan pengambilan data.

Saat membuat aplikasi menggunakan Google Analytics API dan Apps Script, Anda biasanya akan melalui langkah-langkah berikut:

  • Mengaktifkan Google Analytics API di Google Spreadsheet
  • Menggunakan Google Analytics API

Mari kita pelajari setiap langkahnya secara mendetail.

Aktifkan API Google Analytics di Apps Script

Untuk mengaktifkan akses ke data Google Analytics Anda dari dalam Google Spreadsheet, ikuti langkah-langkah berikut:

  1. Buat file Google Spreadsheet. Beri nama yang keren.
  2. Buat Apps Script baru.
    1. Di menu, buka Ekstensi > Apps Script.
    2. Saat menu muncul, cukup klik Project Kosong.
    3. Beri nama project. Pastikan nama yang keren.

Setelah memiliki skrip baru, Anda harus mengaktifkan Layanan Google Analytics.

  1. Di editor skrip, pilih Resources > Advanced Google services...
  2. Pada dialog yang muncul, klik tombol aktif/nonaktif di samping Google Analytics API.
  3. Di bagian bawah dialog, klik link untuk Google Developers Console.
  4. Di konsol baru, klik lagi tombol aktif/nonaktif di samping Google Analytics API. (Setelah diaktifkan, elemen ini akan melompat ke bagian atas halaman.)
  5. Kembali ke editor skrip dan klik OK dalam dialog.

Kotak dialog kecil berwarna kuning akan menampilkan pop-up yang menyatakan bahwa Anda telah berhasil menambahkan layanan Google API baru ke skrip Anda. Sekarang Anda siap untuk mulai menulis skrip pertama.

Menggunakan Google Analytics API

Skrip dalam tutorial ini akan mengkueri Google Analytics API untuk 250 kata kunci penelusuran seluler Google teratas, lalu menampilkan hasilnya di Google Spreadsheet. Untuk melakukannya, skrip akan melalui langkah-langkah berikut:

  • Ambil tampilan pertama (profil) dari pengguna yang diberi otorisasi.
  • Mengkueri Core Reporting API untuk mendapatkan data.
  • Menyisipkan data ke spreadsheet.

Tambahkan fungsi berikut ke project kosong.

function runDemo() {
  try {

    var firstProfile = getFirstProfile();
    var results = getReportDataForProfile(firstProfile);
    outputToSpreadsheet(results);

  } catch(error) {
    Browser.msgBox(error.message);
  }
}

Pada kode di atas, blok try...catch digunakan untuk menangani error API apa pun. Jika terjadi error, eksekusi program akan dihentikan dan error akan ditampilkan dalam kotak pesan. Di blok try, sebuah fungsi digunakan untuk melakukan setiap langkah yang akan dilalui skrip. Sekarang, mari tambahkan kode untuk masing-masing fungsi ini.

Mengambil Tampilan Pertama (Profil) Pengguna yang Diotorisasi

Di Google Analytics, setiap laporan dimiliki oleh tampilan (profil) dan diidentifikasi oleh ID tampilan (profil). Jadi, saat menetapkan kueri untuk data laporan, Anda juga harus menentukan ID tampilan (profil) dari tampilan (profil) yang datanya ingin Anda ambil.

Google Analytics Management API memberikan akses ke semua akun, properti web, dan entitas tampilan (profil) milik pengguna. Setiap entity ini berada dalam suatu hierarki, dan Anda dapat menjelajahi hierarki ini secara terprogram untuk mengambil ID tampilan (profil) untuk pengguna yang diotorisasi.

Fungsi kedua yang akan kita tulis akan menelusuri hierarki Management API dan menampilkan tampilan pertama (profil) pengguna. Salin dan tempel kode berikut ke project Apps Script Anda:

function getFirstProfile() {
  var accounts = Analytics.Management.Accounts.list();
  if (accounts.getItems()) {
    var firstAccountId = accounts.getItems()[0].getId();

    var webProperties = Analytics.Management.Webproperties.list(firstAccountId);
    if (webProperties.getItems()) {

      var firstWebPropertyId = webProperties.getItems()[0].getId();
      var profiles = Analytics.Management.Profiles.list(firstAccountId, firstWebPropertyId);

      if (profiles.getItems()) {
        var firstProfile = profiles.getItems()[0];
        return firstProfile;

      } else {
        throw new Error('No views (profiles) found.');
      }
    } else {
      throw new Error('No webproperties found.');
    }
  } else {
    throw new Error('No accounts found.');
  }
}

Dalam fungsi ini, kumpulan Akun akan dikueri terlebih dahulu menggunakan metode Analytics.Management.Accounts.list. Jika pengguna yang diberi otorisasi memiliki akun Google Analytics, ID akun pertama akan diambil. Selanjutnya, pengumpulan properti web dikueri dengan memanggil metode Analytics.Management.Webproperties.list dan meneruskan metode yang ID akun tersebut diambil pada langkah sebelumnya. Jika properti web ada, koleksi tampilan (profil) akhirnya dikueri menggunakan metode Analytics.Management.Profiles.list. ID akun dan ID properti web diteruskan sebagai parameter ke metode ini. Jika ada tampilan (profil), tampilan (profil) pertama akan ditampilkan.

Jika suatu saat error API terjadi, atau jika respons API tidak berisi hasil, error akan ditampilkan dengan pesan yang menjelaskan bahwa tidak ada hasil yang ditemukan. Blok catch pada fungsi runDemo di atas akan menangkap error ini dan mencetak pesan tersebut ke pengguna.

Setelah ditampilkan, skrip kini dapat mengkueri data pelaporan.

Mengkueri Core Reporting API untuk mendapatkan data.

Setelah memiliki ID tampilan (profil), Anda menggunakan Core Reporting API untuk membuat kueri data laporan Google Analytics. Di bagian ini, Anda akan mempelajari cara membuat kueri API ini menggunakan Apps Script.

Tambahkan kode berikut ke project Apps Script Anda:

function getReportDataForProfile(firstProfile) {

  var profileId = firstProfile.getId();
  var tableId = 'ga:' + profileId;
  var startDate = getLastNdays(14);   // 2 weeks (a fortnight) ago.
  var endDate = getLastNdays(0);      // Today.

  var optArgs = {
    'dimensions': 'ga:keyword',              // Comma separated list of dimensions.
    'sort': '-ga:sessions,ga:keyword',       // Sort by sessions descending, then keyword.
    'segment': 'dynamic::ga:isMobile==Yes',  // Process only mobile traffic.
    'filters': 'ga:source==google',          // Display only google traffic.
    'start-index': '1',
    'max-results': '250'                     // Display the first 250 results.
  };

  // Make a request to the API.
  var results = Analytics.Data.Ga.get(
      tableId,                    // Table id (format ga:xxxxxx).
      startDate,                  // Start-date (format yyyy-MM-dd).
      endDate,                    // End-date (format yyyy-MM-dd).
      'ga:sessions,ga:pageviews', // Comma seperated list of metrics.
      optArgs);

  if (results.getRows()) {
    return results;

  } else {
    throw new Error('No views (profiles) found');
  }
}

function getLastNdays(nDaysAgo) {
  var today = new Date();
  var before = new Date();
  before.setDate(today.getDate() - nDaysAgo);
  return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd');
}

Bagian pertama kode membuat kueri Core Reporting API menggunakan metode Analytics.Data.Ga.get. Metode ini menerima sekumpulan parameter yang menentukan jenis laporan yang akan diambil. Setiap kueri Core Reporting API terdiri dari kumpulan parameter wajib dan opsional. Parameter yang diperlukan diteruskan ke metode sebagai parameter, sedangkan parameter opsional diteruskan sebagai objek.

Parameter table ID wajib ada dan dibentuk dengan menyisir awalan ga: ke ID tampilan (profil). Kode tersebut membuat ID tabel menggunakan ID tampilan (profil) yang diambil pada langkah sebelumnya. Tanggal mulai dan akhir juga diperlukan, dan tentukan rentang tanggal data yang akan diambil. Keduanya dihitung berdasarkan tanggal hari ini menggunakan fungsi getLastNdays. Terakhir, semua parameter opsional diteruskan ke fungsi menggunakan objek optArgs.

Saat metode Analytics.Data.Ga.get berjalan, permintaan dibuat ke Core Reporting API. Jika terjadi, error akan tertangkap di blok try...catch yang ditentukan dalam metode runDemo luar. Jika permintaan berhasil, hasilnya akan ditampilkan.

Sisipkan Data Ke Dalam {i>Spreadsheet<i}

Langkah terakhir dalam skrip adalah membuat output hasil dari Core Reporting API ke Google Spreadsheet. Metode outputToSpreadsheet akan melakukannya. Tambahkan kode berikut ke project Anda:

function outputToSpreadsheet(results) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet();

  // Print the headers.
  var headerNames = [];
  for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) {
    headerNames.push(header.getName());
  }
  sheet.getRange(1, 1, 1, headerNames.length)
      .setValues([headerNames]);

  // Print the rows of data.
  sheet.getRange(2, 1, results.getRows().length, headerNames.length)
      .setValues(results.getRows());
}

Fungsi ini terlebih dahulu menyisipkan {i>sheet <i}baru ke dalam {i>spreadsheet <i}yang aktif. Selanjutnya, semua header dan data pelaporan akan disisipkan ke sheet. Untuk tips lainnya tentang cara menyisipkan data ke Google Spreadsheet, baca Menulis Data dari Objek JavaScript ke Spreadsheet di Tutorial Menyimpan Data di Spreadsheet.

Jalankan Skrip

Setelah menambahkan semua kode ke project, sekarang Anda dapat menjalankannya.

  • Di toolbar editor skrip, pada dropdown pilih fungsi, pilih runDemo.
  • Berikutnya, klik tombol play.

Saat pertama kali menjalankan perintah ini, kotak pop-up akan muncul yang meminta Anda memberikan otorisasi pada skrip ini untuk mengakses data akun Google Analytics Anda.

Klik otorisasi.

Setelah diklik, halaman baru yang dihosting di google.com akan terbuka dan meminta Anda memberikan akses skrip ini ke data Anda. Setelah mengklik izinkan, Anda akan dialihkan ke halaman konfirmasi. Pada tahap ini, skrip akan dapat mengakses data Google Analytics Anda dan dapat terus dijalankan.

Setelah skrip berjalan, klik ke jendela dengan Google Sheets. Anda akan melihat semua data kata kunci yang ditampilkan dari API, atau kotak pesan dengan pesan error.

Otomatiskan Skrip

Pada tahap ini, Anda seharusnya memiliki skrip yang mengkueri Google Analytics API. Sekarang Anda mungkin ingin mengotomatiskan skrip ini untuk mengambil data baru setiap malam. Apps Script membuat otomatisasi sangat mudah menggunakan fitur triggers.

Untuk mengotomatiskan skrip ini, lakukan langkah-langkah berikut:

  • Di toolbar editor skrip, klik Resources -> All your triggers...
  • Klik Add a new trigger. Kotak dialog pemicu akan muncul.
  • Konfigurasi pemicu untuk menjalankan metode runDemo setiap malam
    • Dropdown Run harus ditetapkan ke: runDemo
    • Dropdown Events harus ditetapkan ke: Time-driven, Day timer, dan Midnight to 1am.

Setelah dikonfigurasi, skrip ini akan berjalan setiap malam, memberi Anda data baru di pagi hari.

Jika terjadi error pada malam hari, Anda perlu diberi tahu. Apps Script juga memungkinkan Anda mengirim peringatan email jika terjadi kegagalan. Untuk mengonfigurasinya, di kotak dialog pemicu, klik link notifications. Kotak dialog baru akan muncul dan memungkinkan Anda mengonfigurasi ke email mana error akan dikirimkan.

Kesimpulan

Anda telah berhasil mendaftarkan dan mengotorisasi akses ke skrip Anda. Anda telah mengkueri Management API beberapa kali untuk mengambil ID tampilan (profil). Kemudian, Anda menggunakan ID tampilan (profil) untuk membuat kueri ke Core Reporting API agar dapat mengambil data dan menampilkannya di Google Spreadsheet.

Dengan menggunakan teknik yang dijelaskan dalam tutorial, Anda dapat melakukan analisis yang lebih kompleks, mendapatkan insight yang lebih baik, membuat dasbor kustom, dan mengurangi banyak waktu dalam menjalankan laporan manual.

Beberapa tutorial keren lainnya yang mungkin berguna untuk membantu Anda mendapatkan lebih banyak manfaat dari Google Analytics API dan Google Apps Script adalah: