GTMアナリティクス連携
WinkポータルにGTMコンテナIDを入力することで、任意のGoogle Tag Manager(GTM)コンテナをWinkに接続できます。接続後は、あなたの物件に対してコンテナが自動的に読み込まれ、Winkの予約イベントを直接読み取ります。これにより、検索から予約完了までのゲストの全旅程をカバーします。一般的な利用例は、リターゲティングや広告用のSojernコンテナですが、どのGTMコンテナでも同様に機能します。
-
GTMコンテナIDを取得する
GTMコンテナID(形式は
GTM-XXXXXXX)を入手してください。Sojernなどのパートナーからの場合は、ピクセルやタグIDではなくGTMコンテナIDを特に依頼してください。 -
Winkポータルに入力する
app.wink.travelにログインし、アカウントを選択してカスタマイズタブに移動します。GTM欄にGTMコンテナIDを貼り付けて保存してください。これで連携が有効になります。
-
(任意)サーバーサイド購入のためにGA4の測定IDとAPIシークレットを追加する
GTMコンテナはゲストのブラウザ上で動作するため、支払いリダイレクト中にタブを閉じると予約完了が検知されない場合があります。コンテナがGA4プロパティを読み込んでいて、予約完了を確実に記録したい場合は、GTM欄にGA4の測定IDとMeasurement Protocol APIシークレットも入力してください。WinkはGA4アナリティクス連携ガイドに記載の通り、
purchaseイベントをサーバーサイドで送信します。ブラウザ内トラッキングのみでよければ空欄のままで構いません。 -
提供元に連携完了を確認する
Sojernなどのパートナーからのコンテナの場合は、アカウントマネージャーに連携が有効になったことを伝えてください。彼らは
wink.travel上でタグが正しく発火し、データがアカウントに流れていることを確認できます。
Wink側で行うこと
Section titled “Wink側で行うこと”透明性のために、この連携を実現するためにWinkが設定している内容を説明します。
- WinkポータルのカスタマイズタブにGTMコンテナID入力欄を用意しています。入力されたIDは形式(
GTM-XXXXXXX)を検証し、安全に物件に紐づけて保存します。 - Wink上で物件が有効なすべてのページに、あなたのコンテナを直接ページに注入します。Wink自身の
window.dataLayerを共有し、Winkのコンテナと並行して読み込まれます。追加設定は不要で、Winkチームによる物件ごとの作業もありません。 - コンテナは非同期で読み込まれるため、ゲストのページ読み込み速度に影響しません。
- Winkのトラッキングとあなたのコンテナは並行して動作し、同じ共有
dataLayerを読み取ります。Winkが追跡するすべての予約イベントは同時にあなたのコンテナでも利用可能です。 - 物件が閲覧されていない場合(例:ゲストが別のホテルを閲覧中)はコンテナは読み込まれず、物件に関連するデータのみを受け取ります。
- GA4の測定IDとAPIシークレットを提供した場合(上記ステップ3)、予約完了の
purchaseイベントはGA4 Measurement Protocolを使ってサーバーサイドでも送信されます。これにより、ゲストが確認ページに戻らなくても売上が記録されます。
DataLayerリファレンス
Section titled “DataLayerリファレンス”Winkはゲストの旅程全体にわたりGA4互換のイベントをdataLayerにプッシュします。あなたのGTMコンテナは同じ共有dataLayerを読み取るため、設定したトリガーや変数は以下のすべてのプロパティにアクセス可能です。
各イベントは標準のGA4拡張eコマース構造に従い、トップレベルにevent文字列とecommerceオブジェクトを持ちます。イベントをプッシュする前にWinkは前回のeコマースペイロードをクリアし、古いデータが新しいトリガーに影響しないようにしています。
予約経路イベント
Section titled “予約経路イベント”ゲストが予約ファネルを進むごとに自動で発火します。GTMトリガーは以下のイベント名に合わせてカスタムイベントトリガーとして設定してください。
| ステップ | イベント | 発火タイミング |
|---|---|---|
| 1 | view_item_list | ホテルの在庫グリッドまたはリストが読み込まれたとき |
| 2 | view_item | ゲストが特定の物件ページを閲覧したとき |
| 3 | add_to_cart | ゲストが部屋をカートに追加したとき |
| 4 | begin_checkout | チェックアウト/支払いページが読み込まれたとき |
| 5 | add_payment_info | ゲストが支払い方法を選択したとき |
| 6 | login | ゲストがSSOで認証したとき |
| 7 | purchase | 予約が確定したとき |
| 8 | refund | 予約がキャンセルされたとき |
view_item_list
Section titled “view_item_list”ホテルの在庫グリッドまたはリストが表示されたときに発火。
{ "event": "view_item_list", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_item
Section titled “view_item”ゲストが特定の物件を閲覧したときに発火。
{ "event": "view_item", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}add_to_cart
Section titled “add_to_cart”ゲストが部屋をカートに追加したときに発火。
{ "event": "add_to_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}begin_checkout
Section titled “begin_checkout”チェックアウト/支払いページが読み込まれたときに発火。
{ "event": "begin_checkout", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "items": [ ] }}couponは割引コードが適用された場合のみ含まれます。
add_payment_info
Section titled “add_payment_info”ゲストが支払い方法を選択または確定したときに発火。
{ "event": "add_payment_info", "ecommerce": { "currency": "USD", "value": 299.00, "coupon": "SUMMER10", "payment_type": "STRIPE", "items": [ ] }}payment_typeは支払い取得者のタイプから設定されます。couponは割引コード適用時のみ含まれます。
ゲストがシングルサインオンで認証したときに発火。
{ "event": "login", "ecommerce": { "method": "IAM" }}purchase
Section titled “purchase”予約が確定したときに発火。
{ "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は予約契約の一意識別子です。coupon、shipping、taxは該当時のみ含まれます。
refund
Section titled “refund”予約がキャンセルされたときに発火。
{ "event": "refund", "ecommerce": { "currency": "USD", "transaction_id": "bc-a1b2c3d4", "value": 299.00, "coupon": "SUMMER10", "shipping": 0.00, "tax": 0.00, "items": [ ] }}transaction_idは同一予約のpurchaseイベントと一致します。coupon、shipping、taxは該当時のみ含まれます。
アイテムプロパティ
Section titled “アイテムプロパティ”items配列を含むすべてのイベントは同じアイテムスキーマを共有します。すべてのプロパティは任意ですが、必須のものは明記しています。
標準GA4フィールド
Section titled “標準GA4フィールド”これらはGA4にネイティブ対応しており、追加設定なしで標準のeコマースレポートに表示されます。
| プロパティ | 型 | 必須 | 説明 |
|---|---|---|---|
item_id | string | はい | 部屋または商品の一意識別子 |
item_name | string | — | 部屋または商品の名称 |
affiliation | string | — | アフィリエイトまたは販売者名 |
coupon | string | — | アイテムに適用されたクーポンコード |
currency | string | — | ISO 4217通貨コード(例:USD) |
creative_name | string | — | プロモーションで使用されたクリエイティブ名 |
creative_slot | string | — | プロモーションクリエイティブのスロット位置 |
discount | number | — | 適用された割引額 |
index | number | — | リスト内の位置(1始まり) |
item_brand | string | — | ホテルまたはブランド名 |
item_category | string | — | 商品タイプ(例:GUEST_ROOM、ACTIVITY、ATTRACTION、MEETING_ROOM、RESTAURANT、SPA) |
item_list_id | string | — | このアイテムが属するリストの識別子 |
item_list_name | string | — | リストの表示名 |
location_id | string | — | 物件の地理座標 |
price | number | — | 単価 |
promotion_id | string | — | プロモーションの識別子 |
promotion_name | string | — | プロモーションの表示名 |
quantity | number | — | 数量(デフォルトは1) |
カスタムアイテムスコープパラメータ
Section titled “カスタムアイテムスコープパラメータ”これらはWink固有の予約コンテキストを含みます。GA4では自動的にレポートに表示されないため、探索や標準レポートで使うにはGA4プロパティでアイテムスコープのカスタムディメンションとして登録が必要です。設定方法は以下のGA4のカスタムディメンションを参照してください。
| プロパティ | 型 | 説明 |
|---|---|---|
property_id | string | Wink物件識別子 |
property_name | string | 物件表示名 |
property_brand | string | 物件が属するブランド |
property_chain | string | 物件が属するチェーン |
property_url_name | string | 物件のURL用スラッグ |
city_name | string | 物件所在地の都市名 |
country_code | string | ISO 3166-1 alpha-2国コード |
start_date | string | チェックイン日(YYYY-MM-DD形式) |
end_date | string | チェックアウト日(YYYY-MM-DD形式) |
num_adults | number | 予約の大人人数 |
num_children | number | 予約の子供人数 |
cancellation_policy | string | 以下のいずれか:Refundable、Non-Refundable、Refundable-With-Restrictions、Non-Refundable-With-Restrictions |
rate_plan_id | string | レートプラン識別子 |
room_rate_id | string | 特定の部屋レート識別子 |
room_rate_name | string | 部屋レートの表示名 |
num_perks | number | レートに含まれる特典数 |
room_location | string | 部屋の位置説明(例:Overwater、Garden) |
room_view | string | 部屋の眺望説明(例:Ocean、City) |
room_classification | string | 部屋の分類またはランク(例:Suite、Standard) |
bed_type | string | 部屋のベッド構成(例:King、Twin) |
GA4のカスタムディメンション
Section titled “GA4のカスタムディメンション”GA4はカスタムアイテムパラメータを、明示的にアイテムスコープのカスタムディメンションとして登録しない限りレポートに反映しません。すべての20項目を登録する必要はなく、レポートで使いたいものだけ登録してください。
-
カスタム定義を開く
GA4で、左下の歯車アイコンの管理 → 対象プロパティを選択 → データ表示 → カスタム定義に進みます。
-
新しいカスタムディメンションを作成
カスタムディメンションを作成をクリックします。
-
ディメンションの詳細を入力
- ディメンション名 — GA4レポートに表示される人間向けラベル(下表参照)
- スコープ — アイテムを選択
- イベントパラメータ — dataLayerにある正確なパラメータ名(下表参照)
- 説明 — 任意ですが推奨
-
保存して繰り返す
保存をクリックし、追跡したいパラメータごとに繰り返します。
カスタムディメンション作成時の参照用テーブルです。イベントパラメータは大文字小文字を区別するため正確に入力してください。
| ディメンション名 | イベントパラメータ | 型 |
|---|---|---|
| 物件ID | property_id | テキスト |
| 物件名 | property_name | テキスト |
| 物件ブランド | property_brand | テキスト |
| 物件チェーン | property_chain | テキスト |
| 物件URL名 | property_url_name | テキスト |
| 都市名 | city_name | テキスト |
| 国コード | country_code | テキスト |
| チェックイン日 | start_date | テキスト |
| チェックアウト日 | end_date | テキスト |
| 大人の人数 | num_adults | 数値 |
| 子供の人数 | num_children | 数値 |
| キャンセルポリシー | cancellation_policy | テキスト |
| レートプランID | rate_plan_id | テキスト |
| 部屋レートID | room_rate_id | テキスト |
| 部屋レート名 | room_rate_name | テキスト |
| 特典数 | num_perks | 数値 |
| 部屋の位置 | room_location | テキスト |
| 部屋の眺望 | room_view | テキスト |
| 部屋の分類 | room_classification | テキスト |
| ベッドタイプ | bed_type | テキスト |
その他利用可能なイベント
Section titled “その他利用可能なイベント”以下のイベントはWinkのdataLayerに存在しますが、標準の予約ファネルには含まれません。プラットフォーム上の他の操作で発火する可能性があります。
add_to_wishlist
Section titled “add_to_wishlist”{ "event": "add_to_wishlist", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}remove_from_cart
Section titled “remove_from_cart”{ "event": "remove_from_cart", "ecommerce": { "currency": "USD", "value": 299.00, "items": [ ] }}select_item
Section titled “select_item”{ "event": "select_item", "ecommerce": { "item_list_id": "featured_hotels", "item_list_name": "Featured Hotels", "items": [ ] }}view_cart
Section titled “view_cart”{ "event": "view_cart"}このイベントにはecommerceペイロードは含まれません。
view_promotion
Section titled “view_promotion”{ "event": "view_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}select_promotion
Section titled “select_promotion”{ "event": "select_promotion", "ecommerce": { "creative_name": "Summer Banner", "creative_slot": "hero", "promotion_id": "promo_001", "promotion_name": "Summer Sale", "items": [ ] }}search
Section titled “search”{ "event": "search", "ecommerce": { "search_term": "beachfront resort" }}select_content
Section titled “select_content”{ "event": "select_content", "ecommerce": { "content_type": "hotel", "content_id": "prop_12345" }}{ "event": "share", "ecommerce": { "method": "copy_link", "content_type": "hotel", "item_id": "prop_12345" }}sign_up
Section titled “sign_up”{ "event": "sign_up", "ecommerce": { "method": "email" }}generate_lead
Section titled “generate_lead”{ "event": "generate_lead", "ecommerce": { "currency": "USD", "value": 0.00 }}join_group
Section titled “join_group”{ "event": "join_group", "ecommerce": { "group_id": "group_abc" }}earn_virtual_currency
Section titled “earn_virtual_currency”{ "event": "earn_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 100 }}spend_virtual_currency
Section titled “spend_virtual_currency”{ "event": "spend_virtual_currency", "ecommerce": { "virtual_currency_name": "WinkPoints", "value": 50, "item_name": "Room Upgrade" }}level_start
Section titled “level_start”{ "event": "level_start", "ecommerce": { "level_name": "Gold" }}level_end
Section titled “level_end”{ "event": "level_end", "ecommerce": { "level_name": "Gold", "success": true }}level_up
Section titled “level_up”{ "event": "level_up", "ecommerce": { "level": 2, "character": "traveler" }}post_score
Section titled “post_score”{ "event": "post_score", "ecommerce": { "score": 980, "level": 2, "character": "traveler" }}unlock_achievement
Section titled “unlock_achievement”{ "event": "unlock_achievement", "ecommerce": { "achievement_id": "first_booking" }}tutorial_begin
Section titled “tutorial_begin”{ "event": "tutorial_begin", "ecommerce": {}}tutorial_complete
Section titled “tutorial_complete”{ "event": "tutorial_complete", "ecommerce": {}}virtualPageView
Section titled “virtualPageView”これはWink独自のカスタムイベントで、標準のGA4イベントセットには含まれません。ページ遷移ごとにプッシュされ、デバイスやセッションのコンテキストを含みます。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"}| プロパティ | 説明 |
|---|---|
device | 検出されたデバイスタイプ — Desktop、Android、iPhone、iPadなど |
deviceAgent | 生のユーザーエージェント文字列 |
os | 検出されたOS — Windows、MacOS、Linux、UNIX |
path | 現在のページパス |
title | 現在のページタイトル |
userId | 認証済みユーザー識別子(未ログイン時は省略) |
startDate | 現在の検索セッションのチェックイン日 |
endDate | 現在の検索セッションのチェックアウト日 |
guests | 現在の検索セッションのゲスト人数 |
rooms | 現在の検索セッションの部屋数 |
