Menyiapkan pemberian tag sisi server dengan App Engine

Panduan ini menjelaskan cara:

  • Menyediakan server pemberian tag di App Engine Google Cloud Platform (GCP).
  • Mengupgrade server pemberian tag untuk menangani live traffic.
  • Menambah atau mengurangi jumlah server yang menjalankan penampung Google Tag Manager.
  • Terus mengupdate versi server pemberian tag setelah menyediakan server.

Prasyarat

  1. Anda memerlukan akun GCP. Jika Anda belum memilikinya, buat akun GCP baru.
  2. Anda memerlukan akun penagihan GCP. Jika Anda tidak memilikinya, buat akun penagihan GCP (memerlukan peran Billing Account Creator).
  3. Anda memerlukan peran Project Creator dan Billing Account User. Pelajari lebih lanjut cara menambahkan peran.

1. Menyediakan server

Untuk membuat server pemberian tag baru di instance App Engine, Anda harus:

  • Membuat penampung server baru di Tag Manager
  • Membuat Project Google Cloud (GCP) baru
  • Menyediakan server pemberian tag App Engine baru
  • Menambahkan URL server pemberian tag baru ke penampung server Tag Manager

Membuat penampung server Google Tag Manager

  1. Buka Google Tag Manager.

  2. Di baris akun, klik menu tambahan > Buat Penampung.

  3. Buat penampung server baru.

  4. Klik tombol pilihan "Sediakan server pemberian tag secara manual". Catat konfigurasi penampung. Anda akan membutuhkannya untuk menyediakan server.

Membuat project GCP baru

Untuk membuat project GCP baru bagi server pemberian tag:

  1. Buka Konsol Google Cloud.

  2. Buat project GCP baru.

  3. Beri nama project Anda. Sebaiknya gunakan ID penampung Anda untuk memudahkan. Nama ini hanya digunakan dalam GCP.

  4. Catat ID project GCP, karena Anda akan membutuhkannya untuk membuat server pemberian tag.

Menyediakan server pemberian tag baru

Untuk membuat server pemberian tag:

  1. Buka Cloud Shell.

  2. Tetapkan project GCP di Cloud Shell. Ganti project ID dengan project ID GCP yang Anda catat sebelumnya:

    gcloud config set project project ID
    
  3. Buat server pemberian tag dengan mengikuti skrip shell. Tetapkan jenis deployment ke testing.

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

Menambahkan URL server pemberian tag ke Tag Manager

  1. Buka Google Tag Manager.

  2. Di Admin > Setelan Penampung, klik Tambahkan URL. Jika Anda tidak mengetahui URL server, jalankan perintah berikut di Cloud Shell:

    gcloud app browse
    

    Hasil: Anda telah menyiapkan server pemberian tag dan menyediakannya dengan konfigurasi testing. Sekarang Anda dapat menguji pemberian tag sisi server.

Konfigurasi server awal (testing)

Konfigurasi pengujian dapat digunakan untuk menjelajahi produk dengan mengirimkan sejumlah kecil traffic pengujian dan menggunakan fitur Pratinjau di Tag Manager. Konfigurasi ini adalah class instance F1 App Engine di lingkungan Standar, dan umumnya Anda tidak akan dikenai biaya apa pun.

2. Menggunakan App Engine dalam produksi

Dalam konfigurasi production, biaya setiap server adalah sekitar $40/bulan (USD). Setiap server adalah instance App Engine dengan 1 vCPU, memori 0,5 GB, disk 10 GB di lingkungan Fleksibel.

Lihat artikel Mengelola biaya App Engine untuk memahami penagihan App Engine dan cara mengonfigurasi pemberitahuan penagihan. Sebaiknya siapkan pemberitahuan penagihan.

Sebaiknya jalankan minimal 3 server untuk mengurangi risiko kehilangan data jika terjadi pemadaman layanan server. Namun, Anda dapat memilih untuk menjalankan lebih sedikit (atau lebih banyak) server. Kami memperkirakan bahwa penskalaan otomatis 3–6 server (default) akan menangani 50–200 permintaan per detik. Performanya bergantung pada jumlah tag dan fungsi tag tersebut.

Untuk mengonfigurasi server pemberian tag:

  1. Buka Cloud Shell Google Cloud Platform.
  2. Tetapkan project Cloud Platform di Cloud Shell. Ganti project ID dengan project ID GCP yang Anda catat sebelumnya:
    gcloud config set project project ID
  3. Untuk mengonfigurasi ulang server pemberian tag untuk lingkungan produksi, jalankan skrip penyiapan di bawah. Lakukan tindakan berikut:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. Ubah jenis deployment menjadi production.
    2. Siapkan server tambahan untuk menyalurkan traffic produksi. Sebaiknya gunakan minimal tiga server.

Opsional: Nonaktifkan logging

Logging permintaan

Secara default, App Engine mencatat informasi tentang setiap permintaan (misalnya, jalur permintaan, parameter kueri, dsb.) yang diterimanya ke dalam log. Jika server pemberian tag Anda menangani banyak permintaan per bulan (mis., lebih dari 1 juta), pesan log tersebut dapat menimbulkan biaya logging yang signifikan. Untuk mengurangi atau menghilangkan biaya logging, sebaiknya nonaktifkan logging permintaan App Engine.

Untuk menonaktifkan logging permintaan App Engine:

  1. Di Google Cloud Platform, buka Logs Router. Pastikan Anda berada dalam project yang cocok dengan ID penampung Anda:
    screenshot pemilih project GCP, yang menampilkan contoh ID penampung Tag Manager.
  2. Untuk Type: Cloud Logging bucket, baris Name:_Default, pilih menu tambahan, lalu klik Edit Sink.
  3. Di bagian Sink destination, pilih bucket log _Default.
  4. Di bagian Choose logs to include in sink, tambahkan baris baru. Masukkan aturan berikut ke filter penyertaan yang ada:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. Untuk juga menonaktifkan logging dari load balancer, tambahkan baris baru dan masukkan aturan berikut ke filter penyertaan yang ada:

    NOT LOG_ID("requests")
    
  6. Update Sink untuk menerapkan perubahan. Sekarang, permintaan App Engine akan dikecualikan dari logging.

  7. Pastikan tidak ada permintaan baru yang muncul di log Logs Explorer.

Logging konsol

Server pemberian tag, klien, atau tag dalam penampung dapat mencatat pesan ke konsol yang mungkin dikenakan biaya logging. Untuk mengurangi atau menghilangkan biaya logging, Anda dapat menonaktifkan pesan log konsol yang tidak diinginkan.

Identifikasi log konsol yang tidak diinginkan:

  1. Di GCP, buka Logs Explorer.
  2. Cari pesan log yang tidak diinginkan yang berasal dari tag Anda. Contoh:

    Tag mungkin mengirim log berikut:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    Cari pesan log yang sesuai di kolom textPayload:
    screenshot dari Logs Explorer GCP, yang menampilkan contoh
log.

Untuk menonaktifkan pesan log konsol:

  1. Di Google Cloud Platform, buka Logs Router. Pastikan Anda berada dalam project yang cocok dengan ID penampung Anda:
    screenshot pemilih project GCP, yang menampilkan contoh ID penampung Tag Manager.
  2. Untuk Type: Cloud Logging bucket, baris Name:_Default, pilih menu tambahan, lalu klik Edit Sink.
  3. Di bagian Sink destination, pilih bucket log _Default.
  4. Di bagian Choose logs to include in sink, tambahkan baris baru. Masukkan aturan berikut ke filter penyertaan yang ada:

    NOT textPayload:"Custom message:"
    

    Untuk log konsol Anda, ganti teks Custom message: dengan substring dari log konsol yang ingin Anda nonaktifkan. Untuk filter yang lebih rumit, gunakan bahasa kueri logging.

  5. Update Sink untuk menerapkan perubahan. Pesan logToConsole yang cocok harus dikecualikan dari logging.

  6. Pastikan tidak ada pesan log baru yang muncul di Logs Explorer.

3. Memetakan deployment ke domain kustom

Deployment pemberian tag sisi server default dihosting di domain App Engine. Sebaiknya ubah deployment untuk menggunakan subdomain situs Anda.

Petakan subdomain situs Anda ke server pemberian tag.

4. Menambahkan URL server ke Google Tag Manager

Setelah memiliki server, Anda harus memastikan Google Tag Manager mengetahui bahwa server tersebut harus digunakan.

  1. Buka Google Tag Manager.

  2. Klik penampung server yang ingin Anda arahkan ke server pemberian tag.

  3. Buka setelan penampung server Anda di tab Admin > Setelan Penampung.

  4. Klik Tambahkan URL dan tempel URL server Anda.

  5. Simpan dan kembali ke ruang kerja Anda.

5. Validasi

Setelah menyiapkan server pemberian tag, pastikan server tersebut berfungsi sebagaimana mestinya. Di ruang kerja Tag Manager Anda, klik tombol Pratinjau. Jika halaman pratinjau dimuat, berarti semuanya telah disiapkan dengan benar.

Melakukan pratinjau beberapa URL

Jika Anda telah memetakan beberapa domain ke satu server pemberian tag, pastikan setiap URL ditambahkan ke setelan penampung.

Jika Anda memberikan beberapa URL, semua jalur (string setelah nama domain) harus cocok.

Berfungsi Tidak berfungsi.
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

Jika beberapa URL ditambahkan, Anda akan melihat ikon di samping tombol Pratinjau untuk memilih URL yang akan dilihat pratinjaunya.

Mengupdate versi server pemberian tag

Update server pemberian tag baru berisi perbaikan kerentanan keamanan dan fitur baru. Sebaiknya update server pemberian tag Anda untuk setiap rilis versi utama (mis., mengupgrade dari versi 1.xx ke 2.xx) saat Tag Manager memberi tahu Anda untuk melakukan update.

Untuk mengupdate server pemberian tag, jalankan kembali skrip penyiapan menggunakan setelan yang sama dengan yang Anda gunakan sebelumnya. Setelan yang ada akan ditetapkan secara default.

Untuk mengupdate server pemberian tag:

  1. Buka Cloud Shell Google Cloud Platform.
  2. Tetapkan project Cloud Platform di Cloud Shell. Ganti project ID dengan project ID GCP yang Anda catat sebelumnya:
    gcloud config set project project ID
  3. Jalankan skrip penyiapan menggunakan setelan yang sama dengan yang Anda gunakan sebelumnya. Setelan yang ada akan ditetapkan secara default.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

Untuk memeriksa bahwa update berhasil:

  1. Di penampung server, klik tombol Pratinjau untuk memulai sesi debug baru dan mengirim permintaan di tab terpisah.
  2. Di bagian Ringkasan, pilih tab Konsol dan pastikan tidak ada pesan yang meminta Anda mengupdate server pemberian tag.

Tag Manager mungkin menampilkan pesan yang meminta Anda untuk mengupdate server pemberian tag hingga satu hari setelah server berhasil diupdate. Namun, halaman pratinjau akan menampilkan pesan terbaru tentang versi server pemberian tag.

Memecahkan masalah waktu tunggu deployment produksi

Saat Anda menjalankan skrip penyiapan untuk membuat atau mengonfigurasi ulang server pemberian tag, waktu tunggu skrip mungkin habis. Ada beberapa alasan hal ini dapat terjadi. Dua yang paling umum adalah:

  1. Akun layanan memiliki izin yang salah - Akun layanan Compute Engine dan App Engine bertanggung jawab untuk men-deploy dan mempertahankan deployment produksi. Secara default, akun ini telah dikonfigurasi sebelumnya dengan izin yang sesuai. Namun, dalam beberapa kasus, kebijakan organisasi dapat menyebabkan akun layanan memiliki izin yang salah.

    1. Buka halaman IAM & Admin di menu navigasi sebelah kiri di Konsol Google Cloud.
    2. Temukan akun layanan Compute Engine <project_number>-compute@developer.gserviceaccount.com dan akun layanan App Engine <project_name>@appspot.gserviceaccount.com.
    3. Kedua akun layanan harus memiliki peran Editor. Jika salah satu akun tidak memiliki peran Editor, perbarui peran dengan mengklik ikon pensil di sebelah kanan akun, mengklik dropdown peran yang ada, men-scroll ke atas, lalu mengklik Project, lalu Editor.
  2. Kuota tidak mencukupi - Deployment produksi menggunakan kuota Compute Engine. Jika project tidak memiliki cukup kuota, waktu tunggu deployment dapat habis saat mencoba menyediakan resource.

    1. Buka halaman IAM & Admin di menu navigasi sebelah kiri di Google Cloud Console, lalu klik tab Quotas di menu navigasi sebelah kiri.
    2. Di dekat bagian atas halaman, klik kotak teks Filter table, lalu ketik Compute Engine API. Klik hasil satu-satunya.
    3. Verifikasi bahwa semua status kuota berada dalam batas atau memiliki tanda centang hijau.
    4. Cari dan klik CPU. Pastikan bahwa penggunaan saat ini ditambah jumlah instance yang di-deploy akan tetap di bawah batas untuk region deployment.