Ekspor · Google Sheets

Simpan metrik NowMetrix di Google Sheets

Gunakan Google Apps Script untuk mengambil data NowMetrix harian dengan aman, memperbarui spreadsheet sesuai jadwal, serta menyediakan data untuk kalkulasi, berbagi, atau laporan Looker Studio.

Cara kerja koneksi

Spreadsheet berfungsi sebagai jembatan data kecil yang dikendalikan pelanggan:

NowMetrix REST API → Google Apps Script → Google Sheet → optional Looker Studio report

Data tidak diimpor ke Google Analytics. Apps Script meminta endpoint NowMetrix yang dipilih dengan API key Anda, lalu menulis baris yang dikembalikan ke spreadsheet. Looker Studio kemudian dapat menggunakan lembar kerja tersebut sebagai sumber data terpisah.

Penyiapan ini cocok untuk pelaporan per jam atau harian. Google Sheets dan Looker Studio menyimpan data dalam cache, jadi gunakan dasbor NowMetrix untuk pemantauan ruang redaksi secara real time.

1. Siapkan API key dan spreadsheet

  1. Di NowMetrix, buka Pengaturan → API dan buat key terpisah dengan label Google Sheets.
  2. Salin seluruh key saat ditampilkan. Key tersebut tidak dapat ditampilkan lagi.
  3. Catat tracker ID untuk situs web yang ingin Anda ekspor.
  4. Buat Google Sheet baru, misalnya NowMetrix Export.
  5. Atur zona waktu spreadsheet agar sama dengan zona waktu tracker NowMetrix.

Contoh di bawah mengekspor 30 baris harian terakhir dari /v1/overview. Setiap baris berisi tanggal, tracker, zona waktu tracker, pageviews, dan visits.

2. Simpan API key di Script Properties

Di Google Sheet, pilih Ekstensi → Apps Script. Kemudian:

  1. Buka Pengaturan proyek menggunakan ikon roda gigi.
  2. Di bagian Properti skrip, pilih Tambahkan properti skrip.
  3. Tambahkan dua properti berikut:
Properti Nilai
NOWMETRIX_API_KEY Key Anda yang diawali nm_
NOWMETRIX_TRACKER_ID Tracker ID yang akan diekspor
Jangan pernah menaruh API key di sel spreadsheet, parameter laporan, sumber skrip, URL, atau pesan log. Script Properties menyimpannya di luar lembar kerja, tetapi orang yang memiliki akses edit ke proyek Apps Script tetap harus dipercaya.

3. Tambahkan skrip ekspor

Ganti isi Code.gs dengan skrip ini. Skrip memeriksa konfigurasi, membatasi akses spreadsheet ke dokumen saat ini, menangani error API, dan hanya mengganti lembar kerja setelah respons berhasil diterima.

/**
 * @OnlyCurrentDoc
 */

const NOWMETRIX_BASE_URL = 'https://api.nowmetrix.com';

function fetchNowMetrix(path) {
  const properties = PropertiesService.getScriptProperties();
  const apiKey = properties.getProperty('NOWMETRIX_API_KEY');
  const trackerId = properties.getProperty('NOWMETRIX_TRACKER_ID');

  if (!apiKey || !trackerId) {
    throw new Error('NOWMETRIX_API_KEY or NOWMETRIX_TRACKER_ID is missing.');
  }

  const separator = path.includes('?') ? '&' : '?';
  const url = NOWMETRIX_BASE_URL
    + path
    + separator
    + 'site=' + encodeURIComponent(trackerId);

  const response = UrlFetchApp.fetch(url, {
    method: 'get',
    headers: {
      Authorization: 'Bearer ' + apiKey,
      Accept: 'application/json'
    },
    muteHttpExceptions: true
  });

  const status = response.getResponseCode();
  const body = response.getContentText();

  if (status < 200 || status >= 300) {
    throw new Error('NowMetrix API returned HTTP ' + status + ': ' + body);
  }

  return JSON.parse(body);
}

function toSheetDate(value) {
  const parts = value.split('-').map(Number);
  return new Date(parts[0], parts[1] - 1, parts[2]);
}

function syncNowMetrixDaily() {
  const result = fetchNowMetrix('/v1/overview?days=30');
  const rows = result.daily.map(day => [
    toSheetDate(day.date),
    result.site,
    result.timezone,
    day.pageviews,
    day.visits
  ]);

  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getSheetByName('Daily')
    || spreadsheet.insertSheet('Daily');
  const values = [
    ['date', 'tracker', 'timezone', 'pageviews', 'visits'],
    ...rows
  ];

  sheet.clearContents();
  sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
  sheet.setFrozenRows(1);
  sheet.getRange(1, 1, 1, values[0].length).setFontWeight('bold');

  if (rows.length > 0) {
    sheet.getRange(2, 1, rows.length, 1).setNumberFormat('yyyy-mm-dd');
    sheet.getRange(2, 4, rows.length, 2).setNumberFormat('#,##0');
  }

  sheet.autoResizeColumns(1, values[0].length);
}

Jangan mengganti NOWMETRIX_API_KEY dengan key sebenarnya di sumber skrip. Skrip membacanya dari Script Properties saat runtime. Pertahankan @OnlyCurrentDoc di bagian atas: perintah ini memberi tahu Google untuk meminta akses ke spreadsheet ini, bukan ke semua spreadsheet di akun Anda.

4. Simpan dan jalankan skrip sekali

  1. Beri nama proyek NowMetrix Google Sheets Export di pojok kiri atas.
  2. Simpan proyek Apps Script menggunakan ikon disket atau pintasan keyboard.
  3. Pilih syncNowMetrixDaily di menu fungsi pada toolbar editor.
  4. Pilih Run di samping menu fungsi.
Jangan pilih Deploy. Ekspor ini bukan aplikasi web, API yang dapat dieksekusi, add-on, atau library, sehingga tidak memerlukan deployment. Jalankan fungsi secara langsung di editor.

5. Otorisasi proyek Apps Script Anda sendiri

Google meminta izin saat skrip pertama kali dijalankan. Pilih Tinjau izin dan pilih akun Google yang memiliki spreadsheet tersebut.

Peringatan seperti Google belum memverifikasi aplikasi ini wajar muncul untuk proyek Apps Script pribadi yang Anda buat sendiri. Email developer yang ditampilkan Google harus merupakan akun Google Anda sendiri. Proyek ini bukan aplikasi Google milik NowMetrix dan tidak memberikan akses ke akun Google Anda kepada NowMetrix.

  1. Pastikan Anda membuat proyek Apps Script dan email developer adalah milik Anda.
  2. Pilih Lanjutan pada layar peringatan.
  3. Lanjutkan ke proyek yang Anda beri nama. Google mungkin menandai tautan ini sebagai tidak aman karena proyek pribadi tersebut belum diverifikasi.
  4. Tinjau izin yang diminta, lalu pilih Allow atau Lanjutkan.
Izin Alasan diperlukan
Akses ke spreadsheet saat ini Membuat atau memperbarui lembar kerja Daily di Google Sheet ini.
Terhubung ke layanan eksternal Mengirim permintaan HTTPS ke https://api.nowmetrix.com.
Hentikan proses jika email developer bukan milik Anda, Anda tidak membuat proyek tersebut, atau kodenya berbeda dari contoh. Jika Google meminta akses ke semua spreadsheet Anda, batalkan proses, pastikan @OnlyCurrentDoc berada di bagian paling atas Code.gs, simpan, lalu jalankan kembali fungsinya.

Jika sebelumnya Anda telah menyetujui akses spreadsheet yang lebih luas, hapus proyek tersebut melalui Akun Google → Keamanan → Koneksi ke aplikasi dan layanan pihak ketiga, lalu jalankan kembali skrip yang telah disimpan untuk meminta izin yang lebih terbatas.

Google menjelaskan alur otorisasi ini dan pembatasan @OnlyCurrentDoc dalam panduan otorisasi Apps Script.

6. Verifikasi ekspor pertama

Setelah otorisasi, Apps Script melanjutkan proses. Tunggu hingga Eksekusi selesai muncul di log eksekusi, kembali ke spreadsheet, lalu buka lembar kerja Daily yang baru. Hasilnya seharusnya kurang lebih seperti berikut:

date tracker timezone pageviews visits
2026-08-22 TRACKER_ID Europe/Zurich 81,240 53,210
2026-08-23 TRACKER_ID Europe/Zurich 77,480 50,195

7. Jadwalkan pembaruan otomatis

Di Apps Script, buka Pemicu menggunakan ikon jam, lalu tambahkan trigger:

Fungsi syncNowMetrixDaily
Deployment Head
Sumber peristiwa Berbasis waktu
Frekuensi Setiap jam, atau lebih jarang untuk laporan harian

Trigger berjalan menggunakan akun Google yang membuatnya. Pastikan akun tersebut tetap aktif dan tinjau notifikasi kegagalan Apps Script. Hindari permintaan yang terlalu sering: API publik NowMetrix saat ini mengizinkan 20 permintaan per menit untuk setiap tracker, yang digunakan bersama oleh semua key dan pengguna.

Contoh ini mengganti tabel 30 hari berjalan pada setiap proses yang berhasil. Dengan begitu, tanggal duplikat dapat dihindari dan ukuran sheet tetap ringkas.

8. Gunakan lembar kerja di Looker Studio

  1. Buat atau buka laporan di Looker Studio.
  2. Pilih Tambahkan data → Google Sheets.
  3. Pilih spreadsheet dan lembar kerja Daily.
  4. Gunakan baris pertama sebagai header, lalu hubungkan sumber data.
  5. Pastikan date dikenali sebagai tanggal dan pageviews serta visits sebagai metrik numerik.

Anda kini dapat membuat grafik deret waktu, kartu skor, tabel, dan kolom terhitung seperti pageviews / visits. Looker Studio membaca data ini sebagai sumber data terpisah; data tersebut tidak mengubah nilai NowMetrix menjadi peristiwa Google Analytics.

Google menjelaskan pengaturan laporan lainnya dalam panduan konektor Google Sheets.

Ekspor data NowMetrix lainnya

Kasus penggunaan Contoh endpoint Perilaku sheet yang disarankan
Pageviews dan Visits harian /v1/overview?days=30 Ganti atau perbarui baris berdasarkan tracker dan tanggal
Halaman teratas kemarin /v1/recap?preset=yesterday&limit=100 Tambahkan sekali sehari atau ganti hasil saat ini
Snapshot live saat ini /v1/realtime Tambahkan cap waktu respons saat membuat tren
Sumber lalu lintas saat ini /v1/sources Tambahkan cap waktu respons atau ganti snapshot saat ini
Recap seperti preset=last30 berisi total untuk seluruh rentang berjalan. Jangan menjumlahkan nilai tersebut setiap hari. Untuk riwayat artikel yang dapat dijumlahkan, ekspor periode yang sudah selesai seperti yesterday dan simpan rentangnya di setiap baris.

Daftar periksa keamanan dan berbagi

  • Gunakan API key NowMetrix terpisah untuk ekspor dan berikan akses hanya ke tracker yang diperlukan.
  • Simpan key hanya di Script Properties atau penyimpanan rahasia sisi server lainnya.
  • Pertahankan @OnlyCurrentDoc di dalam skrip untuk membatasi akses Google Sheets ke dokumen ini.
  • Jangan pernah menyertakan key di sel, formula, parameter laporan, URL, tangkapan layar, atau log.
  • Batasi akses edit ke proyek Apps Script. Editor harus diperlakukan sebagai pengguna tepercaya.
  • Otorisasi skrip hanya jika Google menampilkan akun Anda sendiri sebagai developer.
  • Gunakan spreadsheet milik pelanggan yang terpisah untuk setiap akun NowMetrix.
  • Tinjau setelan berbagi Google Sheet dan Looker Studio sebelum menerbitkan laporan.
  • Segera cabut API key jika sheet, skrip, atau akun Google mungkin telah disusupi.
Akses API mengikuti tracker yang diizinkan untuk pengguna NowMetrix. Menghapus akses tersebut atau mencabut key akan menghentikan ekspor berikutnya, tetapi tidak menghapus data yang sudah disalin ke Google.

Pemecahan masalah

Masalah Yang perlu diperiksa
HTTP 401 API key tidak ada, tidak lengkap, tidak valid, atau telah dicabut.
HTTP 403 API key tidak memiliki akses ke tracker yang dikonfigurasi.
HTTP 429 Batas laju API untuk tracker telah terlampaui. Kurangi frekuensi trigger.
HTTP 503 Backend analitik sedang tidak tersedia. Pertahankan data sheet yang ada dan coba lagi nanti.
Tidak ada lembar kerja Daily Jalankan syncNowMetrixDaily secara manual dan periksa detail eksekusi Apps Script.
Google menyatakan aplikasi belum diverifikasi Hal ini wajar untuk skrip pribadi Anda. Lanjutkan hanya jika Anda membuat proyek tersebut dan Google menampilkan email developer Anda sendiri.
Google meminta akses ke semua spreadsheet Batalkan proses, tambahkan @OnlyCurrentDoc di bagian atas Code.gs, simpan, lalu jalankan kembali fungsinya.
Tanggal terlihat keliru Samakan zona waktu Google Sheet dengan zona waktu tracker yang dikembalikan oleh API.