مع القليل من الجهد في البرمجة، تسمح لك خدمة Firebase In-App Messaging بإنشاء وتكوين واستهداف تفاعلات المستخدم الغنية، والاستفادة من إمكانات Google Analytics خارج الصندوق لربط أحداث المراسلة بخصائص المستخدم الفعلية وأنشطته واختياراته. من خلال بعض تكامل Firebase In-App Messaging SDK الإضافي، يمكنك تخصيص سلوك الرسائل داخل التطبيق بشكل أكبر، والاستجابة عندما يتفاعل المستخدمون مع الرسائل، وتشغيل أحداث الرسائل خارج إطار عمل Analytics، والسماح للمستخدمين بالتحكم في مشاركة بياناتهم الشخصية ذات الصلة لتفاعلات الرسائل.
الرد عندما يتفاعل المستخدمون مع الرسائل داخل التطبيق
من خلال الإجراءات، يمكنك استخدام رسائلك داخل التطبيق لتوجيه المستخدمين إلى موقع ويب أو شاشة معينة في تطبيقك.
يمكن أن تستجيب التعليمات البرمجية الخاصة بك للتفاعلات الأساسية (النقرات والرفض)، ولمرات الظهور (طرق العرض التي تم التحقق منها لرسائلك)، ولعرض الأخطاء التي تم تسجيلها وتأكيدها بواسطة SDK. على سبيل المثال، عندما تكون رسالتك مكونة من نموذج بطاقة، فقد ترغب في تتبع ومتابعة أي من عنواني URL الذي نقر عليه المستخدم على البطاقة.
قم بتطبيق DisplayDelegate للتعامل مع تفاعلات البطاقة
يمكنك تسجيل مندوب عرض الرسائل داخل التطبيق والذي سيتم الاتصال به عندما يكون هناك أي تفاعل مع رسالة داخل التطبيق. للقيام بذلك، قم بتطبيق فئة لكل بروتوكول InAppMessagingDisplayDelegate
وقم بتعيينها كخاصية مفوض على مثيل InAppMessaging
.
بافتراض مرة أخرى أنك تريد تتبع الرابط الذي نقر عليه المستخدم على رسالة على شكل بطاقة، حدد فئة تنفذ طريقة messageClicked
لكل بروتوكول DisplayDelegate
، وبالتالي توفر لك الوصول إلى الرابط الذي نقر عليه المستخدم.
سويفت
ارجع إلى مرجع تفويض عرض Swift للتعرف على مجموعة أساليب رد الاتصال التي يمكن تنفيذها ومعلماتها، بما في ذلك InAppMessagingAction.
// In CardActionFiamDelegate.swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// ...
}
func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
dismissType: FIRInAppMessagingDismissType) {
// ...
}
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 للتعرف على مجموعة أساليب رد الاتصال التي يمكن تنفيذها ومعلماتها، بما في ذلك 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 Analytics لأحداث Firebase، بدون أي تكامل إضافي. يمكنك أيضًا تشغيل الأحداث يدويًا برمجيًا باستخدام المشغلات البرمجية لـ Firebase In-App Messaging SDK.
في مؤلف حملة المراسلة داخل التطبيق، أنشئ حملة جديدة أو حدد حملة موجودة، وفي خطوة الجدولة لسير عمل الملحن، لاحظ معرف الحدث لحدث مراسلة تم إنشاؤه حديثًا أو موجود. بمجرد الإشارة إلى ذلك، استخدم تطبيقك لتشغيل الحدث من خلال معرفه.
سويفت
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
ج موضوعية
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
استخدم البيانات الوصفية المخصصة للحملة
في حملاتك، يمكنك تحديد بيانات مخصصة في سلسلة من أزواج المفاتيح/القيم. عندما يتفاعل المستخدمون مع الرسائل، تكون هذه البيانات متاحة لك، على سبيل المثال، لعرض رمز ترويجي.
سويفت
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
ج موضوعية
@implementation CardActionFiamDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
appData = inAppMessage.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 بتسليم الرسائل تلقائيًا إلى جميع مستخدمي التطبيق الذين تستهدفهم في حملات المراسلة. ولتسليم هذه الرسائل، تستخدم حزمة Firebase In-App Messaging SDK معرفات تثبيت Firebase لتحديد تطبيق كل مستخدم. وهذا يعني أن المراسلة داخل التطبيق يجب أن ترسل بيانات العميل، المرتبطة بمعرف التثبيت، إلى خوادم 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
.