فرضت OneSignal سقفاً صارماً على باقتها المجانية. لن تبقى الإشعارات الفورية والرسائل داخل التطبيق للجوال مجانية فوق 1,000 مستخدم نشط شهرياً. الحسابات الجديدة ستصطدم بالحد اعتباراً من 1 سبتمبر 2026، والحسابات القائمة اعتباراً من 1 أكتوبر. إذا تجاوز تطبيقك ألف مستخدم نشط شهرياً، أمامك 3 خيارات: البقاء والدفع، تقليص الجمهور، أو الانتقال إلى منصة أخرى.

ما الذي يتغيّر ومتى

حاسبة تكلفة باقة OneSignal Growth تُظهر 31 دولاراً شهرياً عند 1000 مستخدم نشط على الجوال
Source: OneSignal
  • الباقة المجانية تستمر بالعمل دون 1,000 MAU. فوق هذا الرقم، تنتقل الإشعارات الفورية والرسائل داخل التطبيق للجوال إلى مستوى مدفوع.
  • التواريخ: يسري الحد على الحسابات الجديدة اعتباراً من 1 سبتمبر 2026 وعلى الحسابات القائمة اعتباراً من 1 أكتوبر 2026، بحسب صفحة الأسئلة الشائعة للفوترة من OneSignal.
  • العتبة: أقل من 1,000 MAU للإشعارات الفورية والرسائل داخل التطبيق على الجوال. عند تجاوزها، تتوقف هذه القنوات عن الإرسال حتى الترقية.
  • ما لم يتغيّر: إشعارات الويب والبريد الإلكتروني والرسائل النصية تستمر بالعمل ضمن حدود الباقة نفسها كما كانت. التغيير يخص الجوال فقط.
  • الرحلات (Journeys) متأثرة أيضاً: أي خطوة في رحلة تُرسل إشعاراً فورياً أو رسالة داخل التطبيق تتجاوز ببساطة الاشتراكات على الجوال.
  • حذف المشتركين ليس مخرجاً. إذا حذفت اشتراكات جوال كانت نشطة خلال آخر 30 يوماً، لا يمكن لباقتك أن تُعاد تفعيلها إلا بعد 30 يوماً من الحذف، وبشرط أن تبقى دون الحد طوال تلك الفترة.

كيف تسير عملية الانتقال

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

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

1. ما الذي يمكننا نقله وما لا يمكننا نقله

لست بحاجة لمراجعة هذا بنفسك. إليك الصورة الكاملة سلفاً حتى لا تفاجَأ بشيء في منتصف عملية الانتقال.

القناةهل تُنقل؟كيف
إشعارات iOS (APNs)نعمنستورد رموز الأجهزة (device tokens) الحالية الخاصة بك. تستمر بالعمل، لأن الرمز ينتمي إلى تطبيقك ومفتاح APNs الخاص بك، وليس إلى OneSignal.
إشعارات Android (FCM)نعمالأمر نفسه: الرموز تنتمي إلى مشروع Firebase الخاص بك.
إشعارات Huawei (HMS)نعمالأمر نفسه، باستخدام بيانات اعتماد HMS الخاصة بك.
مشتركو البريد الإلكتروني والرسائل النصيةنعم، مع إعداد القناةتُستورد العناوين وأرقام الهواتف. لكن الإرسال يتطلب أيضاً إعداد القناة من جانبنا: نطاق إرسال موثّق بـ DKIM للبريد الإلكتروني، ومرسل أو مزوّد للرسائل النصية. نُعدّ ذلك معك قبل أول عملية إرسال.
إشعارات الويبلا، إعادة اشتراك بدلاً من ذلكاشتراكات المتصفح مرتبطة تشفيرياً بمفاتيح OneSignal ولا يمكن نقلها من قِبل أي مزوّد. يعود مشتركوك بصمت: راجع قسم إشعارات الويب.
سجل الرسائل، إحصاءات التسليم، الرحلات (Journeys)لاتبقى البيانات التاريخية في OneSignal. صدّر أي تقارير تريد الاحتفاظ بها قبل إغلاق الحساب.
تعريفات الشرائح (Segments)تُعاد بناؤها، لا تُستوردتُعيد واجهة برمجة تطبيقات (API) OneSignal أسماء الشرائح وأعدادها، لكن دون الفلاتر الخاصة بها، لذا لا يوجد ما يمكن استيراده. نُعيد إنشاءها في Pushwoosh.
القناة
1 / 7
إشعارات iOS (APNs)
هل تُنقل؟
نعم
كيف
نستورد رموز الأجهزة (device tokens) الحالية الخاصة بك. تستمر بالعمل، لأن الرمز ينتمي إلى تطبيقك ومفتاح APNs الخاص بك، وليس إلى OneSignal.
القناة
2 / 7
إشعارات Android (FCM)
هل تُنقل؟
نعم
كيف
الأمر نفسه: الرموز تنتمي إلى مشروع Firebase الخاص بك.
القناة
3 / 7
إشعارات Huawei (HMS)
هل تُنقل؟
نعم
كيف
الأمر نفسه، باستخدام بيانات اعتماد HMS الخاصة بك.
القناة
4 / 7
مشتركو البريد الإلكتروني والرسائل النصية
هل تُنقل؟
نعم، مع إعداد القناة
كيف
تُستورد العناوين وأرقام الهواتف. لكن الإرسال يتطلب أيضاً إعداد القناة من جانبنا: نطاق إرسال موثّق بـ DKIM للبريد الإلكتروني، ومرسل أو مزوّد للرسائل النصية. نُعدّ ذلك معك قبل أول عملية إرسال.
القناة
5 / 7
إشعارات الويب
هل تُنقل؟
لا، إعادة اشتراك بدلاً من ذلك
كيف
اشتراكات المتصفح مرتبطة تشفيرياً بمفاتيح OneSignal ولا يمكن نقلها من قِبل أي مزوّد. يعود مشتركوك بصمت: راجع قسم إشعارات الويب.
القناة
6 / 7
سجل الرسائل، إحصاءات التسليم، الرحلات (Journeys)
هل تُنقل؟
لا
كيف
تبقى البيانات التاريخية في OneSignal. صدّر أي تقارير تريد الاحتفاظ بها قبل إغلاق الحساب.
القناة
7 / 7
تعريفات الشرائح (Segments)
هل تُنقل؟
تُعاد بناؤها، لا تُستورد
كيف
تُعيد واجهة برمجة تطبيقات (API) OneSignal أسماء الشرائح وأعدادها، لكن دون الفلاتر الخاصة بها، لذا لا يوجد ما يمكن استيراده. نُعيد إنشاءها في Pushwoosh.

المدة التي تستغرقها العملية

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

الترتيب مهم:

  1. صدّر جمهورك. أرسل لنا app_id الخاص بتطبيقك في OneSignal ومفتاح App API، وسنسحب التصدير بأنفسنا، أو صدّر ملف CSV بنفسك. التفاصيل أدناه.
  2. أرسل لنا بيانات اعتماد الإرسال. المفاتيح نفسها التي يستخدمها OneSignal للإرسال حالياً. نرفعها قبل بدء الاستيراد، بحيث يكون كل جهاز مستورد قابلاً للتسليم.
  3. استبدل الـ SDK. أزل OneSignal SDK، أضف Pushwoosh SDK، وابدأ تشغيله برمز تطبيقك في Pushwoosh ورمز API الخاص بالجهاز (device API token). خطوات كل منصة موجودة في النسخ A إلى C.
  4. تحقق من التسليم. سجّل جهاز اختبار وأرسل لنفسك إشعاراً فورياً قبل أن تلمس حركة الإنتاج الفعلية.
  5. اعتمد ورقة الوسوم (tags). نبنيها من ملف التصدير الخاص بك؛ تشطب الوسوم غير المستخدمة وتُشير إلى ما يحمل قيماً متعددة. نستورد شرائحك ونعيد إنشاءها.
  6. حوّل الإرسال. بمجرد أن يكون التسليم التجريبي نظيفاً والاستيراد مؤكداً، وجّه حملاتك إلى Pushwoosh وأوقف الإرسال من OneSignal.

2. صدّر جمهورك

الخيار أ (موصى به): نقوم به نيابة عنك. أرسل لنا app_id الخاص بتطبيقك في OneSignal ومفتاح App API، وسنسحب التصدير بأنفسنا. دورك ينتهي هنا.

الخيار ب: تقوم به بنفسك. في OneSignal، اذهب إلى Audience > Subscriptions وصدّر ملف CSV، أو استدعِ نقطة نهاية التصدير (export endpoint):

Terminal window
curl -X POST 'https://api.onesignal.com/players/csv_export?app_id=YOUR_APP_ID' \
-H 'Authorization: Key YOUR_APP_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"extra_fields":["external_user_id","timezone_id","notification_types"]}'

تُعيد الاستجابة csv_file_url، وهو ملف CSV مضغوط بصيغة gzip يبقى قابلاً للتنزيل لمدة ثلاثة أيام.

شاشة سجلات الاشتراكات في OneSignal مع تمييز زر Export في الأعلى إلى اليمين
Source: OneSignal

يجب أن تتضمن الملف هذه الأعمدة. أي شيء آخر اختياري ونتجاهله.

العمودلماذا نحتاجه
identifierرمز الإشعار الفوري (push token) نفسه. الصف الذي لا يحتويه لا يمكن نقله.
idمعرّف الاشتراك في OneSignal. يصبح معرّف الجهاز من جانبنا.
device_typeيخبرنا بالمنصة: iOS، Android، Huawei، بريد إلكتروني، رسائل نصية.
invalid_identifierيميّز الصفوف غير المشتركة حتى نتجاوزها.
tagsوسومك المخصصة. نعيد إنشاءها في Pushwoosh.
external_user_idمعرّف المستخدم الخاص بك. يمنع تكرار الجهاز بعد أن يسجّله الـ SDK الخاص بنا.
timezone_idيفعّل ميزة الإرسال حسب المنطقة الزمنية (Send by Timezone) في Pushwoosh.
العمود
1 / 7
identifier
لماذا نحتاجه
رمز الإشعار الفوري (push token) نفسه. الصف الذي لا يحتويه لا يمكن نقله.
العمود
2 / 7
id
لماذا نحتاجه
معرّف الاشتراك في OneSignal. يصبح معرّف الجهاز من جانبنا.
العمود
3 / 7
device_type
لماذا نحتاجه
يخبرنا بالمنصة: iOS، Android، Huawei، بريد إلكتروني، رسائل نصية.
العمود
4 / 7
invalid_identifier
لماذا نحتاجه
يميّز الصفوف غير المشتركة حتى نتجاوزها.
العمود
5 / 7
tags
لماذا نحتاجه
وسومك المخصصة. نعيد إنشاءها في Pushwoosh.
العمود
6 / 7
external_user_id
لماذا نحتاجه
معرّف المستخدم الخاص بك. يمنع تكرار الجهاز بعد أن يسجّله الـ SDK الخاص بنا.
العمود
7 / 7
timezone_id
لماذا نحتاجه
يفعّل ميزة الإرسال حسب المنطقة الزمنية (Send by Timezone) في Pushwoosh.

ملاحظة: external_user_id وtimezone_id ليسا جزءاً من التصدير الافتراضي. اطلبهما صراحة عبر معامل extra_fields أعلاه، أو من أداة اختيار الأعمدة في لوحة التحكم.

3. أرسل لنا بيانات اعتماد الإرسال

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

المنصةما نحتاجهمن أين تحصل عليه
iOSمفتاح APNs Auth Key (.p8)، Key ID، Team ID، معرّف حزمة التطبيق (app bundle id)Apple Developer > Certificates, Identifiers & Profiles > Keys. لا تُلغِ المفتاح الذي يستخدمه OneSignal؛ يمكن لمفتاح واحد أن يخدم الاثنين.
Androidملف JSON لحساب خدمة Firebase (FCM v1)Firebase Console > Project settings > Service accounts. يجب أن يكون مشروع Firebase نفسه الذي يستخدمه تطبيقك بالفعل.
HuaweiApp ID وApp SecretAppGallery Connect > your project > App information.
المنصة
1 / 3
iOS
ما نحتاجه
مفتاح APNs Auth Key (.p8)، Key ID، Team ID، معرّف حزمة التطبيق (app bundle id)
من أين تحصل عليه
Apple Developer > Certificates, Identifiers & Profiles > Keys. لا تُلغِ المفتاح الذي يستخدمه OneSignal؛ يمكن لمفتاح واحد أن يخدم الاثنين.
المنصة
2 / 3
Android
ما نحتاجه
ملف JSON لحساب خدمة Firebase (FCM v1)
من أين تحصل عليه
Firebase Console > Project settings > Service accounts. يجب أن يكون مشروع Firebase نفسه الذي يستخدمه تطبيقك بالفعل.
المنصة
3 / 3
Huawei
ما نحتاجه
App ID وApp Secret
من أين تحصل عليه
AppGallery Connect > your project > App information.

نرفع بيانات الاعتماد إلى تطبيقك في Pushwoosh قبل بدء الاستيراد. هذا الترتيب مهم: الاستيراد دون بيانات اعتماد ينتج قاعدة بيانات مليئة بأجهزة لا يمكن التسليم إلى أي منها.

4. راجع الوسوم والشرائح

محرر الشرائح في OneSignal يعرض شريحة مبنية على فلتر Last Session أقل من 168 ساعة
Source: OneSignal

الوسوم تُنقل، ولست بحاجة لجردها بنفسك. في OneSignal، الوسم هو سلسلة نصية بسيطة من نوع مفتاح/قيمة دون نوع محدد. في Pushwoosh، يُعرَّف كل وسم مرة واحدة لكل تطبيق بنوع محدد (String، Integer، Boolean، Date، List أو Price)، ولا يحمل قيماً إلا بعد ذلك.

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

لماذا نسأل بدلاً من التخمين: نوع الوسم يصبح ثابتاً بمجرد إنشائه، لذا الوسم متعدد القيم الذي ننشئه كـ String بسيط يجب حذفه واستيراده من جديد. الوسم الذي يبدو أحادي القيمة في ملف التصدير هو تحديداً الحالة التي لا يمكننا كشفها من البيانات وحدها. إذا لم نتلقَّ رداً، نستورد كل وسم بالنوع الذي استنتجناه ونخبرك بما خمّناه.

الشرائح تُعاد بناؤها. يمكن لواجهة برمجة تطبيقات OneSignal تصفية ملف تصدير حسب شريحة وسرد أسماء شرائحك، لكنها لا تُعيد الفلاتر الكامنة خلفها، لذا لا يوجد ما يمكن استيراده. أمامك طريقتان:

  1. إعادة بناء الشروط (موصى بها). أرسل لنا قائمة شرائحك مع فلاترها؛ لقطات الشاشة مقبولة. نعيد إنشاءها فوق الوسوم المستوردة. الشرائح المُعاد بناؤها ديناميكية: تستمر بالتحديث مع تغيّر جمهورك.
  2. تجميد العضوية. نأخذ تصديراً واحداً لكل شريحة ونضع على كل ملف وسماً مميّزاً، مثل os_segment = vip_users. أسرع، لكن النتيجة لقطة لا تُحدّث نفسها.

الشرائح المبنية على بيانات سلوكية خاصة بـ OneSignal (عدد الجلسات، مدة الاستخدام، “Active Users”، “Engaged Users”) لا يمكن إعادة إنتاجها وقت الاستيراد، لأن هذا السجل التاريخي يبقى في OneSignal. تبدأ مكافئاتها في Pushwoosh بالتشكّل فور إطلاق الـ SDK الخاص بنا في تطبيقك.

5. ما نقوم به من جانبنا

  1. إنشاء تطبيقك في Pushwoosh وإعداده ورفع بيانات الاعتماد من الخطوة 3.
  2. تنظيف ملف التصدير: حذف الصفوف غير المشتركة والصفوف ذات الرمز الفارغ، مطابقة رموز المنصات في OneSignal مع رموزنا، تحويل الوسوم، ومطابقة external_user_id الخاص بك مع User ID لدينا.
  3. إنشاء مخطط الوسوم، ثم استيراد الجمهور على دفعات، مع التحقق من كل دفعة.
  4. إرسال إشعار فوري تجريبي لمجموعة تحكم صغيرة ومقارنة النتيجة بما تتوقعه.
  5. تقديم تقرير: عدد الاشتراكات في الملف، وعدد ما استُورد، وسبب تجاوز كل صف تم تجاوزه.

6. أطلق Pushwoosh SDK في الإصدار التالي من تطبيقك

يجعل الاستيراد جمهورك الحالي قابلاً للوصول إليه فوراً، لكنه جسر، وليس الوجهة النهائية. فقط Pushwoosh SDK داخل تطبيقك يمكنه التقاط رمز جديد عندما يُغيّره نظام التشغيل (إعادة تثبيت، استعادة، ترقية نظام التشغيل)، وتسجيل المستخدمين الذين يثبّتون التطبيق بعد الانتقال، والإبلاغ عن الفتحات والرسائل داخل التطبيق وإلغاءات التثبيت.

أزل OneSignal SDK في الإصدار نفسه. يتنافس اثنان من الـ SDK للإشعارات الفورية في بناء واحد على استدعاءات الإشعارات (notification callbacks) نفسها، ولا نختبر هذا المزيج. إبقاء OneSignal يرسل أثناء طرح الإصدار الجديد أمر مقبول ومتوقّع؛ أما إبقاء الـ SDK-ين معاً داخل بناء واحد فلا. خطوات كل منصة موجودة في النسخ A إلى C أدناه.

7. إشعارات الويب: كيف يعود مشتركوك

إشعارات الويب لا تُستورد، وهذا قيد تقني صارم، وليس خياراً من Pushwoosh. اشتراك إشعارات الويب موقّع بزوج مفاتيح VAPID الخاص بمن أنشأه، والمفتاح الخاص لدى OneSignal لا يغادر OneSignal أبداً — توثيقهم الخاص يُشير إلى أن مفاتيح اشتراك الويب متاحة لـ OneSignal SDKs فقط. لا يمكن لأي مزوّد استيراد اشتراكات ويب تابعة لمزوّد آخر. ما يعمل بدلاً من ذلك هو إعادة الاشتراك الصامتة:

  1. أزل مقتطف OneSignal وألغِ تسجيل service worker الخاص به صراحةً. ترك العامل القديم في مكانه يجعل عاملين يتنافسان على النطاق نفسه.
  2. ثبّت Pushwoosh Web Push SDK، مع وضع service worker الخاص بنا في جذر نطاقك.
  3. شغّله برمز تطبيقك ورمز API الخاص بالجهاز (apiToken)، ثم فعّل الاشتراك التلقائي (autoSubscribe: true، أو استدعِ Pushwoosh.subscribe()). دون الرمز، تعود استدعاءات الـ SDK بخطأ 401.

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

ثلاث حالات ينبغي الانتباه لها:

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

8. ما يمكن توقعه بعد الاستيراد

  • قد يظهر الجهاز مرتين لفترة. يحمل السجل المستورد معرّف OneSignal؛ وبمجرد أن يعمل الـ SDK الخاص بنا على الجهاز نفسه، يسجّله بمعرّفه الخاص. يُزال السجل القديم عبر تتبّع إلغاء التثبيت أو التنظيف التلقائي بعد 90 يوماً من عدم النشاط. توفير external_user_id يبقي السجلَّين تحت ملف تعريف مستخدم واحد في هذه الأثناء.
  • الرموز غير الصالحة تُحذف مع أول حملة لك. لا تكشف Apple وGoogle أن الرمز غير صالح إلا عند إرسال رسالة فعلياً، لذا فإن أول إرسال بعد الانتقال ينظّف قاعدتك أيضاً.
  • العدد المستورد لديك سيكون أقل من عداد OneSignal. الصفوف غير المشتركة، والصفوف ذات الرمز الفارغ، وصفوف إشعارات الويب مستبعدة عن قصد. يخبرك تقريرنا بالضبط عن عدد ما وقع في كل فئة.

9. أين تنقر

المسارات الدقيقة للعناصر التي تخصك، حتى لا يضطر أحد للبحث في لوحات التحكم.

المهمةمسار النقر
OneSignal: تصدير الجمهورAudience > Subscriptions > optional segment filter > column picker > Export
OneSignal: App ID وAPI keySettings > Keys & IDs. خذ App ID ومفتاح App API؛ يرسله طلب التصدير كـ Authorization: Key <App API key>
Apple: مفتاح APNs Auth Keydeveloper.apple.com > Certificates, Identifiers & Profiles > Keys > + > Apple Push Notification service (APNs) > Continue > Register > Download. ملف .p8 يُنزَّل مرة واحدة فقط؛ Key ID موجود في الشاشة نفسها، وTeam ID تحت Membership details.
Firebase: ملف JSON لحساب الخدمةconsole.firebase.google.com > your project > gear icon > Project settings > Service accounts > Generate new private key
Huawei: App ID وApp SecretAppGallery Connect > My projects > your project > your app > Project settings > App information
Pushwoosh: رمز التطبيق ورمز API الخاص بالجهازControl Panel > your application > Settings > API Access. يجب أن يملك الرمز صلاحية لذلك التطبيق.
موقعك: أزل العامل القديماحذف ملفات service worker الخاصة بـ OneSignal من جذر موقعك، وألغِ تسجيل العامل قيد التشغيل: navigator.serviceWorker.getRegistrations().then(rs => rs.forEach(r => r.unregister()))
المهمة
1 / 7
OneSignal: تصدير الجمهور
مسار النقر
Audience > Subscriptions > optional segment filter > column picker > Export
المهمة
2 / 7
OneSignal: App ID وAPI key
مسار النقر
Settings > Keys & IDs. خذ App ID ومفتاح App API؛ يرسله طلب التصدير كـ Authorization: Key <App API key>
المهمة
3 / 7
Apple: مفتاح APNs Auth Key
مسار النقر
developer.apple.com > Certificates, Identifiers & Profiles > Keys > + > Apple Push Notification service (APNs) > Continue > Register > Download. ملف .p8 يُنزَّل مرة واحدة فقط؛ Key ID موجود في الشاشة نفسها، وTeam ID تحت Membership details.
المهمة
4 / 7
Firebase: ملف JSON لحساب الخدمة
مسار النقر
console.firebase.google.com > your project > gear icon > Project settings > Service accounts > Generate new private key
المهمة
5 / 7
Huawei: App ID وApp Secret
مسار النقر
AppGallery Connect > My projects > your project > your app > Project settings > App information
المهمة
6 / 7
Pushwoosh: رمز التطبيق ورمز API الخاص بالجهاز
مسار النقر
Control Panel > your application > Settings > API Access. يجب أن يملك الرمز صلاحية لذلك التطبيق.
المهمة
7 / 7
موقعك: أزل العامل القديم
مسار النقر
احذف ملفات service worker الخاصة بـ OneSignal من جذر موقعك، وألغِ تسجيل العامل قيد التشغيل: navigator.serviceWorker.getRegistrations().then(rs => rs.forEach(r => r.unregister()))

قائمة تحقق قبل 1 أكتوبر

أبقِ هذه القائمة مفتوحة أثناء تقدمك. لا شيء هنا يحتاج نموذجاً للتنزيل.

  • تم إرسال ملف التصدير إلينا، أو تسليم app_id ومفتاح App API لنقوم بسحبه
  • تم إرسال بيانات اعتماد الإرسال: مفتاح APNs، ملف JSON لحساب خدمة FCM، مفاتيح HMS حيثما استُخدمت
  • تم إعداد قنوات البريد الإلكتروني والرسائل النصية معنا، إذا كنت تنقل هؤلاء المشتركين
  • تم إرجاع ورقة مراجعة الوسوم، وحذف الوسوم غير المستخدمة، وتحديد الوسوم متعددة القيم
  • تم إرسال فلاتر الشرائح إلينا (لقطات الشاشة مقبولة) لإعادة البناء
  • تم دمج Pushwoosh SDK في بناء تجريبي، وتم استلام إشعار فوري تجريبي
  • اكتمل الاستيراد، وتمت مراجعة تقريرنا بما استُورد وما تم تجاوزه
  • Web Push SDK فعّال مع إلغاء تسجيل service worker القديم، إذا كنت تستخدم إشعارات الويب
  • التسليم التجريبي نظيف على بناء إنتاجي
  • تم تحويل الإرسال إلى Pushwoosh، وتوقف الإرسال من OneSignal

النسخة A: iOS وAndroid الأصليان (native)

iOS. أضف Pushwoosh iOS SDK، ثم اضبط مفتاحين في Info.plist: Pushwoosh_APPID برمز تطبيقك في Pushwoosh وPW_API_TOKEN برمز API الخاص بالجهاز. استدعِ registerForPushNotifications() في الموضع الذي تُطلق فيه حالياً طلب إذن OneSignal، واتبع دليل البدء السريع لـ iOS للحصول على مقتطف التهيئة الدقيق لإصدار الـ SDK لديك. أزل OneSignal SDK واستدعاء التسجيل الخاص به حتى لا يطلب كلاهما رموزاً في آن واحد.

Android. أضف الاعتمادية com.pushwoosh:pushwoosh-firebase، ثم أضف إدخالَي meta-data داخل وسم <application> في AndroidManifest.xml: com.pushwoosh.appid برمز تطبيقك وcom.pushwoosh.apitoken برمز API الخاص بالجهاز. استدعِ Pushwoosh.getInstance().registerForPushNotifications() من منطق التهيئة لديك. يبقى إعداد Firebase لديك كما هو، مع google-services.json في المشروع؛ بيانات اعتماد FCM تذهب إلى Control Panel ضمن إعدادات منصة Android.

اضبط وسومك عبر setTags() ومعرّف المستخدم عبر setUserId() في النقاط نفسها التي استدعيت فيها مكافئاتهما في OneSignal، بحيث يستمر التصنيف بالعمل بعد الاستبدال.

النسخة B: Flutter وFlutterFlow

يغلّف FlutterFlow حزمة Pushwoosh Flutter SDK، لذا فإن الانتقال هو إعداد بالدرجة الأولى وليس كتابة كود.

  1. أضف حزمة Pushwoosh Flutter كاعتمادية مخصصة (custom dependency) في مشروعك.
  2. في إجراء مخصص (custom action)، شغّل الـ SDK برمز تطبيقك وسجّل للإشعارات الفورية، متبعاً دليل البدء السريع لـ Flutter الخاص بواجهة التهيئة الحالية.
  3. اضبط بيانات الاعتماد الأصلية (native) بالطريقة نفسها التي يتبعها أي تطبيق Flutter: Pushwoosh_APPID وPW_API_TOKEN في Info.plist لنظام iOS، وcom.pushwoosh.appid وcom.pushwoosh.apitoken في AndroidManifest.xml لنظام Android.
  4. أزل تكامل OneSignal حتى لا يسجّل الـ SDK-ان في آن واحد.
  5. طابق الوسوم ومعرّف المستخدم عبر setTags() وsetUserId() في إجراءاتك المخصصة.

النسخة C: React Native

  1. ثبّت الإضافة: npm install pushwoosh-react-native-plugin --save، ثم pod install لنظام iOS.
  2. شغّل التهيئة والتسجيل في المكوّن الجذر (root component) الخاص بك:
import Pushwoosh from 'pushwoosh-react-native-plugin';
Pushwoosh.init({ pw_appid: "YOUR_APPLICATION_CODE" });
Pushwoosh.register();
  1. أضف رمز API الخاص بالجهاز محلياً (natively): PW_API_TOKEN في Info.plist لنظام iOS، وcom.pushwoosh.apitoken كـ meta-data في AndroidManifest.xml لنظام Android. في Android، أبقِ google-services.json في المشروع — بيانات اعتماد FCM نفسها موجودة في Control Panel.
  2. أزل حزمة OneSignal الخاصة بـ React Native واستدعاء التهيئة الخاص بها.
  3. انقل وسومك ومعرّف المستخدم عبر setTags() وsetUserId() من واجهة برمجة الإضافة (plugin API).
تخطط للانتقال من OneSignal؟

تواصل مع فريقنا للحصول على المساعدة.

احجز مكالمة

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

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

أي أسئلة في أي مرحلة توجَّه إلى جهة اتصال الإعداد (onboarding) الخاصة بك في Pushwoosh. نفضّل الإجابة قبل الاستيراد على مطابقة الأرقام بعده.


Pushwoosh Team
Content Team في Pushwoosh
مشاركة

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

عرض الكل