كل المقالات
دليل عمليمدة القراءة 8 دقائق

ما زال ROAS تطبيقك يحتسب المشتريات التي ردّت Apple وGoogle قيمتها، لذا ابنِ عروض أسعارك على ROAS الصافي

نادرًا ما تصل المبالغ المستردة إلى منصات الإعلانات، فيظل ROAS ينسب إلى الحملات مشتريات سبق أن ردّت Apple وGoogle قيمتها. نوضح هنا أين تفقد Firebase وGoogle Ads وAdAttributionKit المبالغ المستردة، وكم يكلفك ذلك، وكيف تبني ROAS الصافي لتطبيقك.

مكتب محلل تسويق عليه رسوم بيانية لحملات إعلانية على حاسوب محمول، وهاتف iPhone، وهاتف Android، وصفوف مطبوعة مشطوبة، ترمز إلى ROAS الصافي بعد استرداد مبالغ مشتريات التطبيق

أهم الخلاصات

  • حدث app_store_refund الذي تجمعه Firebase تلقائيًا لا يُطلق إلا عندما تردّ Google Play قيمة عملية شراء داخل التطبيق. وتصنفه Google على أنه خاص بـ Android فقط، لذا لا تُخفّض المبالغ المستردة في App Store أبدًا إيرادات in_app_purchase التي سجلتها Firebase.
  • يتتبع Google Ads مشتريات Google Play داخل التطبيق تلقائيًا في تطبيقات Android، ويبلّغ عن قيمة الشراء بوصفها قيمة التحويل. وفي الاشتراكات لا يسجل إلا الشراء الأول وقيمة الدفعة الأولى.
  • يمكن لتعديلات التحويل في Google Ads أن تعيد تحديد قيمة التحويل أو تسحبه إلى الصفر، وتقول Google إن التحويلات عبر الإنترنت لا يمكن تعديلها إلا إذا أُرسل معها معرّف معاملة.
  • في AdAttributionKit من Apple ثلاث نوافذ تحويل بعد التشغيل الأول: الأيام من 0 إلى 2، ومن 3 إلى 7، ومن 8 إلى 35. ولا تظهر قيمة التحويل الدقيقة إلا في أول postback.
  • ROAS الصافي هو الإيرادات المنسوبة إلى الإعلانات ناقص المبالغ المستردة عن تلك المشتريات، مقسومًا على الإنفاق الإعلاني. وقد تأتي الحملة صاحبة ROAS الإجمالي الأعلى في مرتبة أدنى على ROAS الصافي إذا كان مشتروها يطلبون الاسترداد أكثر.
  • تصل إشارات الاسترداد إلى خادم المطوّر، لا إلى شبكة الإعلانات. ترسل Apple إشعار REFUND عبر App Store Server Notification، وتبلّغ Google Play عن عمليات الإلغاء عبر إشعارات المطوّرين في الوقت الفعلي وعبر Voided Purchases API الذي يغطي آخر 30 يومًا.
  • لا يوجد سوى مسارين للاسترداد يسمحان للمطوّر بتقديم أدلة: CONSUMPTION_REQUEST من Apple ويُردّ عليه خلال 12 ساعة، ومراجعة رد المبالغ المدفوعة في Google Play عبر orders.reviewrefund ويُردّ عليها خلال 24 ساعة.

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

لماذا يضخّم ROAS الإيرادات عند تجاهل المبالغ المستردة

يقسم ROAS الإيرادات المنسوبة على الإنفاق الإعلاني. وجانب الإيرادات يُكتب عادة مرة واحدة عند الشراء، إما عبر SDK على الجهاز أو عبر استيراد التحويلات من المتجر. أما الاسترداد فحدث لاحق يقع خارج الجهاز، بين العميل وApple أو Google. وما لم ينقله شيء إلى الحملة نفسها، تظل عملية الشراء محسوبة.

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

ما هو ROAS الصافي؟

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

أين تضيع المبالغ المستردة بين المتجر ولوحة إعلاناتك

Firebase تسجل المبالغ المستردة في Google Play، لا في App Store

تتضمن قائمة Google للأحداث التي تُجمع تلقائيًا حدث in_app_purchase، الذي يُطلق عندما يُكمل المستخدم عملية شراء داخل التطبيق، بما في ذلك الاشتراك الأول، تعالجها Apple App Store أو Google Play. أما نظيره الخاص بالاسترداد، app_store_refund، فيُطلق عندما تردّ Google Play قيمة عملية شراء داخل التطبيق، وتصنفه Google على أنه خاص بـ Android فقط. ولا يُصدَّر app_store_refund ولا أحداث الاشتراك التلقائية إلى BigQuery.

وتذكر الصفحة نفسها أن Analytics لا يقيس تلقائيًا إيرادات شراء التطبيقات المدفوعة ولا المبالغ المستردة عنها، وأن الإيرادات المُبلَّغ عنها قد تختلف عن Google Play Developer Console. وعلى iOS لا يوجد ما يخصم تلقائيًا مبلغًا مستردًا في App Store من عملية شراء سجلتها Firebase بالفعل.

Google Ads يسجل قيمة الشراء بوصفها قيمة التحويل

في تطبيقات Android التي تستخدم الفوترة داخل التطبيق، يستطيع Google Ads تتبع المشتريات داخل التطبيق لمن نقروا على إعلانك، دون أي تعليمات برمجية في التطبيق. وتقول Google إن قيمة الشراء تُبلَّغ تلقائيًا بوصفها قيمة التحويل. وفي الاشتراكات لا يُسجَّل تحويلًا إلا الشراء الأول، ولا تُسجَّل إلا قيمة الدفعة الأولى. ولا تذكر مقالة المساعدة المبالغ المستردة.

لكن Google Ads يملك أداة تصحيح. فتعديلات التحويل تتيح لك إعادة تحديد قيمة التحويل دون تغيير العدد، أو سحبه، ما يجعل قيمته 0.00 ويؤثر في استراتيجيات عروض الأسعار القائمة على CPA وROAS معًا. وتقول Google إن التحويلات عبر الإنترنت لا يمكن تعديلها إلا إذا استخدمت معرّف معاملة، وإن التحويل المسحوب لا يمكن تعديله مرة أخرى. ولا تذكر تلك الصفحة تحويلات التطبيقات، لذا تأكد من أن إعداد التحويلات لديك يدعم التعديلات قبل أن تبني عليها.

نوافذ postback الإعلانية من Apple تُغلق قبل وصول كثير من المبالغ المستردة

في AdAttributionKit ثلاث نوافذ تحويل تبدأ عندما يشغّل المستخدم التطبيق أول مرة: الأيام من 0 إلى 2، والأيام من 3 إلى 7، والأيام من 8 إلى 35. ويستطيع التطبيق تحديث قيمة التحويل حتى تنتهي النافذة. ثم ترسل Apple الـ postback بعد تأخير عشوائي، من 24 إلى 48 ساعة للأول، ومن 24 إلى 144 ساعة للثاني والثالث. وإذا ثبّت التطبيق قيمة مبكرًا، يتجاهل النظام أي تحديثات لاحقة في تلك النافذة.

لا تظهر قيمة التحويل الدقيقة إلا في أول postback. أما الـ postback اللاحقة فتحمل في أحسن الأحوال قيمة تقريبية. فعملية شراء في اليوم 1 ردّت Apple قيمتها في اليوم 10 سبق الإبلاغ عنها في postback لم يعد قابلًا للتغيير.

أداة القياسما تسجله عند الشراءما يحدث عند استرداد قيمة الشراء
Firebase in_app_purchase، على Android وiOSمعرّف المنتج، السعر، القيمة، العملة، الكميةAndroid: يُطلق app_store_refund. iOS: لا يوجد حدث استرداد تلقائي
Google Ads، تحويلات Google Play، على Androidقيمة الشراء بوصفها قيمة التحويل، والدفعة الأولى فقط في الاشتراكاتغير موصوف. يمكن للتعديلات إعادة تحديد التحويلات عبر الإنترنت المرسلة مع معرّف معاملة أو سحبها
postback من AdAttributionKit، على iOSقيمة تحويل لكل نافذة، والدقيقة في الأولى فقطتُثبَّت بمجرد تجهيز postback تلك النافذة
خادمك الخاصكل معاملة، مرتبطة بمعرّف المستخدم لديكإشعار REFUND من Apple، وإشارات المشتريات الملغاة من Google Play

متى تصل المبالغ المستردة في التطبيقات، ومن يقرر فيها

لا تصل المبالغ المستردة وفق جدول واحد. فبعضها يصل بعد ساعات من الشراء، وبعضها بعد أشهر، ولهذا يظل ROAS المجموعة يتراجع بعد أن بدا تقرير الحملة نهائيًا.

مسار الاستردادالتوقيت بكلمات المتجر نفسهمن يقررالإشارة على خادمك
طلب استرداد في Google Playخلال 48 ساعة يطلب العميل من Google. وبعدها تحيله Google إلى المطوّرGoogle، ثم أنتعملية شراء ملغاة عبر RTDN وVoided Purchases API
استرداد من المطوّر في Google Playمتى أصدرتهأنتعملية شراء ملغاة، إذا ألغيت الوصول
بلاغ عن رسوم غير مصرّح بها في Google Playخلال 120 يومًا من المعاملةGoogleعملية شراء ملغاة
استرداد Appleيُطلب عبر reportaproblem.apple.com، ويصل تحديث خلال 24 إلى 48 ساعةAppleإشعار REFUND مع revocationReason
طلب الاستهلاك من Appleتردّ خلال 12 ساعةApple، اعتمادًا على بياناتكCONSUMPTION_REQUEST
مراجعة رد المبالغ المدفوعة في Google Playتردّ خلال 24 ساعة عبر orders.reviewrefundالبنك، بعد أدلتكعملية شراء ملغاة إذا ثبت رد المبلغ

كم يكلفك ROAS لا يرى المبالغ المستردة

خذ حملتين بالميزانية نفسها. الأرقام أدناه للتوضيح، وليست معيارًا مرجعيًا.

البندالحملة Aالحملة B
الإنفاق الإعلاني$10,000$10,000
إيرادات الشراء المنسوبة$14,000$12,500
ROAS الإجمالي1.401.25
الحصة المستردة من تلك الإيرادات18%4%
الإيرادات بعد المبالغ المستردة$11,480$12,000
ROAS الصافي1.151.20

يقول لك ROAS الإجمالي أن تنقل المال إلى A. ويقول ROAS الصافي إن B احتفظت بالمزيد من كل دولار. وإذا كانت عروض أسعارك تعمل على القيمة الإجمالية، فستواصل الخوارزمية البحث عن مزيد من مشتري A، لأن شيئًا لا يخبرها أبدًا بأنهم طلبوا استرداد أموالهم.

الإنفاق الإعلاني ليس إلا الفاتورة الأولى. فالعميل الذي استرد ماله يترك خلفه أيضًا ما يلي:

  • الدفعات. صفقات الشركاء وصنّاع المحتوى والمؤثرين المدفوعة لكل عملية شراء تُدفع عادة على البيع، لا على البيع بعد خصم المبالغ المستردة، ما لم ينص العقد على غير ذلك.
  • الحوسبة واستدعاءات API والتخزين. المستخدم الذي استرد ماله شغّل خوادمك وواجهات API المدفوعة من أطراف ثالثة ومساحة التخزين لديك حتى أُلغي وصوله. وتلك الفواتير لا تُسترد.
  • تكاليف رد المبالغ المدفوعة. منذ 3 أغسطس 2026 تحمّل Google المطوّر سعر الشراء محل رد المبلغ مع رسوم البنك، لذا فمصدر زيارات Android كثير النزاعات يكلف أكثر من الإيرادات التي يخسرها.
  • استهداف أسوأ. عروض الأسعار القائمة على القيمة والمدرَّبة على مشتريات مستردة تبحث عن مزيد من الأشخاص الذين يشبهون من استردوا أموالهم.
كومتان من العملات المعدنية على مكتب، إحداهما أقصر بعد أخذ بعض العملات منها، بجوار هاتف وآلة حاسبة، توضحان كيف تقلّص المبالغ المستردة الإيرادات التي يقوم عليها ROAS الصافي

هل ارتفاع معدل الاسترداد في حملة واحدة احتيال أم وعد لم يتحقق؟

غالبًا ما يكون الوعد. يخبرك حقل revocationReason من Apple بالجهة التي يقع عليها الاسترداد. القيمة 0 تعني أن App Store ردّ قيمة المعاملة لأسباب أخرى، مثل عملية شراء عن طريق الخطأ. والقيمة 1 تعني أنه ردّها بسبب مشكلة فعلية أو متصوَّرة في تطبيقك. وتجمّع القيمة 1 في حملة واحدة يشير عادة إلى الإعلان نفسه أو إلى تجربة البدء التي يقود إليها. أما تجمّع بلاغات الرسوم غير المصرّح بها في Google Play فيشير إلى مصدر الزيارات.

كيف تبني ROAS الصافي لتطبيقك

لا تحتاج إلى أداة جديدة كي تبدأ. تحتاج إلى بضع عمليات ربط لا تجريها بياناتك على الأرجح بعد.

  • اربط الحملة بالمستخدم. خزّن نتيجة الإسناد بجوار معرّف المستخدم لديك عند التثبيت، كي يمكن تتبع أي معاملة لاحقة إلى حملة.
  • اربط المعاملة بالمستخدم. اضبط appAccountToken في مشتريات iOS ومعرّف حساب مموَّهًا في مشتريات Google Play، كي يرتبط كل حدث من المتجر بالمستخدم لديك دون تخمين.
  • استمع إلى المبالغ المستردة على الخادم. عالج إشعار REFUND من Apple عبر App Store Server Notifications V2، وإشعارات المشتريات الملغاة من Google Play. واستعلم من Voided Purchases API دوريًا كخط دفاع احتياطي، لأنه لا يعيد إلا عمليات الإلغاء في آخر 30 يومًا.
  • اعرض الأرقام الإجمالية والصافية جنبًا إلى جنب، حسب مجموعة الشراء. احتسب كل استرداد على الحملة وتاريخ الشراء اللذين حققاه، لا على اليوم الذي ظهر فيه الاسترداد.
  • أرسل التصحيحات حيث تقبلها المنصة. إذا كانت تحويلات Google Ads لديك تحمل معرّف معاملة، فأعد تحديد قيمة التحويلات المستردة أو اسحبها. وحيث لا تقبل المنصة التصحيحات، انقل ميزانيتها اعتمادًا على الأرقام الصافية.
  • ردّ على طلبَي الأدلة في الوقت المحدد. يردّ RefundHalt على CONSUMPTION_REQUEST من Apple ضمن مهلة 12 ساعة، وعلى مراجعة رد المبالغ المدفوعة في Google Play خلال 24 ساعة، لتصل روايتك في المبالغ المستردة التي يمكنك الاعتراض عليها.

هل تُحتسب المبالغ المستردة في تاريخ الشراء أم في تاريخ الاسترداد؟

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

متى يصبح ROAS الصافي للمجموعة نهائيًا؟

يستقر على مراحل. تُغلق نافذة الاسترداد الذاتي في Google بعد 48 ساعة، وتخبر Apple العملاء بأن يتوقعوا تحديثًا لطلب الاسترداد خلال 24 إلى 48 ساعة، وقد يصل بلاغ عن رسوم غير مصرّح بها في Google Play خلال 120 يومًا من المعاملة. اعتبر الأرقام المبكرة مؤقتة، وأعد فحص المجموعة نفسها لاحقًا.

الأسئلة الشائعة

هل تخصم Firebase المبالغ المستردة من إيرادات الشراء داخل التطبيق؟
في Google Play فقط. حدث app_store_refund الذي تجمعه Firebase تلقائيًا يُطلق عندما تردّ Google Play قيمة عملية شراء داخل التطبيق، وتصنفه Google على أنه خاص بـ Android فقط. لا يوجد مقابل تلقائي للمبالغ المستردة في App Store، وتقول Google إن Analytics لا يقيس تلقائيًا إيرادات شراء التطبيقات المدفوعة ولا المبالغ المستردة عنها.
هل يزيل Google Ads المشتريات المستردة داخل التطبيق من التحويلات؟
مقالة Google نفسها عن تحويلات Google Play لا تقول ذلك. فهي تذكر أن قيمة الشراء تُبلَّغ بوصفها قيمة التحويل، ولا تذكر المبالغ المستردة. يمكن لتعديلات التحويل في Google Ads إعادة تحديد التحويل أو سحبه، وتقول Google إن التحويلات عبر الإنترنت لا يمكن تعديلها إلا إذا أُرسل معها معرّف معاملة.
هل يمكن أن تعكس postback من AdAttributionKit عملية استرداد؟
فقط إذا وقع الاسترداد قبل تجهيز postback نافذة التحويل تلك. تمتد النوافذ على الأيام من 0 إلى 2، ومن 3 إلى 7، ومن 8 إلى 35 بعد التشغيل الأول، وبمجرد انتهاء النافذة أو تثبيت القيمة تتجاهل Apple أي تحديثات لاحقة في تلك النافذة.
كيف أحسب ROAS الصافي لتطبيق؟
خذ الإيرادات المنسوبة إلى حملة، واطرح منها المبالغ المستردة عن المشتريات نفسها، ثم اقسم الناتج على الإنفاق الإعلاني للحملة. احتسب كل استرداد على مجموعة الشراء التي حققته، مستخدمًا إشعار REFUND من Apple وإشارات المشتريات الملغاة من Google Play سجلًّا للاسترداد.
هل يمكنني الاعتراض على المبالغ المستردة التي تخفّض ROAS لديّ؟
نوعان فقط. يتيح لك CONSUMPTION_REQUEST من Apple إرسال بيانات الاستهلاك خلال 12 ساعة، وتمنحك مراجعة رد المبالغ المدفوعة في Google Play عبر orders.reviewrefund مهلة 24 ساعة. أما استرداد Google Play خلال 48 ساعة، والمبالغ المستردة عبر الدعم، والمشتريات الملغاة فتُحسم دونك، ورد المبالغ المدفوعة عبر البنك نهائي.

المصادر وقراءات إضافية

RefundHalt

الطيار الآلي للاستردادات في App Store وGoogle Play

تابع القراءة

طلب الاسترداد التالي في طريقه إليك بالفعل.

أعد RefundHalt في الوقت الذي تستغرقه لقراءة رسالة دعم أخرى عن استرداد لم تتمكن من الاعتراض عليه.