استضافة app-ads.txt عندما لا يكون لديك موقع إلكتروني
ما يحتاجه الزاحف فعلًا، وثلاث طرق لمنحه مضيفًا دون بناء موقع، وفخاخ إعادة التوجيه في كلٍّ منها، وكيف تتأكد من أنه يعمل.
لا تحتاج إلى موقع إلكتروني، بل إلى اسم مضيف تتحكم فيه يقدّم /app-ads.txt نصًّا عاديًا بالحالة HTTP 200 ومن دون إعادة توجيه. ضع هذا العنوان في حقل موقع المطوّر في صفحة تطبيقك على المتجر — Marketing URL في App Store — وسيقرأ الزاحف الملف من هناك. يذكر AdMob أن Firebase Hosting خيار مقبول.
أنجز هذا في دقائق بدلًا من ذلك
تستضيف AppFoyer الصفحات التي يتناولها هذا الدليل — سياسة الخصوصية والشروط والدعم وحذف الحساب وapp-ads.txt — على نطاق فرعي خاص بها، دون نطاق أو خادم خاص بك. تطبيق واحد مجاني، ولا شيء يشترطه المتجر يكون خلف جدار دفع أبدًا.
تمت المراجعة في 12 أكتوبر 2026. تتغير سياسات المتاجر، أحيانًا دون إشعار. كل ما يلي يربط بالتوثيق الرسمي، وتلك الصفحة — لا هذه — هي المرجع. إذا تعارضتا، فالمتجر هو المحق. هذا الدليل مترجم من الإنجليزية؛ والاقتباسات من توثيق المتاجر محفوظة بالإنجليزية الأصلية.
لا تحتاج إلى موقع إلكتروني، بل إلى اسم مضيف تتحكم فيه يقدّم /app-ads.txt نصًّا عاديًا بالحالة
HTTP 200 ومن دون إعادة توجيه. ضع هذا العنوان في حقل موقع المطوّر في صفحة تطبيقك على المتجر —
Marketing URL في App Store، وWebsite ضمن Store listing contact details (بيانات الاتصال في صفحة
المتجر) في Google Play — وسيقرأ الزاحف الملف من هناك.
يقول AdMob ذلك صراحةً: «If you don’t have a suitable website that allows the uploading of an app-ads.txt file at the root level, you can use Firebase Hosting to host your app-ads.txt file.» (إذا لم يكن لديك موقع مناسب يتيح رفع ملف app-ads.txt على مستوى الجذر، فيمكنك استخدام Firebase Hosting لاستضافة ملف app-ads.txt.) الاستضافة على المنصات هي الإجابة المتوقعة، لا حلًّا التفافيًا.
ما يحتاجه الزاحف فعلًا
لا يبحث الزاحف عن تطبيقك باسم الحزمة. بل يأخذ موقع المطوّر من صفحة تطبيقك على المتجر، ويحتفظ باسم
المضيف، ويجلب /app-ads.txt من جذره. قواعد AdMob:
- الجذر، لا المسار. صفحة متجر تشير إلى
example.com/myappيُتحقق منها علىexample.com/app-ads.txt. - مستوى واحد من النطاقات الفرعية. الزاحف «probe[s] up to one subdomain level from the developer
website» (يفحص حتى مستوى واحد من النطاقات الفرعية انطلاقًا من موقع المطوّر). ويُعدّ
www.وm.النطاق نفسه. - تقديم مباشر.
200 OK، وContent-Type: text/plain، من دون إعادة توجيه، ومن دون تسجيل دخول، ولا شيء فيrobots.txtيحجبه.
إذًا المهمة هي: عنوان واحد لن يتغير، يقدّم ملفًا نصيًا واحدًا، بشكل صحيح، لسنوات. الخيارات الثلاثة أدناه تؤدي ذلك كلها؛ والفرق بينها في مقدار الصيانة المطلوبة منك.
الخيار 1: Firebase Hosting
الخيار الذي يذكره AdMob. يمنحك مشروع Firebase مجاني اسم مضيف مثل your-project.web.app.
- أنشئ مشروعًا في Firebase console وثبّت Firebase CLI.
- في مجلد فارغ، شغّل
firebase init hostingواحتفظ بمجلدpublicالافتراضي. - ضع ملف
app-ads.txtفيpublic/، بجانبindex.htmlالمُنشأ تلقائيًا. - شغّل
firebase deploy --only hosting. - اضبط
https://your-project.web.appموقعًا للمطوّر في كل صفحة متجر.
الفخ: إذا ربطت لاحقًا نطاقًا مخصصًا واخترت إعادة توجيه عنوان web.app إليه، فإن العنوان الموجود
في صفحة متجرك سيجيب الآن بإعادة توجيه. إما أن تُبقي صفحة المتجر على العنوان الذي يقدّم الملف مباشرة،
أو تحدّث صفحة المتجر إلى النطاق الجديد.
الخيار 2: GitHub Pages أو أي مضيف ثابت آخر
أي مضيف للملفات الثابتة يصلح ما دام الملف ينتهي في جذر اسم المضيف الذي تُعلنه.
في GitHub Pages لهذه التفصيلة أهمية: موقع المشروع يقع على username.github.io/repo/، لكن الزاحف
لا يتحقق إلا من username.github.io/app-ads.txt. يجب أن يكون الملف في موقع المستخدم — أي المستودع
المسمّى username.github.io — وإلا فإن المشروع يحتاج إلى نطاق مخصص خاص به.
وينطبق فخ إعادة التوجيه نفسه: بمجرد ضبط نطاق مخصص، يعيد GitHub Pages توجيه عنوان github.io إليه.
أعلن العنوان الذي يقدّم الملف دون أي قفزة.
الخيار 3: صفحة امتثال مستضافة
إذا كنت تحتاج أيضًا إلى سياسة خصوصية أو صفحة دعم أو عنوان URL لحذف الحساب — والتطبيق الذي يعرض
إعلانات يحتاج دائمًا تقريبًا إلى الأولى — فيمكن للمضيف نفسه أن يقدّمها جميعًا. وهذا ما يفعله
AppFoyer: يحصل كل تطبيق على نطاق فرعي خاص به يقدّم app-ads.txt نصًّا عاديًا من دون إعادة توجيه،
إلى جانب الصفحات التي تطلبها المتاجر. يُبلغ AdMob بأن «app-ads.txt file found and verified» (تم
العثور على ملف app-ads.txt والتحقق منه) لتطبيقات على المتجرين يكون موقع المطوّر فيها عنوانًا على
AppFoyer (تم التحقق في أكتوبر 2026). ليست لدينا بعد أي نتيجة زحف خاصة بنا من شبكات إعلانية أخرى.
تحقق منه قبل أن يفعل الزاحف
curl -i https://your-host.example/app-ads.txt
المطلوب: HTTP/2 200 (أو HTTP/1.1 200 OK)، وcontent-type: text/plain، وعدم وجود ترويسة
location:، وأسطرك في المتن. ظهور 301 أو 302 هنا هو أكثر أسباب الفشل الخفية شيوعًا.
ثم انتظر. يقول AdMob: «it can take up to 24 hours for AdMob to crawl and verify your app-ads.txt files» (قد يستغرق AdMob ما يصل إلى 24 ساعة للزحف إلى ملفات app-ads.txt والتحقق منها). تجد حالته ضمن Apps → View all apps → app-ads.txt؛ وإذا ظل يقول «غير موجود» بعد يوم، فإن دليل «غير موجود» يستعرض الأسباب بالترتيب.
المصادر الرسمية
- Set up app-ads.txt — مركز مساعدة AdMob. جملة Firebase Hosting، وقاعدتا الجذر والنطاقات الفرعية، ورقم الـ 24 ساعة مأخوذة من هذه الصفحة.
- Understand app-ads.txt file statuses — مركز مساعدة AdMob. أين توجد الحالة وما معنى كل واحدة منها.
- ads.txt / app-ads.txt specification — IAB Tech Lab.