Lewati ke konten

Integrasi GTM Analytics

Anda dapat menghubungkan kontainer Google Tag Manager (GTM) apa pun ke Wink dengan memasukkan ID Kontainer GTM di portal Wink. Setelah terhubung, kontainer Anda akan dimuat secara otomatis untuk properti Anda dan membaca event pemesanan Wink secara langsung — mencakup seluruh perjalanan tamu dari pencarian hingga pemesanan selesai. Kasus penggunaan umum adalah kontainer Sojern untuk retargeting dan iklan, tetapi kontainer GTM apa pun bekerja dengan cara yang sama.


  1. Dapatkan ID Kontainer GTM Anda

    Dapatkan ID Kontainer GTM Anda (format GTM-XXXXXXX). Jika berasal dari mitra seperti Sojern, minta ID Kontainer GTM secara spesifik — ini berbeda dari pixel atau ID tag.

  2. Masukkan di Portal Wink

    Masuk ke app.wink.travel, pilih akun Anda, dan buka tab Customizations. Tempelkan ID Kontainer GTM Anda ke kolom GTM dan simpan. Integrasi Anda sekarang aktif.

  3. (Opsional) Tambahkan ID Pengukuran GA4 + API Secret untuk Pembelian Server-Side

    Kontainer GTM berjalan sepenuhnya di browser tamu, jadi pemesanan yang selesai bisa terlewat jika tamu menutup tab saat pengalihan pembayaran. Jika kontainer Anda memuat properti GA4 dan Anda ingin pemesanan yang selesai tercatat dengan andal, masukkan juga ID Pengukuran dan API secret Measurement Protocol GA4 tersebut di bagian GTM. Wink kemudian akan mengirimkan event purchase untuk properti itu secara server-side, persis seperti yang dijelaskan dalam panduan Integrasi GA4 Analytics. Biarkan kosong jika Anda hanya membutuhkan pelacakan di browser.

  4. Konfirmasi dengan Penyedia Anda

    Jika kontainer Anda berasal dari mitra seperti Sojern, beri tahu manajer akun Anda bahwa integrasi sudah aktif. Mereka dapat memverifikasi dari sisi mereka bahwa tag berjalan dengan benar di wink.travel untuk properti Anda dan data mengalir ke akun Anda.


Untuk transparansi, berikut yang dikonfigurasi Wink agar integrasi ini berfungsi:

  • Field ID Kontainer GTM tersedia di tab Customizations portal Wink Anda. Saat Anda memasukkan ID Kontainer, Wink memvalidasi formatnya (GTM-XXXXXXX) dan menyimpannya dengan aman terkait properti Anda.
  • Di setiap halaman tempat properti Anda aktif di Wink, kontainer Anda disuntikkan langsung ke halaman — berbagi window.dataLayer milik Wink — sehingga dimuat bersamaan dengan kontainer Wink tanpa ketergantungan konfigurasi tambahan. Ini terjadi otomatis, tanpa pekerjaan per properti dari tim Wink.
  • Kontainer Anda dimuat secara asinkron, sehingga tidak memengaruhi performa pemuatan halaman bagi tamu Anda.
  • Pelacakan Wink dan kontainer Anda berjalan paralel, membaca dari dataLayer bersama yang sama. Setiap event pemesanan yang dilacak Wink tersedia secara bersamaan untuk kontainer Anda.
  • Saat properti Anda tidak sedang dilihat — misalnya, saat tamu menjelajah hotel lain di Wink — kontainer Anda tidak dimuat, sehingga hanya menerima data yang relevan untuk properti Anda.
  • Jika Anda memberikan ID Pengukuran GA4 + API secret (langkah 3 di atas), event purchase untuk pemesanan yang selesai juga dikirim secara server-side melalui Measurement Protocol GA4, sehingga penjualan tercatat meskipun tamu tidak kembali ke halaman konfirmasi.

Wink mendorong event kompatibel GA4 ke dataLayer sepanjang perjalanan tamu. Kontainer GTM Anda membaca dari dataLayer bersama yang sama, sehingga trigger atau variabel apa pun yang Anda konfigurasi memiliki akses ke semua properti yang dijelaskan di bawah.

Setiap event mengikuti struktur GA4 Enhanced Ecommerce standar: string event tingkat atas dan objek ecommerce. Sebelum setiap push, Wink menghapus payload ecommerce sebelumnya untuk mencegah data lama masuk ke trigger baru.


Event ini otomatis dipicu saat tamu bergerak melalui funnel pemesanan. Konfigurasikan trigger GTM Anda sebagai trigger Custom Event yang cocok dengan nama event di bawah.

LangkahEventKapan Dipicu
1view_item_listGrid atau daftar inventaris hotel dimuat
2view_itemTamu melihat halaman properti tertentu
3add_to_cartTamu menambahkan kamar ke keranjang belanja
4begin_checkoutHalaman checkout / pembayaran dimuat
5add_payment_infoTamu memilih metode pembayaran
6loginTamu melakukan autentikasi via SSO
7purchasePemesanan dikonfirmasi
8refundPemesanan dibatalkan

Dipicu saat grid atau daftar inventaris hotel dirender.

{
"event": "view_item_list",
"ecommerce": {
"item_list_id": "featured_hotels",
"item_list_name": "Featured Hotels",
"items": [ ]
}
}

Dipicu saat tamu melihat properti tertentu.

{
"event": "view_item",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}

Dipicu saat tamu menambahkan kamar ke keranjang.

{
"event": "add_to_cart",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}

Dipicu saat halaman checkout / pembayaran dimuat.

{
"event": "begin_checkout",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"coupon": "SUMMER10",
"items": [ ]
}
}

coupon hanya ada saat kode diskon diterapkan.


Dipicu saat tamu memilih atau mengonfirmasi metode pembayaran.

{
"event": "add_payment_info",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"coupon": "SUMMER10",
"payment_type": "STRIPE",
"items": [ ]
}
}

payment_type diisi dari tipe pengakuisisi pembayaran. coupon hanya ada saat kode diskon diterapkan.


Dipicu saat tamu melakukan autentikasi melalui single sign-on.

{
"event": "login",
"ecommerce": {
"method": "IAM"
}
}

Dipicu saat pemesanan dikonfirmasi.

{
"event": "purchase",
"ecommerce": {
"currency": "USD",
"transaction_id": "bc-a1b2c3d4",
"value": 299.00,
"coupon": "SUMMER10",
"shipping": 0.00,
"tax": 0.00,
"items": [
{
"item_id": "rr-xyz789",
"item_name": "Deluxe Ocean Suite",
"item_brand": "Grand Resort",
"item_category": "GUEST_ROOM",
"price": 299.00,
"quantity": 1,
"property_id": "prop-abc123",
"property_name": "Grand Resort Maldives",
"property_brand": "Grand Collection",
"property_chain": "Luxury Hotels International",
"city_name": "Malé",
"country_code": "MV",
"start_date": "2026-06-01",
"end_date": "2026-06-05",
"num_adults": 2,
"num_children": 0,
"cancellation_policy": "Refundable",
"rate_plan_id": "rp-summer2026",
"room_rate_id": "rr-xyz789",
"room_rate_name": "Summer Escape — Bed & Breakfast",
"num_perks": 2,
"room_location": "Overwater",
"room_view": "Ocean",
"room_classification": "Suite"
}
]
}
}

transaction_id adalah pengenal unik kontrak pemesanan. coupon, shipping, dan tax hanya ada jika berlaku.


Dipicu saat pemesanan dibatalkan.

{
"event": "refund",
"ecommerce": {
"currency": "USD",
"transaction_id": "bc-a1b2c3d4",
"value": 299.00,
"coupon": "SUMMER10",
"shipping": 0.00,
"tax": 0.00,
"items": [ ]
}
}

transaction_id sama dengan event purchase untuk pemesanan yang sama. coupon, shipping, dan tax hanya ada jika berlaku.


Semua event yang menyertakan array items menggunakan skema item yang sama. Setiap properti bersifat opsional kecuali yang ditandai wajib.

Field ini dikenali secara native oleh GA4 dan muncul di laporan ecommerce standar tanpa konfigurasi tambahan.

PropertiTipeWajibDeskripsi
item_idstringYaPengenal unik untuk kamar atau produk
item_namestringNama kamar atau produk
affiliationstringNama afiliasi atau penjual
couponstringKode kupon yang diterapkan pada item
currencystringKode mata uang ISO 4217 (misal USD)
creative_namestringNama kreatif yang digunakan dalam promosi
creative_slotstringPosisi slot dari kreatif promosi
discountnumberJumlah diskon yang diterapkan
indexnumberPosisi dalam daftar (berbasis 1)
item_brandstringNama hotel atau merek
item_categorystringJenis produk — misal GUEST_ROOM, ACTIVITY, ATTRACTION, MEETING_ROOM, RESTAURANT, SPA
item_list_idstringPengenal daftar tempat item ini berada
item_list_namestringNama tampilan daftar
location_idstringKoordinat geo properti
pricenumberHarga satuan
promotion_idstringPengenal promosi
promotion_namestringNama tampilan promosi
quantitynumberKuantitas (default 1)

Parameter ini membawa konteks pemesanan spesifik Wink. GA4 tidak otomatis menampilkan di laporan — Anda harus mendaftarkan masing-masing sebagai dimensi khusus item di properti GA4 Anda sebelum muncul di eksplorasi atau laporan standar. Lihat Dimensi Khusus di GA4 di bawah untuk instruksi setup.

PropertiTipeDeskripsi
property_idstringPengenal properti Wink
property_namestringNama tampilan properti
property_brandstringMerek tempat properti berada
property_chainstringRantai tempat properti berada
property_url_namestringSlug URL-friendly untuk properti
city_namestringKota tempat properti berada
country_codestringKode negara ISO 3166-1 alpha-2
start_datestringTanggal check-in dalam format YYYY-MM-DD
end_datestringTanggal check-out dalam format YYYY-MM-DD
num_adultsnumberJumlah dewasa dalam pemesanan
num_childrennumberJumlah anak dalam pemesanan
cancellation_policystringSalah satu: Refundable, Non-Refundable, Refundable-With-Restrictions, Non-Refundable-With-Restrictions
rate_plan_idstringPengenal rencana tarif
room_rate_idstringPengenal tarif kamar spesifik
room_rate_namestringNama tampilan tarif kamar
num_perksnumberJumlah fasilitas yang termasuk dengan tarif
room_locationstringDeskripsi lokasi kamar (misal Overwater, Garden)
room_viewstringDeskripsi pemandangan kamar (misal Ocean, City)
room_classificationstringKlasifikasi atau tingkat kamar (misal Suite, Standard)
bed_typestringKonfigurasi tempat tidur kamar (misal King, Twin)

GA4 mengabaikan parameter item khusus dalam laporan sampai Anda mendaftarkannya secara eksplisit sebagai dimensi khusus item. Anda hanya perlu mendaftarkan parameter yang ingin Anda gunakan dalam laporan — tidak perlu mendaftarkan semua 20.

  1. Buka Definisi Kustom

    Di GA4, buka Admin (ikon roda gigi kiri bawah) → pilih properti Anda → Data displayCustom definitions.

  2. Buat dimensi khusus baru

    Klik Create custom dimensions.

  3. Isi detail dimensi

    • Dimension name — label yang mudah dibaca yang muncul di laporan GA4 (lihat tabel di bawah)
    • Scope — pilih Item
    • Event parameter — nama parameter persis seperti di dataLayer (lihat tabel di bawah)
    • Description — opsional tapi disarankan
  4. Simpan dan ulangi

    Klik Save, lalu ulangi untuk setiap parameter yang ingin Anda lacak.

Gunakan tabel berikut sebagai referensi saat membuat dimensi khusus. Nilai Event parameter harus cocok persis — GA4 peka huruf besar/kecil.

Nama dimensiEvent parameterTipe
Property IDproperty_idTeks
Property nameproperty_nameTeks
Property brandproperty_brandTeks
Property chainproperty_chainTeks
Property URL nameproperty_url_nameTeks
City namecity_nameTeks
Country codecountry_codeTeks
Check-in datestart_dateTeks
Check-out dateend_dateTeks
Number of adultsnum_adultsAngka
Number of childrennum_childrenAngka
Cancellation policycancellation_policyTeks
Rate plan IDrate_plan_idTeks
Room rate IDroom_rate_idTeks
Room rate nameroom_rate_nameTeks
Number of perksnum_perksAngka
Room locationroom_locationTeks
Room viewroom_viewTeks
Room classificationroom_classificationTeks
Bed typebed_typeTeks

Event berikut tersedia di dataLayer Wink tetapi bukan bagian dari funnel pemesanan standar. Mereka mungkin dipicu oleh interaksi lain di platform.

{
"event": "add_to_wishlist",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}
{
"event": "remove_from_cart",
"ecommerce": {
"currency": "USD",
"value": 299.00,
"items": [ ]
}
}
{
"event": "select_item",
"ecommerce": {
"item_list_id": "featured_hotels",
"item_list_name": "Featured Hotels",
"items": [ ]
}
}
{
"event": "view_cart"
}

Tidak ada payload ecommerce yang disertakan dengan event ini.

{
"event": "view_promotion",
"ecommerce": {
"creative_name": "Summer Banner",
"creative_slot": "hero",
"promotion_id": "promo_001",
"promotion_name": "Summer Sale",
"items": [ ]
}
}
{
"event": "select_promotion",
"ecommerce": {
"creative_name": "Summer Banner",
"creative_slot": "hero",
"promotion_id": "promo_001",
"promotion_name": "Summer Sale",
"items": [ ]
}
}
{
"event": "search",
"ecommerce": {
"search_term": "beachfront resort"
}
}
{
"event": "select_content",
"ecommerce": {
"content_type": "hotel",
"content_id": "prop_12345"
}
}
{
"event": "share",
"ecommerce": {
"method": "copy_link",
"content_type": "hotel",
"item_id": "prop_12345"
}
}
{
"event": "sign_up",
"ecommerce": {
"method": "email"
}
}
{
"event": "generate_lead",
"ecommerce": {
"currency": "USD",
"value": 0.00
}
}
{
"event": "join_group",
"ecommerce": {
"group_id": "group_abc"
}
}
{
"event": "earn_virtual_currency",
"ecommerce": {
"virtual_currency_name": "WinkPoints",
"value": 100
}
}
{
"event": "spend_virtual_currency",
"ecommerce": {
"virtual_currency_name": "WinkPoints",
"value": 50,
"item_name": "Room Upgrade"
}
}
{
"event": "level_start",
"ecommerce": {
"level_name": "Gold"
}
}
{
"event": "level_end",
"ecommerce": {
"level_name": "Gold",
"success": true
}
}
{
"event": "level_up",
"ecommerce": {
"level": 2,
"character": "traveler"
}
}
{
"event": "post_score",
"ecommerce": {
"score": 980,
"level": 2,
"character": "traveler"
}
}
{
"event": "unlock_achievement",
"ecommerce": {
"achievement_id": "first_booking"
}
}
{
"event": "tutorial_begin",
"ecommerce": {}
}
{
"event": "tutorial_complete",
"ecommerce": {}
}

Ini adalah event khusus Wink — bukan bagian dari set event GA4 standar. Event ini didorong pada setiap navigasi halaman dan membawa konteks perangkat serta sesi. Tidak menyertakan objek ecommerce.

{
"event": "virtualPageView",
"device": "Desktop",
"deviceAgent": "Mozilla/5.0 ...",
"os": "MacOS",
"path": "/hotels/grand-resort",
"title": "Grand Resort — Wink",
"userId": "user_abc123",
"startDate": "2026-06-01",
"endDate": "2026-06-05",
"guests": "2",
"rooms": "1"
}
PropertiDeskripsi
deviceTipe perangkat terdeteksi — Desktop, Android, iPhone, iPad, atau serupa
deviceAgentString user agent mentah
osSistem operasi terdeteksi — Windows, MacOS, Linux, UNIX
pathPath halaman saat ini
titleJudul halaman saat ini
userIdPengenal pengguna yang sudah autentikasi (dihilangkan jika belum login)
startDateTanggal check-in dari sesi pencarian saat ini
endDateTanggal check-out dari sesi pencarian saat ini
guestsJumlah tamu dari sesi pencarian saat ini
roomsJumlah kamar dari sesi pencarian saat ini