تخطَّ إلى المحتوى

تكامل تحليلات GTM

يمكنك ربط أي حاوية Google Tag Manager (GTM) بـ Wink عن طريق إدخال معرف حاوية GTM الخاص بها في بوابة Wink. بمجرد الربط، يتم تحميل الحاوية تلقائيًا لممتلكاتك وتقرأ أحداث الحجز الخاصة بـ Wink مباشرة — مما يغطي رحلة الضيف الكاملة من البحث حتى إتمام الحجز. حالة استخدام شائعة هي حاوية Sojern لإعادة الاستهداف والإعلانات، لكن أي حاوية GTM تعمل بنفس الطريقة.


  1. احصل على معرف حاوية GTM الخاص بك

    احصل على معرف حاوية GTM (بصيغة GTM-XXXXXXX). إذا كانت من شريك مثل Sojern، اطلب معرف حاوية GTM تحديدًا — فهو يختلف عن معرف البكسل أو الوسم.

  2. أدخله في بوابة Wink

    سجّل الدخول إلى app.wink.travel، اختر حسابك، واذهب إلى تبويب التخصيصات. الصق معرف حاوية GTM في حقل GTM واحفظ. أصبح التكامل الآن نشطًا.

  3. (اختياري) أضف معرف قياس GA4 + سر API للشراء من جانب الخادم

    تعمل حاويات GTM بالكامل في متصفح الضيف، لذا قد يُفقد تسجيل الحجز المكتمل إذا أغلق الضيف التبويب أثناء إعادة التوجيه للدفع. إذا كانت حاويتك تحمل خاصية GA4 وتريد تسجيل الحجوزات المكتملة بشكل موثوق، أدخل أيضًا معرف القياس وسر بروتوكول القياس API الخاص بـ GA4 في قسم GTM. سترسل Wink بعد ذلك حدث purchase لتلك الخاصية من جانب الخادم، تمامًا كما هو موضح في دليل تكامل تحليلات GA4. اترك هذه الحقول فارغة إذا كنت تحتاج فقط لتتبع داخل المتصفح.

  4. أكد مع مزود الخدمة الخاص بك

    إذا كانت الحاوية من شريك مثل Sojern، أخبر مدير حسابك أن التكامل نشط. يمكنهم التحقق من جانبهم أن الوسوم تعمل بشكل صحيح على wink.travel لممتلكاتك وأن البيانات تتدفق إلى حسابك.


ما الذي تفعله Wink من جانبنا

Section titled “ما الذي تفعله Wink من جانبنا”

لأجل الشفافية، إليك ما تقوم Wink بتكوينه لجعل هذا التكامل يعمل:

  • يوجد حقل معرف حاوية GTM في تبويب التخصيصات في بوابة Wink الخاصة بك. عند إدخال معرف الحاوية، تتحقق Wink من الصيغة (GTM-XXXXXXX) وتخزنه بأمان مقابل ممتلكاتك.
  • في كل صفحة تكون ممتلكاتك نشطة فيها على Wink، تُحقن الحاوية مباشرة في الصفحة — مشاركةً window.dataLayer الخاص بـ Wink — بحيث يتم تحميلها جنبًا إلى جنب مع حاوية Wink الخاصة بدون اعتماد على أي إعداد إضافي. يحدث هذا تلقائيًا، دون عمل خاص لكل ممتلك.
  • يتم تحميل الحاوية بشكل غير متزامن، فلا تؤثر على أداء تحميل الصفحة لضيوفك.
  • تعمل تتبعات Wink وحاويتك بالتوازي، وتقرأ من نفس dataLayer المشترك. كل حدث حجز تتبعه Wink متاح لحاويتك في نفس الوقت.
  • عندما لا تُعرض ممتلكاتك — مثلًا عندما يتصفح الضيف فندقًا مختلفًا على Wink — لا تُحمّل حاويتك، لذا تستقبل فقط البيانات المتعلقة بممتلكاتك.
  • إذا زودت معرف قياس GA4 + سر API (الخطوة 3 أعلاه)، يُرسل حدث purchase للحجوزات المكتملة أيضًا من جانب الخادم عبر بروتوكول قياس GA4، بحيث يُسجل البيع حتى لو لم يعد الضيف إلى صفحة التأكيد.

تدفع Wink أحداثًا متوافقة مع GA4 إلى dataLayer طوال رحلة الضيف. تقرأ حاوية GTM الخاصة بك من نفس dataLayer المشترك، لذا أي مشغل أو متغير تقوم بتكوينه يمكنه الوصول إلى كل الخصائص الموضحة أدناه.

كل حدث يتبع هيكل التجارة الإلكترونية المحسنة القياسي لـ GA4: سلسلة event على المستوى الأعلى وكائن ecommerce. قبل كل دفع، تمسح Wink حمولة التجارة الإلكترونية السابقة لمنع تسرب بيانات قديمة إلى المشغلات الجديدة.


تُطلق هذه الأحداث تلقائيًا أثناء تنقل الضيف عبر مسار الحجز. قم بتكوين مشغلات GTM الخاصة بك كمشغلات حدث مخصص تطابق أسماء الأحداث أدناه.

الخطوةالحدثمتى يُطلق
1view_item_listتحميل شبكة أو قائمة مخزون الفنادق
2view_itemعرض الضيف لصفحة ممتلك محددة
3add_to_cartإضافة الضيف لغرفة إلى عربة التسوق
4begin_checkoutتحميل صفحة الدفع / الخروج
5add_payment_infoاختيار الضيف لطريقة الدفع
6loginتوثيق الضيف عبر تسجيل دخول موحد
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 هو معرف عقد الحجز الفريد. coupon وshipping وtax موجودة فقط عند الاقتضاء.


يُطلق عند إلغاء الحجز.

{
"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 موجودة فقط عند الاقتضاء.


جميع الأحداث التي تتضمن مصفوفة items تشترك في نفس مخطط العنصر. كل خاصية اختيارية ما لم تُذكر كـ “مطلوبة”.

هذه الحقول مفهومة أصلاً من GA4 وتظهر في تقارير التجارة الإلكترونية القياسية بدون أي إعداد إضافي.

الخاصيةالنوعمطلوبالوصف
item_idنصنعممعرف فريد للغرفة أو المنتج
item_nameنصاسم الغرفة أو المنتج
affiliationنصاسم التابع أو البائع
couponنصرمز القسيمة المطبق على العنصر
currencyنصرمز العملة ISO 4217 (مثلاً USD)
creative_nameنصاسم الإبداع المستخدم في الترويج
creative_slotنصموقع الإبداع الترويجي
discountرقممبلغ الخصم المطبق
indexرقمالموقع في القائمة (مبني على 1)
item_brandنصاسم الفندق أو العلامة التجارية
item_categoryنصنوع المنتج — مثل GUEST_ROOM، ACTIVITY، ATTRACTION، MEETING_ROOM، RESTAURANT، SPA
item_list_idنصمعرف القائمة التي ينتمي إليها العنصر
item_list_nameنصاسم العرض للقائمة
location_idنصإحداثيات جغرافية للممتلك
priceرقمسعر الوحدة
promotion_idنصمعرف الترويج
promotion_nameنصاسم العرض الترويجي
quantityرقمالكمية (الافتراضي 1)

معلمات مخصصة على مستوى العنصر

Section titled “معلمات مخصصة على مستوى العنصر”

تحمل هذه المعلمات سياق الحجز الخاص بـ Wink. لا تظهر تلقائيًا في تقارير GA4 — يجب تسجيل كل منها كبُعد مخصص على مستوى العنصر في خاصية GA4 الخاصة بك قبل أن تظهر في الاستكشافات أو التقارير القياسية. راجع الأبعاد المخصصة في GA4 أدناه لتعليمات الإعداد.

الخاصيةالنوعالوصف
property_idنصمعرف ممتلك Wink
property_nameنصاسم العرض للممتلك
property_brandنصالعلامة التجارية التي ينتمي إليها الممتلك
property_chainنصالسلسلة التي ينتمي إليها الممتلك
property_url_nameنصاسم URL صديق للممتلك
city_nameنصالمدينة التي يقع فيها الممتلك
country_codeنصرمز البلد ISO 3166-1 alpha-2
start_dateنصتاريخ الوصول بصيغة YYYY-MM-DD
end_dateنصتاريخ المغادرة بصيغة YYYY-MM-DD
num_adultsرقمعدد البالغين في الحجز
num_childrenرقمعدد الأطفال في الحجز
cancellation_policyنصأحد: Refundable، Non-Refundable، Refundable-With-Restrictions، Non-Refundable-With-Restrictions
rate_plan_idنصمعرف خطة السعر
room_rate_idنصمعرف سعر الغرفة المحدد
room_rate_nameنصاسم عرض سعر الغرفة
num_perksرقمعدد المزايا المشمولة مع السعر
room_locationنصوصف موقع الغرفة (مثلاً Overwater، Garden)
room_viewنصوصف منظر الغرفة (مثلاً Ocean، City)
room_classificationنصتصنيف الغرفة أو الدرجة (مثلاً Suite، Standard)
bed_typeنصتكوين السرير للغرفة (مثلاً King، Twin)

يتجاهل GA4 معلمات العنصر المخصصة في التقارير حتى تقوم بتسجيلها صراحة كبُعد مخصص على مستوى العنصر. تحتاج فقط لتسجيل المعلمات التي تنوي استخدامها في التقارير — لا تحتاج لتسجيل جميع العشرين.

  1. افتح التعريفات المخصصة

    في GA4، اذهب إلى الإدارة (أيقونة الترس أسفل اليسار) → اختر خاصيتك → عرض البياناتالتعريفات المخصصة.

  2. إنشاء بُعد مخصص جديد

    انقر على إنشاء أبعاد مخصصة.

  3. املأ تفاصيل البُعد

    • اسم البُعد — التسمية المقروءة التي تظهر في تقارير GA4 (انظر الجدول أدناه)
    • النطاق — اختر عنصر
    • معامل الحدث — اسم المعامل بالضبط كما يظهر في dataLayer (انظر الجدول أدناه)
    • الوصف — اختياري لكن يُنصح به
  4. احفظ وكرر

    انقر حفظ، ثم كرر لكل معامل تريد تتبعه.

استخدم الجدول التالي كمرجع عند إنشاء الأبعاد المخصصة. يجب أن يطابق معامل الحدث الاسم تمامًا — GA4 حساس لحالة الأحرف.

اسم البُعدمعامل الحدثالنوع
معرف الممتلك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نص
معرف خطة السعرrate_plan_idنص
معرف سعر الغرفةroom_rate_idنص
اسم سعر الغرفةroom_rate_nameنص
عدد المزاياnum_perksرقم
موقع الغرفةroom_locationنص
منظر الغرفةroom_viewنص
تصنيف الغرفةroom_classificationنص
نوع السريرbed_typeنص

الأحداث التالية متاحة في dataLayer الخاص بـ Wink لكنها ليست جزءًا من مسار الحجز القياسي. قد تُطلق بواسطة تفاعلات أخرى على المنصة.

{
"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نوع الجهاز المكتشف — Desktop، Android، iPhone، iPad، أو ما شابه
deviceAgentسلسلة وكيل المستخدم الخام
osنظام التشغيل المكتشف — Windows، MacOS، Linux، UNIX
pathمسار الصفحة الحالي
titleعنوان الصفحة الحالي
userIdمعرف المستخدم المصادق عليه (يُحذف عند عدم تسجيل الدخول)
startDateتاريخ الوصول من جلسة البحث الحالية
endDateتاريخ المغادرة من جلسة البحث الحالية
guestsعدد الضيوف من جلسة البحث الحالية
roomsعدد الغرف من جلسة البحث الحالية