
تنشأ مخاطر التخصيص في Braze عادةً من كيفية تعامل الرسالة مع البيانات المفقودة. تتصرف القيم الفارغة والخالية بشكل مختلف، كما أن إلغاء الإرسال في Canvas ينقل المستخدم إلى الخطوة التالية بدلاً من إخراجه من المسار، ويختلف توقيت الإلغاء حسب القناة. إن تدقيق كل سمة للتحقق من حالة غيابها، ثم المعاينة كملف تعريف مطابق، يساهم في اكتشاف هذه المشكلات قبل الإرسال.
أبرز النقاط
- يغطي الفلتر الافتراضي القيم الفارغة (empty) ولكن ليس القيم الخالية (blank)، لذا تحقق من القيم الخالية أولاً.
- يعد الإلغاء مناسباً للسمات التي لا تملك خياراً بديلاً منطقياً، ولكن استخدام فرع "else" يتضمن إلغاءً سيؤدي إلى إيقاف الإرسال لكل مستخدم تفتقر بياناته إلى تلك السمة.
- تؤدي خطوة الرسالة الملغاة في Canvas إلى نقل المستخدم إلى الخطوة التالية بدلاً من إخراجه من مسار Canvas.
- يتم تنفيذ منطق الإلغاء عند وقت الإرسال لمعظم القنوات، وعند وقت التشغيل للرسائل داخل التطبيق.
- قم بالمعاينة كملف تعريف يستوفي شرط الإلغاء، وإلا فقد لا تصل رسائل الاختبار أبداً.
- نوصي بتحديد ما يعنيه غياب البيانات لكل سمة: هل يعني استخدام متغير بديل، أو قيمة افتراضية، أو إلغاء الإرسال.
ما هي مخاطر التخصيص الشائعة في Braze؟
يجب أن يجيب كل سطر مخصص على سؤال واحد: ماذا يجب أن يرى هذا المستلم إذا كانت البيانات مفقودة؟ المخاطر المذكورة أدناه هي إجابات مختلفة على هذا السؤال، تحدث عن طريق الخطأ. يسرد الجدول المخاطر التي تصفها وثائق Braze، مع السلوك الموثق والحل المناسب.
المخاطرالسلوك الموثقالإجراء التصحيحيعدم وجود قيمة افتراضية لحقل مفقوديظهر الحقل فارغاً في الرسالةإضافة فلتر افتراضيمسافة بيضاء في القيمةتظهر القيمة الافتراضية للقيم الفارغة وليس للقيم التي تحتوي على مسافاتتحقق من القيم الخالية أولاًالإلغاء في فرع elseيتوقف الإرسال لأي مستخدم يفتقر إلى تلك البياناتإضافة فحوصات صريحة للقيم الفارغة أو الخاليةتوقع أن يؤدي الإلغاء إلى إنهاء مسار Canvasينتقل المستخدم إلى الخطوة التاليةالتخطيط للخطوة التالية للمستخدمين الذين تم إلغاء رسائلهمالاختبار كملف تعريف خاطئقد لا تصل رسائل الاختبار أبداًالمعاينة كمستخدم يستوفي الشروطاستخدام فلتر داخل شرط ifلا يمكن استخدام الفلتر مباشرة هناكإسناد النتيجة إلى متغير أولاًعلامات الاقتباس المنحنية المنسوخة من محرر نصوصقد تسبب مشاكل في Liquidإعادة الكتابة باستخدام علامات اقتباس مستقيمة
لماذا تتصرف القيمة الفارغة (empty) بشكل مختلف عن القيمة الخالية (blank)؟
يبدو الفلتر الافتراضي كشبكة أمان كاملة، ولكن صفحة القيم الافتراضية في Braze تضع حداً فاصلاً. فهي توضح أن القيمة الافتراضية تظهر للقيم الفارغة، ولكن ليس للقيم الخالية. القيمة الخالية تحتوي على مسافات بيضاء ولا شيء غير ذلك.
تلك الفجوة مهمة عندما تأتي بيانات الملف الشخصي من النماذج أو عمليات الاستيراد أو من نظام خارجي. فالاسم الأول الذي يتكون من مسافة واحدة ليس فارغاً، لذا لا يتم تطبيق القيمة الافتراضية ويبقى مكان الاسم خالياً. تخبرك صفحة المنطق الشرطي بضرورة التحقق من القيم الخالية قبل المتغيرات الأخرى، لتجنب خطأ في معالجة Liquid.
اقتراحنا هو الاختبار للقيم الخالية، ثم القيم المعدومة (null)، ثم تطبيق الفلتر الافتراضي كخط دفاع أخير. عندما تستمر القيم المفقودة أو غير الصحيحة في الظهور، فقد يكون السبب في طبقة البيانات، وهو المجال الذي تغطيه CustomerIK خدمة إدارة بيانات العملاء ، بما في ذلك حل الهوية وقواعد التحقق.
متى يجب عليك إلغاء رسالة بدلاً من تعيين قيمة افتراضية؟
بعض السمات لا تملك خياراً بديلاً منطقياً. تشير صفحة وسوم Braze إلى أنه لا توجد طريقة جيدة للتعامل مع العملاء الذين لديهم أرصدة منخفضة أو معدومة باستخدام القيم الافتراضية. إن رصيد "0" في رسالة بريد إلكتروني حول المكافآت هو قيمة افتراضية مضللة، لأنها تخبر العميل بشيء غير مفيد.
بالنسبة لتلك الحالات، تقدم الوثائق خيارين: إلغاء الرسالة للعملاء الذين لديهم أرصدة منخفضة أو معدومة أو فارغة، أو إرسال رسالة مختلفة تماماً لهم. كلاهما خياران مقصودان. الخطر يكمن في الوصول إلى أحد هذين الخيارين عن طريق الخطأ، وهو ما يغطيه القسم التالي.
ما الذي يحدث عند تفعيل أمر الإلغاء (abort) في المكان الخطأ؟
تعمل وسوم الإلغاء على إيقاف إرسال الرسالة للمستخدمين الذين لا يستوفون شروطك. لن تظهر الرسالة في ملفاتهم الشخصية ولن تُحتسب ضمن عمليات التسليم أو حدود التكرار. هذه ميزة مفيدة، ولكنها تعني أيضاً أن الرسائل الملغاة لن تظهر في إحصائيات التسليم.
تحذر صفحة الإلغاء في Braze من أن استخدام فرع "else" الذي يقوم بالإلغاء عند فقدان قيمة معينة سيؤدي إلى إيقاف الإرسال لأي مستخدم يفتقر إلى تلك البيانات. النصيحة هنا هي إضافة عمليات تحقق صريحة من القيم الفارغة (nil) أو الخالية قبل استدعاء وسم الإلغاء. كما تشير الصفحة إلى أن الرسائل الملغاة تظهر في "مراقبة المراسلات" (Messaging Observability) تحت نتيجة "Liquid abort"، لذا فهذا هو المكان الأول الذي يجب عليك التحقق منه.
نسمي هذا بـ "فرع else الصامت". فبدلاً من أن يكون فرع "else" بمثابة خيار شامل "لأي شخص آخر"، يتحول إلى أداة تصفية "لكل من لديه بيانات كاملة"، وهو أمر لا يقصده أحد عند التصميم.
كيف يتصرف أمر الإلغاء (abort) داخل Canvas؟
إذا تم إلغاء خطوة رسالة داخل Canvas، فلن يخرج المستخدم من الـ Canvas، بل سيتابع إلى الخطوة التالية. توثق Braze السلوك نفسه لخطوات السياق (Context step)، حيث يؤثر الإلغاء فقط على المتغير الذي استدعى الأمر، بينما يستمر المستخدم في مساره إلى الخطوة التالية.
هذا يغير طريقة تصميمك لرحلة المستخدم. فإذا كانت الخطوة التالية ترسل رسالة مختلفة، فسيصل إليها المستخدمون الذين تم إلغاء رسالتهم السابقة، وقد يكون هذا هو المطلوب تماماً. أما إذا كانت الخطوة التالية تفترض أن الرسالة الأولى قد تم إرسالها بالفعل، فستجد أن المستخدمين أصبحوا في المكان الخطأ.
تقترح الوثائق مقارنة عدد المستخدمين الذين دخلوا الخطوة بعدد الذين تم الإرسال إليهم في نفس خطوة الرسالة عندما تكون معدلات التسليم أقل من المتوقع.
لماذا يختلف توقيت الإلغاء بين القنوات المختلفة؟
تختلف لحظة تنفيذ منطق الإلغاء باختلاف القناة. بالنسبة لرسائل الدفع (push)، والبريد الإلكتروني، والرسائل النصية (SMS)، وخطافات الويب (webhooks)، وبطاقات المحتوى (Content Cards)، يتم التقييم عند وقت الإرسال، أي عندما تعالج Braze الرسالة لتسليمها. أما بالنسبة لرسائل داخل التطبيق (in-app messages) المعتمدة على قوالب، فيتم التقييم فقط عند تفعيل الرسالة، وليس عند إرسالها لأول مرة إلى الجهاز.
تضيف صفحة الإلغاء في Braze نقطة ذات صلة: يمكن للمستخدم دخول Canvas قبل أن تكون بيانات القائمة أو البيانات اللاحقة جاهزة. إذا كان كود Liquid الخاص بك يعتمد على تلك البيانات، فقد تقوم خطوة الرسالة بتقييمها قبل توفرها. تأكد من وجود البيانات المطلوبة عند تنفيذ الخطوة.
ما هي أخطاء الصيغة التي تعطل كود Liquid قبل عرضه؟
أخطاء الصيغة بسيطة وغالباً ما يتم تجاهلها أثناء المراجعة. تذكر وثائق Braze العديد منها والتي يجدر بفريقك وضعها في قائمة مراجعة دائمة:
- كل وسم "if" يحتاج إلى "endif". بدونه ستحصل على خطأ، لأن Braze لن تتمكن من تحليل رسالتك.
- استخدم علامات الاقتباس المستقيمة. علامات الاقتباس المنحنية التي يتم نسخها من محررات النصوص قد تسبب مشاكل في كود Liquid الخاص بك.
- لا تضع "فلتر" مباشرة داخل جملة شرطية. قم بتعيين نتيجة الفلتر لمتغير أولاً.
- لا تضع كود Liquid داخل تعليقات HTML. يتم حذف هذه التعليقات قبل قراءة أي كود Liquid، لذا لن يتم عرض الوسوم الموجودة بداخلها.
- في البريد الإلكتروني، استخدم محرر HTML. المحرر الكلاسيكي قد يقرأ كود Liquid كنص عادي.
- طابق نوع البيانات. بالنسبة للمصفوفات (arrays)، يجب عليك استخدام "contains" ولا يمكنك استخدام "=="، كما أن استخدام "contains" مع مصفوفة يبحث عن تطابق تام مع عنصر كامل.
- اختر أسماء متغيرات فريدة. الأسماء المشابهة لوسوم التخصيص المدعومة، مثل "language"، قد تؤثر على منطق المراسلة الخاص بك.
علامات الاقتباس المفردة مهمة أيضاً. فالسلاسل النصية الموضوعة بين علامات اقتباس مفردة داخل وسم التعيين (assign tag) تُعامل كنصوص حرفية، لذا لا يتم ملء وسم التخصيص الموضوع بداخلها.
كيف يمكنك اختبار التخصيص قبل وصوله إلى العملاء؟
يوصي مرجع Braze Liquid باختبار جميع الرسائل التي تستخدم Liquid قبل الإرسال. توفر صفحة الإلغاء (abort page) التفاصيل العملية. إذا لم تصل رسائل الاختبار أبداً، قم بالمعاينة كمستخدم يستوفي شرط الإلغاء، ثم فعّل خيار تجاوز سمات المستلمين بسمات مستخدم المعاينة الحالي عند إجراء إرسال الاختبار.
توضح هذه التفاصيل سبباً شائعاً للإنذارات الكاذبة. فإرسال اختبار إلى ملفك الشخصي قد لا يستوفي شرط الإلغاء، فلا يصل شيء، وتبدو الرسالة وكأنها معطلة بينما هي تعمل كما كُتبت تماماً.
نوصي بمعاينة ثلاثة ملفات تعريف على الأقل لكل رسالة: ملف مكتمل، وملف تفتقر فيه السمة الرئيسية إلى بيانات، وملف يحتوي على مسافات فارغة. فالمعاينة التي تظهر المسار المثالي فقط لا تقدم دليلاً كافياً.
كيف يبدو المثال العملي؟
تخيل بائع تجزئة افتراضياً يرسل بريداً إلكترونياً حول رصيد المكافآت. بعض الملفات الشخصية لديها رصيد، وبعضها لم يكسب نقاطاً قط، وبعضها يحتوي حقل الاسم فيه على مسافة فقط. هذا المثال توضيحي ولا يستخدم أي بيانات أو أرقام خاصة بالعملاء.
تضع المسودة الأولى قيمة افتراضية للرصيد هي صفر وقيمة افتراضية للاسم الأول. يتلقى الأعضاء الجدد رسالة "رصيدك هو 0"، وتترك الأسماء التي تحتوي على مسافات فراغاً حيث يجب أن يكون الاسم، لأن عامل التصفية الافتراضي لا يلتقط القيم الفارغة. أما المسودة الثانية فتقوم بالإلغاء في فرع "else"، مما يصحح مشكلة الصفر ولكنه يوقف الإرسال لكل عضو جديد أيضاً.
تفصل المسودة الثالثة الحالات الثلاث بشكل متعمد. يحصل الأعضاء ذوو الرصيد الإيجابي على رسالة الرصيد، ويحصل الجميع على ترحيب قصير بدون رصيد، ويتحقق سطر الاسم من وجود فراغ قبل تطبيق القيمة الافتراضية.
{% if {{custom_attribute.${balance}}} > 0 %}
مرحباً {{ ${first_name} | default: 'عزيزي' }}، رصيد مكافآتك هو {{ custom_attribute.${balance} }}.
{% else %}
مرحباً {{ ${first_name} | default: 'عزيزي' }}، شكراً لكونك عضواً معنا.
{% endif %}
يتبع هذا المقتطف النمط الموثق مع أسماء سمات نائبة، ويجب أن تتعامل معه كمسودة قابلة للتعديل. لا تزال الأسماء التي تحتوي على مسافات فقط بحاجة إلى التحقق من الفراغ، لذا أضف هذا التحقق قبل الاعتماد على التحية.
كيف يرتبط هذا ببقية البرنامج؟
نادراً ما تقتصر إخفاقات التخصيص على رسالة واحدة. نفس مشكلة البيانات المفقودة تتكرر عبر أنماط وسوم Liquid،استدعاءات المحتوى المتصل (Connected Content)والتخصيص في الوقت الفعلي، حيث تعتمد الإجابة على ما يتم حله ومتى.
للتخطيط الأوسع، راجع دليل التخصيص الفائق في حملات Braze. توجد تفاصيل القنوات في المنشورات حول تخصيص إشعارات الدفعومشغلات الرسائل داخل التطبيق، وهو أمر مهم لأن توقيت الإلغاء يختلف بالنسبة لرسائل داخل التطبيق.
ما الذي توصي به CustomerIK؟
بصفتنا شريكاً في تنفيذ Braze، توصي CustomerIK بمراجعة التخصيص سمةً تلو الأخرى قبل إطلاق الحملة القادمة. بالنسبة لكل سمة، حدد ما إذا كان غيابها يجب أن يؤدي إلى إنشاء متغير للرسالة، أو قيمة افتراضية، أو إلغاء للرسالة، وقم بتدوين هذا القرار. بعد ذلك، قم بمعاينة ملف تعريف كامل، وآخر مفقود، وثالث يحتوي على مسافات بيضاء لكل رسالة.
الأسئلة الشائعة
1. هل تحمي القيمة الافتراضية من جميع السمات المفقودة؟
لا، فهي لا تحمي من ذلك. توضح وثائق Braze أن القيمة الافتراضية تظهر للقيم الفارغة ولكن ليس للقيم الخالية، والقيمة الخالية تحتوي على مسافات بيضاء ولا شيء غير ذلك.
2. هل يجب أن أستخدم خيار الإلغاء أم القيمة الافتراضية لرصيد المكافآت؟
تشير صفحة وسوم Braze إلى عدم وجود طريقة مثالية للتعامل مع الأرصدة المنخفضة أو المعدومة باستخدام القيم الافتراضية. وتوصي بإلغاء الرسالة أو إرسال رسالة مختلفة تماماً بدلاً منها.
3. هل تؤدي الرسالة الملغاة إلى إخراج المستخدم من Canvas؟
لا، لا تؤدي إلى ذلك. إذا تم إلغاء خطوة رسالة في Canvas، فلن يخرج المستخدم من Canvas وسيتابع إلى الخطوة التالية.
4. أين يمكنني رؤية عمليات الإرسال الملغاة؟
بشكل افتراضي، تظهر عملية الإرسال الملغاة في "مراقبة المراسلات" (Messaging Observability) تحت نتيجة "إلغاء Liquid" (Liquid abort).
5. لماذا لم تصل رسالة الاختبار الخاصة بي؟
قد لا يستوفي ملفك الشخصي شرط الإلغاء. قم بالمعاينة كمستخدم يستوفي هذا الشرط، أو قم بتفعيل خيار تجاوز سمات المستلمين بسمات مستخدم المعاينة عند إجراء "إرسال الاختبار".
المصادر
- Braze،مرجع Liquid. تم الاسترجاع في 23 أكتوبر 2026.
- Braze،إلغاء الرسائل. تم الاسترجاع في 23 أكتوبر 2026.
- Braze،وسوم التخصيص المدعومة. تم الاسترجاع في 23 أكتوبر 2026.
- Braze،منطق الرسائل الشرطية. تم الاسترجاع في 23 أكتوبر 2026.
- Braze،تعيين القيم الافتراضية. تم الاسترجاع في 23 أكتوبر 2026.
- Braze،استخدام Liquid. تم الاسترجاع في 23 أكتوبر 2026.
- بقلم CustomerIK، شريك تنفيذ معتمد لـ Braze.
CustomerIK هي شريك تنفيذ لـ Braze، وتعمل في مجالات الإعداد، والتكامل التقني، وعمليات التسويق، وإدارة بيانات العملاء.
إذا كنت ترغب في إجراء تدقيق شامل لرسائل Braze الخاصة بك للتأكد من خلوها من أي أخطاء في السمات، فلنتحدث.




