تتيح لك خدمة "الرسائل داخل التطبيق" من Firebase إنشاء تفاعلات غنية مع المستخدمين وإعدادها واستهدافها، وذلك بدون الحاجة إلى بذل مجهود كبير في كتابة الرموز البرمجية، والاستفادة من إمكانات Google Analytics الجاهزة للاستخدام لربط أحداث المراسلة بخصائص المستخدمين وأنشطتهم وخياراتهم الفعلية. من خلال دمج Firebase In-App Messaging SDK إضافي، يمكنك تخصيص سلوك الرسائل داخل التطبيق بشكل أكبر، والردّ عندما يتفاعل المستخدمون مع الرسائل، وتفعيل أحداث الرسائل خارج إطار عمل Analytics، والسماح للمستخدمين بالتحكّم في مشاركة بياناتهم الشخصية المتعلقة بتفاعلات المراسلة.
الردّ عندما يتفاعل المستخدمون مع الرسائل داخل التطبيق
باستخدام الإجراءات، يمكنك استخدام الرسائل داخل التطبيق لتوجيه المستخدمين إلى موقع إلكتروني أو شاشة معيّنة في تطبيقك.
يمكن أن تستجيب التعليمات البرمجية للتفاعلات الأساسية (مثل النقرات وعمليات الإغلاق) ومرات الظهور (المشاهدات التي تم التحقّق منها لرسائلك)، كما يمكنها عرض الأخطاء التي سجّلتها حزمة SDK وأكّدتها. على سبيل المثال، عندما يتم إنشاء رسالتك كنافذة مشروطة في بطاقة، قد تحتاج إلى تتبُّع عنوان 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
.