コンテンツにスキップ

GTMアナリティクス連携

WinkポータルにGTMコンテナIDを入力することで、任意のGoogle Tag Manager(GTM)コンテナをWinkに接続できます。接続後は、あなたの施設に対してコンテナが自動的に読み込まれ、Winkの予約イベントを直接読み取ります。これにより、検索から予約完了までのゲストの全旅程をカバーします。一般的な利用例はリターゲティングや広告用のSojernコンテナですが、どのGTMコンテナでも同様に機能します。


  1. GTMコンテナIDを取得する

    GTMコンテナID(形式はGTM-XXXXXXX)を入手してください。Sojernなどのパートナーからの場合は、ピクセルやタグIDではなくGTMコンテナIDを特に依頼してください。

  2. Winkポータルに入力する

    app.wink.travelにログインし、アカウントを選択してカスタマイズ設定を開きます。Analytics & integrationsセクションのGTM Container ID欄にGTMコンテナIDを貼り付けて保存します。これで連携が有効になります。

  3. 提供元に連携を確認してもらう

    Sojernなどのパートナーからのコンテナの場合は、アカウントマネージャーに連携が有効になったことを伝えてください。彼らはwink.travel上でタグが正しく発火しているか、データがアカウントに流れているかを確認できます。


透明性のために、この連携を実現するためにWinkが設定している内容を説明します:

  • カスタマイズ設定のAnalytics & integrationsセクションにGTMコンテナID入力欄を用意しています。入力されたIDは形式(GTM-XXXXXXX)を検証し、施設情報に安全に保存されます。
  • 施設が有効なすべてのWinkページで、コンテナがページに直接挿入されます。Winkのwindow.dataLayerを共有し、Wink自身のコンテナと並行して読み込まれ、追加設定は不要です。これはWinkチームの個別作業なしに自動で行われます。
  • コンテナは非同期で読み込まれるため、ゲストのページ読み込み速度に影響しません。
  • Winkのトラッキングとあなたのコンテナは並行して動作し、同じ共有dataLayerを読み取ります。Winkが追跡するすべての予約イベントは同時にあなたのコンテナでも利用可能です。
  • 施設が閲覧されていない場合(例:ゲストが別のホテルを閲覧中)はコンテナは読み込まれず、施設に関連するデータのみを受け取ります。
  • 予約完了(purchase)イベントはサンクスページのブラウザ上で発火します。 GTMコンテナIDはブラックボックスのため、Winkはサーバー側からGoogleに呼び出しを行いません。代わりに、コンテナ内のGA4やコンバージョンタグがクライアント側でpurchaseを受け取ります。決済プロバイダーがブラウザをリダイレクトするため、Winkはリダイレクトで中断された分析セッションをpurchase発火前に再接続し、売上を元の訪問に正しく紐付けます。

Winkはゲストの旅程全体でGA4互換のイベントをdataLayerにプッシュします。あなたのGTMコンテナはこの共有dataLayerを読み取るため、設定したトリガーや変数は以下のすべてのプロパティにアクセス可能です。

各イベントは標準のGA4拡張Eコマース構造に従い、トップレベルにevent文字列とecommerceオブジェクトを持ちます。イベントプッシュ前にWinkは前回のecommerceペイロードをクリアし、古いデータが新しいトリガーに影響しないようにしています。


これらのイベントはゲストが予約ファネルを進む際に自動で発火します。GTMトリガーは以下のイベント名に一致するカスタムイベントトリガーとして設定してください。

ステップイベント発火タイミング
1view_item_listホテル在庫のグリッドまたはリストが読み込まれた時
2view_itemゲストが特定の施設ページを閲覧した時
3add_to_cartゲストが部屋をカートに追加した時
4begin_checkoutチェックアウト/支払いページが読み込まれた時
5add_payment_infoゲストが支払い方法を選択した時
6loginゲストがSSOで認証した時
7purchase予約が確定した時
8refund予約がキャンセルされた時

ホテル在庫のグリッドまたはリストが表示された時に発火。

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

ゲストが特定の施設を閲覧した時に発火。

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

ゲストが部屋をカートに追加した時に発火。

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

チェックアウト/支払いページが読み込まれた時に発火。

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

couponは割引コードが適用された場合のみ含まれます。


ゲストが支払い方法を選択または確定した時に発火。

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

payment_typeは支払い取得者のタイプから設定されます。couponは割引コード適用時のみ含まれます。


ゲストがシングルサインオンで認証した時に発火。

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

予約が確定した時に発火。

{
"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は予約契約の一意識別子です。couponshippingtaxは該当時のみ含まれます。


予約がキャンセルされた時に発火。

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

transaction_idは同一予約のpurchaseイベントと一致します。couponshippingtaxは該当時のみ含まれます。


items配列を含むすべてのイベントは同じアイテムスキーマを共有します。すべてのプロパティは任意ですが、必須のものは明記しています。

これらはGA4がネイティブに理解し、追加設定なしに標準Eコマースレポートに表示されます。

プロパティ必須説明
item_idstring必須部屋または商品の一意識別子
item_namestring部屋または商品の名称
affiliationstringアフィリエイトまたは販売者名
couponstringアイテムに適用されたクーポンコード
currencystringISO 4217通貨コード(例:USD
creative_namestringプロモーションで使用されたクリエイティブ名
creative_slotstringプロモーションクリエイティブのスロット位置
discountnumber適用された割引額
indexnumberリスト内の位置(1始まり)
item_brandstringホテルまたはブランド名
item_categorystring商品タイプ(例:GUEST_ROOMACTIVITYATTRACTIONMEETING_ROOMRESTAURANTSPA
item_list_idstringこのアイテムが属するリストの識別子
item_list_namestringリストの表示名
location_idstring施設の地理座標
pricenumber単価
promotion_idstringプロモーションの識別子
promotion_namestringプロモーションの表示名
quantitynumber数量(デフォルトは1

カスタムアイテムスコープパラメータ

Section titled “カスタムアイテムスコープパラメータ”

これらはWink固有の予約コンテキストを含みます。GA4はこれらを自動的にレポートに表示しないため、レポートや探索で使用するにはGA4プロパティでアイテムスコープのカスタムディメンションとして登録する必要があります。設定方法は以下のGA4のカスタムディメンションを参照してください。

プロパティ説明
property_idstringWink施設識別子
property_namestring施設表示名
property_brandstring施設が属するブランド
property_chainstring施設が属するチェーン
property_url_namestring施設のURL用スラッグ
city_namestring施設所在地の都市名
country_codestringISO 3166-1 alpha-2国コード
start_datestringチェックイン日(YYYY-MM-DD形式)
end_datestringチェックアウト日(YYYY-MM-DD形式)
num_adultsnumber予約の大人人数
num_childrennumber予約の子供人数
cancellation_policystringRefundableNon-RefundableRefundable-With-RestrictionsNon-Refundable-With-Restrictionsのいずれか
rate_plan_idstringレートプラン識別子
room_rate_idstring特定の部屋レート識別子
room_rate_namestring部屋レートの表示名
num_perksnumberレートに含まれる特典数
room_locationstring部屋の位置(例:OverwaterGarden
room_viewstring部屋の眺望(例:OceanCity
room_classificationstring部屋の分類やランク(例:SuiteStandard
bed_typestring部屋のベッド構成(例:KingTwin

GA4はカスタムアイテムパラメータを、明示的にアイテムスコープのカスタムディメンションとして登録しない限りレポートに反映しません。すべての20項目を登録する必要はなく、レポートで使いたいものだけ登録してください。

  1. カスタム定義を開く

    GA4で、左下の歯車アイコンの管理 → プロパティを選択 → データ表示カスタム定義へ進みます。

  2. 新しいカスタムディメンションを作成

    カスタムディメンションを作成をクリックします。

  3. ディメンションの詳細を入力

    • ディメンション名 — GA4レポートに表示される人間が読めるラベル(下表参照)
    • スコープアイテムを選択
    • イベントパラメータ — dataLayerに出てくる正確なパラメータ名(下表参照)
    • 説明 — 任意ですが推奨
  4. 保存して繰り返す

    保存をクリックし、追跡したいパラメータごとに繰り返します。

カスタムディメンション作成時の参照用テーブルです。イベントパラメータは大文字小文字を区別し、正確に一致させてください。

ディメンション名イベントパラメータ
施設IDproperty_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テキスト
レートプランIDrate_plan_idテキスト
部屋レートIDroom_rate_idテキスト
部屋レート名room_rate_nameテキスト
特典数num_perks数値
部屋の位置room_locationテキスト
部屋の眺望room_viewテキスト
部屋の分類room_classificationテキスト
ベッドタイプbed_typeテキスト

以下のイベントはWinkのdataLayerに存在しますが、標準の予約ファネルには含まれません。プラットフォーム上の他の操作で発火する可能性があります。

{
"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"
}

このイベントにはecommerceペイロードは含まれません。

{
"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": {}
}

これは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検出されたデバイスタイプ — DesktopAndroidiPhoneiPadなど
deviceAgent生のユーザーエージェント文字列
os検出されたOS — WindowsMacOSLinuxUNIX
path現在のページパス
title現在のページタイトル
userId認証済みユーザー識別子(未ログイン時は省略)
startDate現在の検索セッションのチェックイン日
endDate現在の検索セッションのチェックアウト日
guests現在の検索セッションのゲスト人数
rooms現在の検索セッションの部屋数