HubSpot
كيف تتتبع إرسال نماذج HubSpot في GA4
تُحمَّل نماذج HubSpot داخل iframe لا يستطيع GA4 رؤية ما بداخله. إليك الطريقة المبنية على رسالة الاستدعاء (callback) لإطلاق حدث GA4 حقيقي عند إرسال النموذج.

أبرز النقاط
- الـ iframe هو سبب الحاجة إلى إعداد خاص أصلاً: لا يستطيع أي مُشغِّل نقر في GA4 على الصفحة الأم أن يرى عملية إرسال تحدث داخل iframe نموذج HubSpot.
- يرسل HubSpot رسالة إلى النافذة الأم عند الإرسال، تحمل event.data.type بالقيمة hsFormCallback وevent.data.eventName بالقيمة onFormSubmitted؛ وهذه الرسالة هي ما يستمع إليه Google Tag Manager.
- تعمل هذه الطريقة مع التضمين القياسي. أما تحويل النموذج إلى HTML خام لتفادي الـ iframe فيتطلب محرر النماذج القديم واشتراك Marketing Hub أو Content Hub بمستوى Professional أو Enterprise، فهو غير متاح لكل الحسابات، وطريقة الاستدعاء لا تحتاج إليه.
- لا يرتبط الإرسال بجلسة GA4 الخاصة به إلا إذا أُضيف إلى النموذج حقل مخفي يحمل معرّف عميل GA4 (client ID)، ويُكتب لحظة عرض النموذج قبل أن يرسله الزائر؛ وهو لا يسري بأثر رجعي، فالإرسالات السابقة لوجود الحقل لا تحمل أي معرّف.
- لم يعد GA4 يسمي التحويل هدفاً (Goal). منذ مارس 2024 صار اسم هذا المفهوم الحدث الرئيسي (key event) في شاشات الإدارة والتقارير كلها في GA4.
ربط Google Analytics 4 بـ HubSpot يمنحك مشاهدات الصفحات ومصادر الزيارات. لكنه لا يمنحك الإجراء الذي يهم أكثر من غيره عادة: زائر يملأ نموذجاً. يتناول هذا الدليل هذه الفجوة تحديداً، وسبب وجودها، وكيف تسدّها باستخدام Google Tag Manager.
لماذا يحتاج هذا إلى إعداد مستقل
يُعرض تضمين نموذج HubSpot القياسي داخل iframe. والطريقة المعتادة في GA4 لالتقاط التفاعل، أي مُشغِّل نقر يراقب الصفحة، لا ترى شيئاً مما يحدث داخل هذا الـ iframe، ولهذا لا يتحول إرسال النموذج إلى حدث في GA4 من تلقاء نفسه، مهما كان التكامل الأساسي مُعدّاً بشكل صحيح.
والحل الذي يقدمه HubSpot نفسه رسالة لا حدث في DOM. فعند الإرسال يرسل رسالة إلى النافذة الأم: event.data.type بالقيمة hsFormCallback، مع event.data.eventName بالقيمة onFormSubmitted. هذه الرسالة مرئية للصفحة الأم، وهي نقطة الارتكاز التي يقوم عليها بقية هذا الإعداد.
وهناك طريق تقترحه بعض الأدلة، هو تحويل النموذج إلى HTML خام حتى يتوقف عن العرض داخل iframe أصلاً، لكنه مقيد مرتين: لا يعمل إلا مع نموذج بُني في محرر النماذج القديم في HubSpot، لأن المحرر الافتراضي الحالي لا يتضمن خيار HTML الخام، ويتطلب عرضه بهذه الطريقة فوق ذلك اشتراك Marketing Hub أو Content Hub بمستوى Professional أو Enterprise. وحساب Starter لا يملك أي صيغة من هذا الطريق. أما طريقة الاستدعاء أدناه فتعمل مع التضمين القياسي أياً كانت فئة الاشتراك، ولهذا هي التي تُبنى أولاً.
كيف تتتبع إرسال النماذج في GA4
ستحتاج إلى صلاحية تعديل في Google Tag Manager، وإلى خاصية GA4 مُعدّة مسبقاً لنطاقك.
الخطوة 1: الاستماع إلى رسالة الاستدعاء من HubSpot
في Google Tag Manager، أنشئ وسماً جديداً من نوع Custom HTML يضيف مستمعاً لحدث message في المتصفح، ويتحقق من event.data.type === 'hsFormCallback' وevent.data.eventName === 'onFormSubmitted'، ويدفع حدثاً إلى dataLayer عند التطابق، مثل dataLayer.push({event: 'hubspot_form_submit'}). واضبط الوسم ليعمل في كل الصفحات التي قد يظهر فيها نموذج HubSpot.
الخطوة 2: إنشاء مُشغِّل من نوع Custom Event
ضمن Triggers، أنشئ مُشغِّلاً جديداً من نوع Custom Event، واجعل اسم الحدث مطابقاً لما دفعته في الخطوة 1 (hubspot_form_submit).
الخطوة 3: إطلاق وسم حدث GA4
أنشئ وسماً من نوع Google Analytics: GA4 Event يشير إلى وسم إعداد GA4 لديك، باسم حدث مثل hubspot_form_submission. واضبطه ليعمل على مُشغِّل Custom Event من الخطوة 2.
الخطوة 4: اجعله حدثاً رئيسياً في GA4
انشر الحاوية، ثم أرسل نموذجاً تجريبياً للتأكد من أن الحدث يعمل (DebugView أو تقرير الوقت الفعلي في GA4 أسرع وسيلة للتحقق). بعد التأكد، انتقل في GA4 إلى Admin > Events، وابحث عن الحدث، واجعله حدثاً رئيسياً (key event). وانتبه إلى المصطلح: أوقف GA4 استخدام كلمة "Goal" (هدف) لهذا المفهوم في مارس 2024، فإن كان دليل أو زميل ما زال يقول Goal فهو يقصد ما يسميه GA4 الآن الحدث الرئيسي. وتمييزه بهذه الصفة يتيح استخدام الإرسال تحويلاً في التقارير وأساساً لبناء جمهور.
ملاحظة عملية قبل أن تنتقل: سمِّ حدث dataLayer وحدث GA4 باسم يدل تحديداً على وظيفة النموذج الفعلية، بدلاً من اسم عام مثل form_submit يتكرر في كل نماذج الموقع. اسم الحدث المشترك يجعل كل النماذج متطابقة في تقارير GA4، وهذا يُفرغ الإعداد من غرضه أصلاً. وإن كان الموقع يضم عدة نماذج، فإما أن تطلق حدثاً مختلفاً لكل نموذج، أو أن تدفع مع الحدث معاملاً يحمل اسم النموذج ليمكن الفصل بينها لاحقاً.
اربط الإرسال بجلسته
إرسال النموذج وحده يخبرك أن نموذجاً قد مُلئ، لا من ملأه ولا جلسة GA4 التي جاء عبرها. ملف تعريف الارتباط الخاص بالزائر في HubSpot ومعرّف العميل في GA4 معرّفان منفصلان، ولا شيء يربط بينهما تلقائياً. الحل حقل مخفي في النموذج يحمل معرّف عميل GA4، يُكتب لحظة عرض النموذج (عبر استدعاء onFormReady في HubSpot، قبل أن يفعل الزائر أي شيء) لا لحظة الإرسال. وأمران يجعلان هذا الإعداد جديراً بالتبكير: فهو لا يسري بأثر رجعي، فالإرسال الذي سبق وجود الحقل لا يحمل معرّف عميل ولا توجد طريقة موثقة لاستعادته؛ وهو يعتمد على وصول ملف تعريف الارتباط الخاص بالتتبع إلى HubSpot فعلاً، وهذا لن يحدث إن كان النموذج يُرسل عبر وسيط من جهة الخادم (server-side proxy) يحذفه.
اقرأ النتيجة بأمانة
بعد تفعيل ذلك، توقع أن تتضمن الأرقام فجوة في الموافقة لا فجوة في التتبع وحدها. الزائر الذي يرسل نموذجاً دون أن يقبل ملفات تعريف الارتباط، سواء رفض الشريط أو لم ينقر Accept أصلاً، يُسجَّل زيارة مباشرة بدلاً من نسبته إلى القناة التي جاءت به فعلاً. وإن لم يُحصر الشريط في دول محددة، فإنه يظهر افتراضياً لكل الزوار، ولهذا يظهر هذا الأثر في البيانات الإقليمية أكثر مما يظهر في موقع بُني واختُبر لسوق واحدة.
وهنا أيضاً تكمن الفائدة لفريق يدير المبيعات والتسويق وخدمة العملاء على مسار واحد: حدث نموذج منسوب فعلاً، ومرتبط فعلاً بجلسة GA4، ويمكن تمييزه فعلاً عن إرسال لم يحصل HubSpot على موافقة لتتبعه، هو الفرق بين تقارير عمليات الإيرادات (RevOps) تثق بها الإدارة، وتقارير تُنقص بصمت عدد كل زائر تجاهل شريط ملفات تعريف الارتباط.
وإن كان فريقك يُعدّ ذلك ضمن إعادة بناء أوسع للتقارير لا وسماً بعد وسم، فهذا عمل من صميم عمليات الإيرادات، ويستحق أن تُحدَّد سلسلة الإسناد كاملة بدلاً من ترقيعها نموذجاً بعد نموذج.
المصادر
الأسئلة الشائعة
لماذا لا يظهر إرسال نموذج HubSpot في GA4 تلقائياً؟
بسبب طريقة عرض النموذج. يُحمَّل تضمين نموذج HubSpot القياسي داخل iframe، وأي حدث نقر أو إرسال يقع داخل هذا الـ iframe غير مرئي للمُشغِّل المُعدّ على الصفحة الأم، وهي الطريقة التي يكتشف بها GA4 وGoogle Tag Manager عادة هذا النوع من التفاعل. ويتجاوز HubSpot مشكلة الـ iframe الخاص به بإرسال رسالة إلى النافذة الأم عند إرسال النموذج، وهذه الرسالة هي ما يجب أن يستمع إليه إعداد مدير العلامات بدلاً من ذلك.
ما رسالة hsFormCallback ولماذا تهم في تتبع GA4؟
هي الإشارة التي يرسلها HubSpot إلى الصفحة الأم عند وقوع حدث في النموذج. عند الإرسال، تحمل الرسالة event.data.type بالقيمة hsFormCallback وevent.data.eventName بالقيمة onFormSubmitted. ووسم Custom HTML في Google Tag Manager يستمع إلى هذه التركيبة بعينها ثم يدفع حدثاً إلى dataLayer هو ما يجعل الإرسال مرئياً لمُشغِّل Custom Event، ومنه إلى وسم حدث GA4.
هل أستطيع ببساطة تحويل النموذج إلى HTML خام لتجنب مشكلة الـ iframe؟
في بعض الحسابات فقط، وليس هو الطريق الأسهل. يتطلب التحويل إلى HTML خام أن يكون النموذج قد بُني في محرر النماذج القديم في HubSpot، لأن المحرر الافتراضي الحالي لا يستطيع ضبط النموذج على HTML خام أصلاً، كما يتطلب عرضه بهذه الطريقة اشتراك Marketing Hub أو Content Hub بمستوى Professional أو Enterprise. وحساب Starter لا يملك أي صيغة من هذا الحل على أي نموذج. أما الطريقة المبنية على الاستدعاء فتعمل مع التضمين القياسي أياً كانت فئة الاشتراك، ولهذا هي الأجدر بالإعداد أولاً.
هل يخبرني تتبع إرسال النماذج في GA4 بجهة الاتصال في HubSpot التي أرسلت النموذج؟
ليس مباشرة ولا تلقائياً. ملف تعريف الارتباط الخاص بالزائر في HubSpot ومعرّف العميل في GA4 معرّفان مختلفان. ولربط الإرسال بجلسة GA4 الخاصة به، يجب إضافة حقل مخفي في النموذج يحمل معرّف عميل GA4 وتعبئته لحظة عرض النموذج، قبل أن يرسله الزائر. وهو لا يسري بأثر رجعي: الإرسال الذي سبق وجود الحقل لا يرتبط به أي معرّف، ولا توجد طريقة موثقة لاستكماله، لذا يستحق أن يُضاف منذ اليوم الأول لا بعد وقوع الأمر.
لماذا يُظهر HubSpot زيارات مباشرة أكثر مما أتوقع بعد تفعيل تتبع النماذج؟
الأرجح أن هذا أثر للموافقة على ملفات تعريف الارتباط لا خلل في التتبع. فحين يتحول زائر عبر نموذج دون أن يقبل ملفات تعريف الارتباط، سواء رفضها صراحة أو لم ينقر Accept أصلاً، يسجّل HubSpot جهة الاتصال الناتجة على أنها زيارة مباشرة بدلاً من نسبتها إلى القناة التي جاءت بها. وإن لم يُحصر شريط الموافقة في دول محددة، فإنه يظهر لكل الزوار افتراضياً، ولهذا يظهر هذا الأثر في الزيارات الإقليمية أكثر مما تتوقعه الفرق.
عمليات الإيرادات
هل تعمل المبيعات والتسويق وخدمة العملاء على خط مبيعات واحد فعلاً؟
حين يدير كل فريق عمليته الخاصة، تتوقف تقارير الإيرادات عن مطابقة الواقع. نوحّد مراحل دورة حياة العميل وآليات التسليم والإسناد عبر منصات HubSpot لترى الإدارة خط مبيعات واحداً دقيقاً، لا ثلاثة خطوط متعارضة.
مقالات ذات صلة

كيف تختار وكالة HubSpot في دبي: 10 أسئلة والإجابات التي يجب أن تسمعها
عشرة أسئلة تطرحها على أي وكالة HubSpot في دبي، وكيف تبدو الإجابة الجيدة حين يتعلق الأمر بالتنفيذ العربي وموقع استضافة البيانات وعمليات الاستيراد ومراجعة الامتثال.

