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:
- Buat file Google Spreadsheet. Beri nama yang keren.
- Buat Apps Script baru.
- Di menu, buka Ekstensi > Apps Script.
- Saat menu muncul, cukup klik Project Kosong.
- Beri nama project. Pastikan nama yang keren.
Setelah memiliki skrip baru, Anda harus mengaktifkan Layanan Google Analytics.
- Di editor skrip, pilih Resources > Advanced Google services...
- Pada dialog yang muncul, klik tombol aktif/nonaktif di samping Google Analytics API.
- Di bagian bawah dialog, klik link untuk Google Developers Console.
- Di konsol baru, klik lagi tombol aktif/nonaktif di samping Google Analytics API. (Setelah diaktifkan, elemen ini akan melompat ke bagian atas halaman.)
- 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
, danMidnight to 1am
.
- Dropdown
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:
- Membaca Data dari Spreadsheet – Jadi, Anda dapat menentukan kueri API di spreadsheet, bukan di JavaScript.
- Menyisipkan Diagram dari Spreadsheet ke Situs Google – Jadi, Anda dapat membuat dasbor di Google Sites dengan Data Analytics.
- Menu Kustom – Untuk memudahkan pengguna lain di perusahaan Anda menggunakan skrip yang Anda tulis.