باستخدام ميزة "الرسائل داخل التطبيق" في Firebase، يمكنك إنشاء تفاعلات غنية مع المستخدمين وإعدادها واستهدافها، وذلك بدون الحاجة إلى بذل مجهود كبير في كتابة الرموز البرمجية، والاستفادة من إمكانات Google Analytics الجاهزة للاستخدام، وذلك لربط أحداث المراسلة بخصائص المستخدمين وأنشطتهم وخياراتهم الفعلية. من خلال بعض عمليات دمج Firebase In-App Messaging حِزم SDK الإضافية، يمكنك تخصيص سلوك الرسائل داخل التطبيق بشكل أكبر، والردّ عندما يتفاعل المستخدمون مع الرسائل، وتفعيل أحداث الرسائل خارج إطار عمل Analytics، والسماح للمستخدمين بالتحكّم في مشاركة بياناتهم الشخصية المتعلقة بتفاعلات المراسلة.
الردّ عندما يتفاعل المستخدمون مع الرسائل داخل التطبيق
باستخدام الإجراءات، يمكنك استخدام الرسائل داخل التطبيق لتوجيه المستخدمين إلى موقع إلكتروني أو شاشة معيّنة في تطبيقك.
يمكن أن يستجيب الرمز البرمجي للتفاعلات الأساسية (عمليات النقر والإغلاق) ومرات الظهور (المشاهدات التي تم التحقّق منها لرسائلك)، كما يمكنه عرض الأخطاء التي سجّلتها حزمة SDK وأكّدتها. على سبيل المثال، عندما يتم إنشاء رسالتك كنافذة مشروطة من نوع Card، قد تحتاج إلى تتبُّع عنوان URL الذي نقر عليه المستخدم في البطاقة ومتابعته.
تنفيذ DisplayDelegate للتعامل مع تفاعلات البطاقة
يمكنك تسجيل مفوّض عرض للرسائل داخل التطبيق سيتم استدعاؤه عند حدوث أي تفاعل مع رسالة داخل التطبيق. لإجراء ذلك، عليك تنفيذ فئة وفقًا لبروتوكول InAppMessagingDisplayDelegate وتعيينها كخاصية مفوَّضة في مثيل InAppMessaging.
بافتراض أنّك تريد تتبُّع الرابط الذي نقر عليه المستخدم في رسالة بنمط البطاقة، حدِّد فئة تنفِّذ طريقة messageClicked وفقًا لبروتوكول DisplayDelegate، ما يتيح لك الوصول إلى الرابط الذي نقر عليه المستخدم.
Swift
راجِع مرجع مفوّض العرض في Swift لمعرفة مجموعة طرق معاودة الاتصال التي يمكن تنفيذها ومعلَماتها، بما في ذلك InAppMessagingAction.
// In CardActionFiamDelegate.swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// ...
}
func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
dismissType: InAppMessagingDismissType) {
// ...
}
func impressionDetected(for inAppMessage: InAppMessagingDisplayMessage) {
// ...
}
func displayError(for inAppMessage: InAppMessagingDisplayMessage, error: Error) {
// ...
}
}
// In AppDelegate.swift
// Register the delegate with the InAppMessaging instance
let myFiamDelegate = CardActionFiamDelegate()
InAppMessaging.inAppMessaging().delegate = myFiamDelegate;
Objective-C
راجِع مرجع مفوّض العرض في Objective-C لمعرفة مجموعة طرق معاودة الاتصال التي يمكن تنفيذها ومَعلماتها، بما في ذلك FIRInAppMessagingDisplayMessage.
// In CardActionFiamDelegate.h
@interface CardActionFiamDelegate : NSObject <FIRInAppMessagingDisplayDelegate>
@end
// In CardActionFiamDelegate.m
@implementation CardActionFiamDelegate
- (void)displayErrorForMessage:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage
error:(nonnull NSError *)error {
// ...
}
- (void)impressionDetectedForMessage:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
// ...
}
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
// ...
}
- (void)messageDismissed:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage
dismissType:(FIRInAppMessagingDismissType)dismissType {
// ...
}
@end
// In AppDelegate.m
CardActionFiamDelegate *myFiamDelegate = [CardActionFiamDelegate new];
[FIRInAppMessaging inAppMessaging].delegate = myFiamDelegate;
تشغيل الرسائل داخل التطبيق آليًا
تتيح لك ميزة Firebase In-App Messaging تلقائيًا عرض الرسائل داخل التطبيق استنادًا إلى أحداث "إحصاءات Google لبرنامج Firebase"، بدون الحاجة إلى أي عملية دمج إضافية. يمكنك أيضًا تشغيل الأحداث يدويًا آليًا باستخدام مشغّلات Firebase In-App Messaging الآلية في حزمة تطوير البرامج (SDK).
في أداة إنشاء "حملات الرسائل داخل التطبيق"، أنشئ حملة جديدة أو اختَر حملة حالية، وفي خطوة "الجدولة" من سير عمل أداة الإنشاء، سجِّل رقم تعريف حدث الرسائل الذي تم إنشاؤه حديثًا أو حدث الرسائل الحالي. بعد تدوين ذلك، يمكنك إعداد تطبيقك لتشغيل الحدث باستخدام رقم تعريفه.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
استخدام البيانات الوصفية المخصّصة للحملة
في حملاتك، يمكنك تحديد بيانات مخصّصة في سلسلة من أزواج المفتاح/القيمة. عندما يتفاعل المستخدمون مع الرسائل، تتوفّر لك هذه البيانات، مثلاً، لعرض رمز ترويجي.
Swift
class CardActionDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-C
@implementation ExampleCardActionDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
NSDictionary *appData = inAppMessage.appData;
NSLog(@"Message data: %@", appData);
// ...
}
@end
إيقاف الرسائل داخل التطبيق مؤقتًا
تعرض Firebase In-App Messaging الرسائل تلقائيًا عندما يتم استيفاء شرط التشغيل، بغض النظر عن الحالة الحالية للتطبيق. إذا كنت تريد إيقاف عرض الرسائل لأي سبب، مثلاً لتجنُّب مقاطعة سلسلة شاشات معالجة الدفع، استخدِم السمة messageDisplaySuppressed في حزمة SDK كما هو موضّح هنا في Objective-C:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
يؤدي ضبط السمة على YES إلى منع Firebase In-App Messaging من عرض الرسائل،
بينما يؤدي NO إلى إعادة تفعيل عرض الرسائل. تعيد حزمة تطوير البرامج (SDK) ضبط القيمة على NO
عند إعادة تشغيل التطبيق. تتجاهل حزمة SDK الرسائل التي تم إيقافها. يجب استيفاء شروط تشغيلها مرة أخرى عندما يكون الإيقاف المؤقت غير مفعّل، وذلك قبل أن يعرضها Firebase In-App Messaging.
تفعيل إرسال رسالة إيقاف الاشتراك
تُسلِّم ميزة Firebase In-App Messaging الرسائل تلقائيًا إلى جميع مستخدمي التطبيق الذين تستهدفهم في حملات الرسائل. ولإرسال هذه الرسائل، تستخدم حزمة تطوير البرامج (SDK) Firebase In-App Messaging معرّفات التثبيت Firebase لتحديد تطبيق كل مستخدم، ما يعني أنّه على In-App Messaging إرسال بيانات العميل المرتبطة بمعرّف التثبيت إلى خوادم Firebase. إذا أردت منح المستخدمين المزيد من التحكّم في البيانات التي يرسلونها، عليك إيقاف عملية جمع البيانات التلقائية وإتاحة الفرصة لهم للموافقة على مشاركة البيانات.
لإجراء ذلك، عليك إيقاف عملية التهيئة التلقائية لـ Firebase In-App Messaging، وتهيئة الخدمة يدويًا للمستخدمين الذين وافقوا على المشاركة:
أوقِف عملية التهيئة التلقائية باستخدام مفتاح جديد في ملف
Info.plist:- المفتاح:
FirebaseInAppMessagingAutomaticDataCollectionEnabled - القيمة:
NO
- المفتاح:
إعداد Firebase In-App Messaging للمستخدمين المحدّدين يدويًا:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;بعد ضبط
automaticDataCollectionEnabledعلىYES، تظل القيمة محفوظة عند إعادة تشغيل التطبيق، ما يؤدي إلى إلغاء القيمة فيInfo.plist. إذا أردت إيقاف عملية الإعداد مرة أخرى، مثلاً إذا اختار المستخدم إيقاف عملية جمع البيانات لاحقًا، اضبط القيمة علىNO.