تعديل سلوك رسائل Firebase In-App Messaging

مع القليل من الجهد في البرمجة، تسمح لك خدمة Firebase In-App Messaging بإنشاء وتكوين واستهداف تفاعلات المستخدم الغنية، والاستفادة من إمكانات Google Analytics خارج الصندوق لربط أحداث المراسلة بخصائص المستخدم الفعلية وأنشطته واختياراته. من خلال بعض تكامل Firebase In-App Messaging SDK الإضافي، يمكنك تخصيص سلوك الرسائل داخل التطبيق بشكل أكبر، والاستجابة عندما يتفاعل المستخدمون مع الرسائل، وتشغيل أحداث الرسائل خارج إطار عمل Analytics، والسماح للمستخدمين بالتحكم في مشاركة بياناتهم الشخصية ذات الصلة لتفاعلات الرسائل.

الرد عندما يتفاعل المستخدمون مع الرسائل داخل التطبيق

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

يمكن أن تستجيب التعليمات البرمجية الخاصة بك للتفاعلات الأساسية (النقرات والرفض)، ولمرات الظهور (طرق العرض التي تم التحقق منها لرسائلك)، ولعرض الأخطاء التي تم تسجيلها وتأكيدها بواسطة SDK. على سبيل المثال، عندما تكون رسالتك مكونة من نموذج بطاقة، فقد ترغب في تتبع ومتابعة أي من عنواني URL الذي نقر عليه المستخدم على البطاقة.

قم بتطبيق DisplayDelegate للتعامل مع تفاعلات البطاقة

يمكنك تسجيل مندوب عرض الرسائل داخل التطبيق والذي سيتم الاتصال به عندما يكون هناك أي تفاعل مع رسالة داخل التطبيق. للقيام بذلك، قم بتطبيق فئة لكل بروتوكول InAppMessagingDisplayDelegate وقم بتعيينها كخاصية مفوض على مثيل InAppMessaging .

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

سويفت

ملاحظة: هذا المنتج غير متوفر على أهداف macOS أو Mac Catalyst أو App Clip أو watchOS.

ارجع إلى مرجع تفويض عرض 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;

ج موضوعية

ملاحظة: هذا المنتج غير متوفر على أهداف macOS أو Mac Catalyst أو App Clip أو watchOS.

ارجع إلى مرجع تفويض عرض 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.

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

سويفت

ملاحظة: هذا المنتج غير متوفر على أهداف macOS أو Mac Catalyst أو App Clip أو watchOS.
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

ج موضوعية

ملاحظة: هذا المنتج غير متوفر على أهداف macOS أو Mac Catalyst أو App Clip أو watchOS.
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

استخدم البيانات الوصفية المخصصة للحملة

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

سويفت

ملاحظة: هذا المنتج غير متوفر على أهداف macOS أو Mac Catalyst أو App Clip أو watchOS.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
	// Get data bundle from the inapp message
	let appData = inAppMessage.appData
	// ...
    }
}

ج موضوعية

ملاحظة: هذا المنتج غير متوفر على أهداف macOS أو Mac Catalyst أو App Clip أو watchOS.
@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، وتهيئة الخدمة يدويًا للمستخدمين المشتركين:

  1. قم بإيقاف تشغيل التهيئة التلقائية باستخدام مفتاح جديد في ملف Info.plist الخاص بك:

    • المفتاح: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • القيمة: NO
  2. تهيئة Firebase In-App Messaging للمستخدمين المحددين يدويًا:

    // Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO
    // in Info.plist
    [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
    
    

    بمجرد تعيين automaticDataCollectionEnabled على YES ، تستمر القيمة خلال عمليات إعادة تشغيل التطبيق، مما يؤدي إلى تجاوز القيمة الموجودة في Info.plist . إذا كنت ترغب في تعطيل التهيئة مرة أخرى، على سبيل المثال، إذا قام المستخدم بإلغاء الاشتراك في المجموعة لاحقًا، فقم بتعيين الخاصية على NO .