تجربتك الأولى للمراسلة داخل التطبيق

1- مقدمة

الأهداف

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

بعد الانتهاء، ستتمكّن من تصميم تجارب المراسلة داخل التطبيق وتنفيذها لزيادة تفاعل المستخدمين بفعالية لأي تطبيق iOS أو Android مع كتابة الحد الأدنى من الرموز البرمجية.

b284c40acc99b994.png

ما ستتعرّف عليه

  • كيفية استخدام ميزة "المراسلة داخل التطبيق من Firebase" (FIAM) في تطبيق Flutter
  • كيفية تخصيص مظهر رسائلك داخل التطبيق
  • كيفية تصميم تجربة مراسلة داخل التطبيق وتنفيذها في تطبيقك
  • كيفية تفسير نتائج تجربة المراسلة داخل التطبيق

ما الذي تريد تعلّمه من هذا الدليل التعليمي حول البرمجة؟

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

المراسلة داخل التطبيق من Firebase

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

اختبار A/B من Firebase

تستند ميزة "اختبار A/B من Firebase" إلى أداة "أدوات تحسين الأداء من Google"، وهي تساعدك في تحسين تجربة تطبيقك من خلال تسهيل إجراء تجارب المنتجات والتسويق وتحليلها وتنفيذها على نطاق واسع. تمنحك هذه الميزة إمكانية اختبار التغييرات في واجهة مستخدم تطبيقك أو ميزاته أو حملات التفاعل لمعرفة ما إذا كانت هذه التغييرات تؤثر فعليًا في المقاييس الرئيسية (مثل الأرباح والاحتفاظ بالمستخدمين) قبل طرحها على نطاق واسع.

المتطلبات

إذا لم تكن على دراية كبيرة بخدمة Flutter أو Firestore، أكمِل أولاً Firebase لتطبيقات Flutter:

يمكنك تنفيذ هذا الدليل التعليمي عن طريق استخدام أي من الأجهزة التالية:

  • جهاز أصلي (Android أو iOS) متصل بالكمبيوتر وتم ضبطه على وضع المطوّر
  • محاكي iOS (يتطلب ذلك تثبيت أدوات Xcode).
  • محاكي Android (يتطلب الإعداد في Android Studio).

بالإضافة إلى ما سبق، ستحتاج أيضًا إلى ما يلي:

  • متصفّح من اختيارك، مثل Chrome
  • بيئة تطوير متكاملة أو محرِّر نصوص من اختيارك، مثل Android Studio أو VS Code تم ضبطهما باستخدام المكوّنات الإضافية Dart وFlutter ننصحك باستخدام VS Code مع Flutter.
  • أحدث إصدار ثابت من Flutter (أو الإصدار التجريبي إذا كنت تحب استخدام الإصدارات الأحدث)
  • حساب Google، مثل حساب Gmail، لإنشاء مشروعك على Firebase وإدارته
  • نموذج التعليمات البرمجية في ورشة التعلم اطّلِع على الخطوة التالية لمعرفة كيفية الحصول على الرمز.

2- الإعداد

الحصول على الرمز

استنسِخ مستودع GitHub من سطر الأوامر:

git clone https://github.com/FirebaseExtended/codelab-friendlyeats-flutter.git friendlyeats-flutter

سيتم استنساخ نموذج الرمز البرمجي في الدليل friendlyeats-flutter. من الآن فصاعدًا، احرص على تنفيذ الأوامر من هذا الدليل:

cd friendlyeats-flutter

بعد ذلك، انتقِل إلى دليل codelab واختَر الفرع fiam-abt:

git checkout fiam-abt

يحتوي هذا الفرع على كل الرموز البرمجية اللازمة لهذا الدليل التعليمي حول الرموز البرمجية، بما في ذلك نسخة مكتملة في مجلد done. تحتوي الفروع الأخرى في هذا المستودع على رمز لإنشاء تطبيق FriendlyEats، كما هو موضّح في الدرس التطبيقي حول ترميز Flutter لنظام Firestore على منصات متعددة. لأغراض هذا الدليل التعليمي حول الرموز البرمجية، أزلنا عملية دمج الويب في هذا الفرع.

استيراد التطبيق النموذجي

افتح الدليل codelab-fiam-abt أو استورِده إلى بيئة تطوير البرامج المتكاملة (IDE) المفضّلة لديك. يحتوي هذا الدليل على الرمز البرمجي الأوّلي للدرس التطبيقي حول الترميز الذي يتألف من تطبيق لاقتراح المطاعم. ومن خلال هذا الدرس التطبيقي، ستُجري تجربة للمراسلة داخل التطبيق لمستخدمي هذا التطبيق.

إنشاء مشروع على Firebase

  1. في وحدة تحكّم Firebase، انقر على إضافة مشروع، ثمّ أدخِل اسم "FriendlyEats" لمشروع Firebase. تذكَّر رقم تعريف مشروعك على Firebase (أو انقر على رمز تعديل لضبط رقم التعريف المفضّل لمشروعك).
  2. تأكَّد من تفعيل "إحصاءات Google" للمشروع، ثم انقر على متابعة.
  3. انقر على إنشاء مشروع.

تهانينا! لقد أنشأت للتو مشروعك الأول على Firebase. يمكنك الآن النقر على اسم المشروع للدخول إلى وحدة التحكّم.

بعد ذلك، يمكنك الاطّلاع على كيفية ضبط الإعدادات اللازمة وتفعيلها باستخدام وحدة تحكّم Firebase.

تفعيل المصادقة المجهولة

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

لتفعيل ميزة تسجيل الدخول بدون إظهار الهوية:

  1. في وحدة تحكّم Firebase، ابحث عن المصادقة في شريط التنقّل الأيمن.
  2. انقر على المصادقة، ثم انقر على البدء واختَر علامة التبويب طريقة تسجيل الدخول (أو انتقِل مباشرةً إلى وحدة تحكّم Firebase).
  3. فعِّل مقدّم خدمة تسجيل الدخول غير المعروف، ثم انقر على حفظ.

fee6c3ebdf904459.png

يتيح تفعيل ميزة تسجيل الدخول بدون إظهار الهوية للتطبيق تسجيل دخول المستخدمين بدون إشعارهم عند وصولهم إلى التطبيق. لمزيد من المعلومات، يمكنك الاطّلاع على مستندات المصادقة بدون إظهار الهوية لنظامَي التشغيل Android وiOS.

إعداد Cloud Firestore

يستخدم التطبيق Cloud Firestore لحفظ معلومات المطاعم وتقييماتها وتلقّيها.

في ما يلي كيفية إعداد Cloud Firestore في مشروعك على Firebase:

  1. في اللوحة اليمنى من "وحدة تحكّم Firebase"، وسِّع الإنشاء، ثم اختَر قاعدة بيانات Firestore.
  2. انقر على إنشاء قاعدة بيانات.
  3. اترك رقم تعريف قاعدة البيانات مضبوطًا على (default).
  4. اختَر موقعًا لقاعدة بياناتك، ثم انقر على التالي.
    بالنسبة إلى التطبيق الحقيقي، عليك اختيار موقع قريب من المستخدمين.
  5. انقر على البدء في وضع الاختبار. اقرأ بيان إخلاء المسؤولية عن قواعد الأمان.
    في وقت لاحق من هذا الدليل التعليمي، ستضيف قواعد أمان لتأمين بياناتك. لا توزِّع تطبيقًا علنًا أو تعرضه بدون إضافة قواعد أمان لقاعدة بياناتك.
  6. انقر على إنشاء.

3- إعدادات Firebase الخاصة بالأجهزة الجوّالة

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

  • تسجيل المنصة المطلوبة في مشروع Firebase
  • نزِّل ملف الإعداد المخصّص للمنصة وأضِفه إلى الرمز.

في الدليل الرئيسي لتطبيق Flutter، هناك دليلان فرعيان باسم ios وandroid. تحتوي هذه الدلائل على ملفات الضبط الخاصة بالنظام الأساسي لكل من iOS وAndroid على التوالي.

a35458e5c0dd0acf.png ضبط إعدادات iOS

في وحدة تحكّم Firebase، اختَر إعدادات المشروع في أعلى شريط التنقّل الأيمن، ثم انقر على زر iOS ضمن تطبيقاتك في صفحة الإعدادات العامة.

من المفترض أن يظهر لك مربّع الحوار التالي:

c42139f18fb9a2ee.png

  1. القيمة المهمة التي يجب تقديمها هي معرّف حزمة iOS. يمكنك الحصول على معرّف الحزمة من خلال تنفيذ الخطوات الثلاث التالية.
  1. في أداة سطر الأوامر، انتقِل إلى الدليل الأعلى لتطبيق Flutter.
  2. شغِّل الأمر open ios/Runner.xcworkspace لفتح Xcode.
  1. في Xcode، انقر على Runner في أعلى اللوحة اليسرى، لإظهار علامة التبويب General (عام) في اللوحة اليمنى، كما هو موضّح. انسخ قيمة معرّف الحزمة.

9733e26be329f329.png

  1. ارجع إلى مربّع حوار Firebase، والصِق معرّف الحِزمة المنسوخ في حقل معرّف حِزمة iOS، ثم انقر على تسجيل التطبيق.
  1. في Firebase، اتّبِع التعليمات لتنزيل ملف الإعداد GoogleService-Info.plist.
  2. ارجع إلى Xcode. يُرجى ملاحظة أنّ المجلد Runner يحتوي على مجلد فرعي يُسمى أيضًا Runner (كما هو موضّح في الصورة السابقة).
  3. اسحب ملف GoogleService-Info.plist (الذي نزّلته للتو) إلى المجلد الفرعي Runner.
  4. في مربّع الحوار الذي يظهر في Xcode، انقر على إنهاء.
  5. ارجع إلى وحدة تحكُّم Firebase. في خطوة الإعداد، انقر على التالي، وتخطّى الخطوات المتبقية، ثم ارجع إلى الصفحة الرئيسية في وحدة تحكّم Firebase.

لقد انتهيت من ضبط تطبيق Flutter لنظام التشغيل iOS.

84e0b3199bef6d8a.pngضبط إعدادات Android

  1. في وحدة تحكُّم Firebase، اختَر إعدادات المشروع في أعلى شريط التنقّل الأيمن، ثم انقر على الزر Android ضمن تطبيقاتك في صفحة الإعدادات العامة.

من المفترض أن يظهر لك مربّع الحوار التالي : 8254fc299e82f528.png

  1. القيمة المهمة التي يجب تقديمها هي اسم حزمة Android. يمكنك الحصول على اسم الحزمة عند تنفيذ الخطوتَين التاليتَين:
  1. في دليل تطبيق Flutter، افتح الملف android/app/src/main/AndroidManifest.xml.
  2. في العنصر manifest، ابحث عن قيمة السلسلة للسمة package. هذه القيمة هي اسم حزمة Android (مثل com.yourcompany.yourproject). انسخ هذه القيمة.
  3. في مربّع حوار Firebase، الصِق اسم الحزمة المنسوخ في حقل اسم حزمة Android.
  4. لا تحتاج إلى شهادة SHA-1 لتوقيع تصحيح الأخطاء في هذا الدليل التعليمي. اترك هذا الحقل فارغًا.
  5. انقر على تسجيل التطبيق.
  6. في Firebase، اتّبِع التعليمات لتنزيل ملف الإعداد google-services.json.
  7. انتقِل إلى دليل تطبيق Flutter، وانقل ملف google-services.json (الذي نزّلته للتو) إلى الدليل android/app.
  8. في "وحدة تحكّم Firebase"، تخطّى الخطوات المتبقية ثم ارجع إلى الصفحة الرئيسية لوحدة تحكّم Firebase.
  9. سبق أن تم تسجيل جميع إعدادات Gradle. إذا كان تطبيقك لا يزال قيد التشغيل، عليك إغلاقه وإعادة إنشائه للسماح لـ Gradle بتثبيت التبعيات.

لقد انتهيت من ضبط إعدادات تطبيق Flutter لأجهزة Android.

4. تشغيل تطبيقك على الجهاز

أصبح بإمكانك بدء العمل على تطبيقك. أولاً، شغِّل التطبيق على الجهاز. يمكنك الآن تشغيل التطبيق في أي نظام أساسي أعددته (ويكون لديك جهاز ومحاكي متاحان له).

يمكنك معرفة الأجهزة المتاحة باستخدام الأمر التالي:

flutter devices

استنادًا إلى الأجهزة المتاحة، يظهر ناتج الأمر السابق على النحو التالي:

7d44d7c0837b3e8e.png

الآن، يمكنك تشغيل التطبيق على الجهاز باستخدام الأمر التالي:

flutter run

من المفترض أن تظهر لك الآن نسخة من تطبيق FriendlyEats مرتبطة بمشروعك على Firebase.

يتصل التطبيق تلقائيًا بمشروعك على Firebase ويُسجّلك بدون إشعارك كمستخدم مجهول.

5- إنشاء رسالتك الأولى واختبارها

دمج ميزة "المراسلة داخل التطبيق" من Firebase في تطبيقك

لا يتطلّب الدمج الأساسي لخدمة "المراسلة داخل التطبيق" أيّ رموز برمجية، وكل ما عليك فعله هو إضافة التبعية وتكون جاهزًا للبدء. أضِف التبعية التالية إلى ملف pubspec.yaml.

dependencies:
  # ...
  firebase_in_app_messaging: ^0.4.0
  # ...

كتابة رسالة في "وحدة تحكُّم Firebase"

بعد إضافة واجهة برمجة التطبيقات لموافقة المستخدمين في التطبيق، لننشئ رسالة يتم عرضها عند فتح التطبيق لأول مرة.

لإنشاء رسالتك الأولى:

  1. في قسم التفاعل في وحدة تحكّم Firebase، انقر على الرسائل داخل التطبيق.
  2. انقر على إنشاء حملتك الأولى في لوحة "المراسلة داخل التطبيق".

4fec02395f89f2a8.png

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

59845004afc26847.png

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

3f1eb7a327a50265.png

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

8dc5cea0a4c79008.png

بعد الانتهاء من تحديد الموعد، يمكننا نشر الرسالة. انقر على "مراجعة" ومن المفترض أن يظهر لك ما يلي:

5bbc987bf63d1f48.png

عرض الرسالة في تطبيقك

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

6- دمج "إحصاءات Firebase" لتشغيل الرسائل المتقدّمة

دمج "إحصاءات Firebase" في تطبيقك

لفهم كيفية تفاعل المستخدمين مع تطبيقنا وعرض رسالة داخل التطبيق استنادًا إلى أفعالهم، سنضيف الآن حدثًا في "إحصاءات Google" عندما ينقر المستخدم على مطعم.

  1. إضافة التبعية لخدمة "إحصاءات Firebase" إلى Flutter في pubspec.yaml
dependencies:
  # ...
  firebase_analytics: ^1.0.1
  # ...
  1. استيراد الإحصاءات في home_page.dart
import 'package:firebase_analytics/firebase_analytics.dart';
  1. أضِف مثيلًا من "إحصاءات Firebase" إلى فئة HomePage في home_page.dart.
class HomePage extends StatefulWidget {
  static const route = '/';
  static FirebaseAnalytics analytics = FirebaseAnalytics();
  HomePage({Key key}) : super(key: key);
  @override
  _HomePageState createState() => _HomePageState();
}
  1. شغِّل حدث إحصاءات عندما ينقر المستخدِم على بطاقة مطعم في home_page.dart.
onRestaurantPressed: (id) async {
  await HomePage.analytics.logEvent(name: 'click_restaurant');
  Navigator.pushNamed(context,
                      RestaurantPage.route,
                      arguments: RestaurantPageArguments(id: id));
})

تعديل رسالتك لتشغيلها عند حدوث حدث إحصاءات

والآن بعد أن أصبح لدينا الحدث "click_restaurant"، لنفعِّل رسالتنا داخل التطبيق استنادًا إلى ذلك بدلاً من وقت فتح المستخدم للتطبيق.

في Firebase Console، ارجع إلى "الرسالة داخل التطبيق" وعدِّل حملتك الحالية.

d1fdc539dfcc6375.png

الآن، غيِّر قسم تحديد الموعد لتشغيل الرسالة من الحدث الجديد.

8e12d8f1f8f166dd.png

من هناك، يمكننا نشر التغييرات من خلال النقر على الزر "مراجعة".

4f7d6bd2960b3ef7.png

اختبار العامل المشغِّل في التطبيق

في هذه المرحلة، من المفترض أن تتمكّن من تشغيل تطبيقك باستخدام

flutter run

وعند النقر على مطعم، من المفترض أن تظهر لك رسالتك داخل التطبيق.

a11febda5526263.png

7- إنشاء حملة FIAM+ABT

البدء بهدف

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

أولاً، لنحدِّد حدث الإحالة الناجحة

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

  1. استورِد "إحصاءات Firebase" كما في السابق وأضِف مثيلًا من "إحصاءات Google" إلى RestaurantPage في restaurant_page.dart.
class RestaurantPage extends StatefulWidget {
  static const route = '/restaurant';
  static FirebaseAnalytics analytics = FirebaseAnalytics();
  final String _restaurantId;
  RestaurantPage({Key key, @required String restaurantId})
      : _restaurantId = restaurantId,
        super(key: key);
  @override
  _RestaurantPageState createState() =>
      _RestaurantPageState(restaurantId: _restaurantId);
}
  1. لنبدأ الآن بتشغيل حدث في _onCreateReviewPressed عند حفظ مراجعة في restaurant_page.dart.
 if (newReview != null) {
   // Log successful review
   await RestaurantPage.analytics.logEvent(name: 'review_success');
   // Save the review
   return data.addReview(restaurantId: _restaurant.id, review: newReview);
 }

ضبط اختبار A/B في وحدة تحكّم Firebase

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

يمكن أن يؤدي كلا الأسلوبَين إلى زيادة عدد مرّات تقديم المستخدمين لمراجعات للمطاعم على FriendlyEats، ويبدو أنّ تقديم قسيمة يمكن أن يكون له تأثير أقوى في هذه الحالة. ولكن، ما مدى احتمالية أن يكتب المستخدمون مراجعة عند تقديم هذا القسيمة؟ هل يستحقّ الشراء باستخدام القسيمة في المقام الأول؟ لتحديد ذلك، سنُجري تجربة للمراسلة داخل التطبيق. يمكننا استخدام اختبار A/B من Firebase لعرض إحدى رسائلنا داخل التطبيق عشوائيًا للمستخدمين، وقياس تأثير ذلك في سلوك المستخدمين، تمامًا مثل التجربة السريرية. والأفضل من ذلك، يمكن إجراء ذلك بالكامل من خلال وحدة تحكّم Firebase، بدون الحاجة إلى رمز.

لإنشاء تجربتك الأولى للمراسلة داخل التطبيق، اتّبِع الخطوات التالية:

  1. في قسم التفاعل في وحدة تحكُّم Firebase، انقر على اختبار A/B.
  2. انقر على إنشاء تجربة، واختَر إجراء تجربة على الرسائل داخل التطبيق. سينقلك هذا الإجراء إلى أداة إنشاء التجارب الموضّحة أدناه.

a792dfd4f82fee9c.png

أدخِل اسمًا لتجربتك ووصفًا اختياريًا لها.

  1. في الخطوة التالية، ستُنشئ الرسائل المختلفة داخل التطبيق التي سترسلها إلى المستخدمين في تجربتك. الرسالة الأولى داخل التطبيق التي سننشئها هي "القيمة الأساسية" أو السعر الأساسي لتجربتنا. يمكننا استخدام هذه الرسالة البسيطة التي تطلب إجراء مراجعة:

50e3eb946c56501a.png

  1. والآن بعد أن أصبح لدينا مرجع، سننشئ الآن صيغة مختلفة، وهي الرسالة داخل التطبيق التي تقدّم للمستخدمين رمز قسيمة لتشجيعهم على كتابة مراجعة. لا يظهر هذا النص بالكامل في المعاينة أدناه، ولكن عنوان الرسالة هو "الحصول على قسيمة وكتابة مراجعة"، ونص الرسالة هو "في المرة القادمة التي تتناول فيها الطعام في مطعم Burrito Cafe، استخدِم رمز القسيمة FRIENDLYEATS-15 عند الدفع للحصول على خصم% 15 على طلبك. ولا تنسَ كتابة مراجعة بعد ذلك". نأمل أن يدفع ذلك بعض المستخدمين إلى زيارة مطعم Burrito Cafe.

bed9182080bebb41.png

في الخطوة التالية، سنستهدف تطبيقنا ونضبط "مستوى الظهور". هذه هي النسبة المئوية للمستخدمين المؤهَّلين (الذين يستوفون شروط الاستهداف/التشغيل) الذين ستظهر لهم إحدى الرسائل في التجربة. يمكننا ضبط هذه القيمة على% 100 في هذا المثال، لأنّنا نريد أن يرى جميع المستخدِمين إما السعر الأساسي أو سعر الرمز الترويجي. إذا كنت تريد إنشاء مجموعة مرجعية لا تظهر لها أي رسالة داخل التطبيق على الإطلاق، يمكنك تقليل نسبة الظهور هذه.

bd96bf5798d227f1.png

  1. بعد ذلك، عليك تحديد بعض الأهداف للتجربة. هذه هي نتيجة التجربة التي نريد قياسها. سنضبط هذا الإجراء على أنّه حدث review_success الإحصاءات الذي حدّدناه في القسم السابق، لأنّنا نريد معرفة تأثير رسائلنا المختلفة داخل التطبيق في المستخدمين الذين ينشرون مراجعات عن المطاعم. eb89d3b9f89ab43b.png
  2. بالنسبة إلى الجدولة، سنسمح ببدء الحملة على الفور، وسنضبط click_restaurant كشرط التفعيل، لكي تظهر للمستخدمين إحدى الرسالتَين داخل التطبيق عند النقر على مطعم.

c57be430d41bfcad.png

  1. كل ما عليك فعله الآن هو مراجعة تجربتنا والنقر على بدء التجربة. بعد ذلك، يمكننا الاسترخاء والانتظار إلى أن تظهر البيانات من تجربتنا.

566af8bace30c67.png

الاطّلاع على عملية جمع البيانات في الوقت الفعلي

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

8fa8a0edcd8a8ad4.png

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

8- تهانينا

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

الخطوة التالية

اطّلِع على بعض هذه الدروس التطبيقية حول الترميز...

مراجع إضافية

لقد ألقينا نظرة سريعة على ما يمكن تنفيذه باستخدام ميزتَي "المراسلة داخل التطبيق" و"اختبار A/B من Firebase". يمكنك الاطّلاع على هذه المقالات لمعرفة المزيد من المعلومات:

مستندات المرجع