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

1. مقدمة

الأهداف

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

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

b284c40acc99b994.png

ما ستتعلمه

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

ما الذي تريد تعلّمه من هذا الدرس العملي؟

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

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

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

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

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

المتطلبات

إذا لم تكن على دراية كبيرة بمنصة Flutter أو Firestore، عليك أولاً إكمال تجربة Firebase for Flutter العملية:

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

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

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

  • متصفّح من اختيارك، مثل Chrome
  • بيئة تطوير متكاملة (IDE) أو برنامج تعديل نصوص من اختيارك، مثل استوديو Android أو 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، كما هو موضّح في الدرس التطبيقي حول الترميز باستخدام Firestore وFlutter على منصات متعددة. لأغراض هذا الدرس البرمجي، أزلنا عملية الدمج مع الويب في هذا الفرع.

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

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

إنشاء مشروع Firebase

  1. سجِّل الدخول إلى وحدة تحكّم Firebase باستخدام حسابك على Google.
  2. انقر على الزر لإنشاء مشروع جديد، ثم أدخِل اسم المشروع (على سبيل المثال، FriendlyEats).
  3. انقر على متابعة.
  4. إذا طُلب منك ذلك، راجِع بنود Firebase واقبلها، ثم انقر على متابعة.
  5. (اختياري) فعِّل ميزة "المساعدة المستندة إلى الذكاء الاصطناعي" في وحدة تحكّم Firebase (المعروفة باسم "Gemini في Firebase").
  6. في هذا الدرس العملي، تحتاج إلى "إحصاءات Google" لاستخدام منتجات Firebase على النحو الأمثل، لذا أبقِ زر التبديل مفعّلاً لخيار "إحصاءات Google". اتّبِع التعليمات الظاهرة على الشاشة لإعداد "إحصاءات Google".
  7. انقر على إنشاء مشروع، وانتظِر إلى أن يتم توفير مشروعك، ثم انقر على متابعة.

تهانينا! لقد أنشأت للتو مشروعك الأول على 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

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

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"، ارجع إلى "الرسالة داخل التطبيق" وعدِّل حملتك الحالية.

d1fdc539dfcc6375.png

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

8e12d8f1f8f166dd.png

يمكننا بعد ذلك نشر التغييرات من خلال النقر على الزر "مراجعة".

4f7d6bd2960b3ef7.png

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

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

flutter run

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

a11febda5526263.png

7. إنشاء "حملة في السوق" و"حملة تستند إلى الجمهور"

البدء بهدف

يبدو تطبيق 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" (مرة أخرى ضمن قسم "اختبار A/B") لمقارنة بيانات الإحصاءات المباشرة من كلتا المجموعتَين. سيستغرق وصول البيانات بعض الوقت، لأنّنا بحاجة إلى انتظار أن يرى المستخدمون الرسائل داخل التطبيق ويتّخذوا الإجراءات اللازمة. في ما يلي الشكل الذي يمكن أن تبدو عليه نتائجك بعد جمع بيانات كافية:

8fa8a0edcd8a8ad4.png

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

8. تهانينا

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

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

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

مزيد من المعلومات

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

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