أنت تريد أن تعرف ما إذا كان تكامل إعلاناتك يصمد على الشبكة التي يملكها مستخدموك فعلاً. إن VPN هو أسهل طريقة لإعادة إنتاج خروج بعيد. والخطأ هو معاملة تلك التجربة كتجربة إيرادات.

تغيير بلد الخروج لا يخلق جمهورًا جديدًا، ولا يحوّل نقراتك أنت إلى حركة مرور مؤهلة. إنه يغيّر مسار الطلب فقط.

لذلك نفّذه كاختبار اتصال بتسلسل موثّق، وأبعد المخزون الحيّ عنه تمامًا. الخطوات أدناه تستحق التكرار مع كل إصدار.

حدّد الغرض من الاختبار

هناك سؤالان يختلطان. الأول هو ما إذا كان الطلب يُخدم أصلاً من مسار شبكة معيّن، وهذا سؤال تكامل واتصال. والثاني هو ما قد يكسبه المستخدمون الحقيقيون في ذلك البلد، وهذا سؤال تقارير وأعمال لا تستطيع SDK الإجابة عنه نيابةً عنك.

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

اكتب السؤال قبل أن تتصل: مثلاً، هل يعيد طلب البانر ملءً عندما يخرج الجهاز عبر ألمانيا في هذا الإصدار؟ إن كان الجواب الذي تريده رقم إيرادات، فتوقف هنا، لأن أي إعداد VPN لا ينتج رقمًا كهذا.

التحضير المسبق: سجّل الجهاز، لا العنوان

توفّر وثائق Google للإعلانات التجريبية مسارين مدعومين. استخدم وحدات الإعلانات التجريبية للتنسيق الذي تدمجه، أو استخدم وحداتك الخاصة مع تسجيل الجهاز الفعلي كجهاز اختبار. كلا المسارين موثّقان لكل منصّة ولكل جيل من SDK، ودليلا Next-Gen وLegacy غير قابلين للتبادل.

التسجيل هو معرّف جهاز، وليس له علاقة بعنوان الشبكة. تغيير المكان الذي تخرج منه حركة الهاتف لا يسجّل شيئًا. على Android يسجّل SDK المعرّف، وأنت تطبّقه في الشيفرة:

RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("YOUR_TEST_DEVICE_ID"))

أكّد التسجيل قبل أن تغيّر الشبكات، وإلا لن تستطيع التمييز بين ملء فاشل وإعلان حيّ يُخدم لجهاز لم يُسجّل قط. إذا أظهر الإعلان علامة Test Ad، فقد مرّ الطلب عبر مخزون الاختبار؛ وإذا لم يظهرها، فأنت تنظر إلى شيء آخر ولا ينبغي أن تنقر عليه.

نفّذ التسلسل بترتيب ثابت

أبقِ كل شيء ثابتًا إلا الشبكة. الإصدار نفسه، ووحدة الإعلان نفسها، والموضع نفسه، وحالة التطبيق نفسها. غيّر متغيّرين فلن تتعلم شيئًا.

خط الأساس أولاً. مع فصل VPN، حمّل الموضع وأكّد ظهور إعلان اختباري. التقط الطلب في logcat باستخدام adb logcat | grep -i ads ودوّن رمز الاستجابة. عدم الملء في خط الأساس ليس مشكلة VPN.

ثم اتصل وأعد التجربة. الإصدار نفسه، والوحدة نفسها، والموضع نفسه، وVPN مفعّل. التقط أسطر السجل نفسها. ما تبحث عنه هو فرق: ملء يتحول إلى مهلة، أو طلب لا يغادر أبدًا، أو رمز خطأ يتغيّر. أما الملء الذي يبقى ملءً فيخبرك أن التكامل سليم على ذلك المسار وأن الاختبار انتهى.

سجّل البيئة. إصدار SDK، وإصدارات المحوّلات، ونوع البناء، وتنسيق الإعلان، وبلد الخروج، والنتيجة الملاحظة. بدون هذا السجل يعيد الشخص التالي التجربة من الصفر ويصل إلى استنتاج مختلف من الدليل نفسه.

الوساطة اختبار منفصل

الإعلانات الوسيطة لا تحمل علامة Test Ad من Google، وهذا يجعلها أسهل مكان للنقر على شيء لا ينبغي النقر عليه. لكل شبكة في حزمة الوساطة وضع اختبار خاص وإعداد خاص، ولا يمتد إعداد الاختبار من Google إليها.

افحص المحوّلات واحدًا واحدًا، مع تفعيل وضع الاختبار الخاص بالمحوّل، وأكّد من السجل أي شبكة خدمت الإعلان. إذا لم تستطع تحديد أي محوّل ملأ الظهور وهل كان إبداعًا اختباريًا، فتعامل مع الظهور كمخزون حيّ واتركه.

هنا أيضًا تهم سياسة الحركة غير الصالحة. فالنقرات الذاتية، والظهور المتكرر، والتفاعلات الآلية، والحركة الخادعة كلها مشمولة، والنقرة غير المتأكدة لمعرفة ما سيحدث هي بالضبط النمط الذي تصفه تلك القواعد.

التراجع وبوابة الإصدار

لا يجوز شحن إعداد الاختبار. قبل بناء الإصدار، استبدل وحدات الإعلانات التجريبية بوحدات الإنتاج، وأزل قائمة أجهزة الاختبار، واحذف أي أعلام خاصة بالتطوير فقط. ابحث في نسخة الإصدار عن معرّفات الاختبار بدل الثقة بالذاكرة؛ فالسهو العابر فشل صامت لا يظهر إلا كإيرادات مفقودة.

ثم تحقّق في الاتجاه الآخر: ثبّت بناء الإصدار على جهاز اختبار مسجّل وأكّد أن الطلب لم يعد يُعامل كحركة اختبار. إذا كان لا يزال يظهر العلامة، فقد بقي شيء في الإعداد.

أبقِ بعده مسار اختبار واحدًا موثّقًا كي يُجاب عن سؤال الشبكة التالي دون المساس بالمخزون الحيّ. الإعلانات التجريبية لا تظهر أبدًا في تقارير الحساب، لذا فإن الفصل النظيف لا يكلّف شيئًا في دقة التقارير ويمنحك تشخيصًا قابلًا للتكرار.

مقالات ذات صلة