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


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

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

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

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

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

يمكنك تسجيل مفوّض عرض المراسلة داخل التطبيق الذي سيتم استدعاؤه عند حدوث أي تفاعل مع رسالة داخل التطبيق. لإجراء ذلك، نفِّذ فئة وفقًا لبروتوكول InAppMessagingDisplayDelegate واضبطها على أنّها السمة المفوَّضة في مثيل InAppMessaging.

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

Swift

ملاحظة: لا يتوفّر هذا المنتج على أجهزة 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;

Objective-C

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

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

Swift

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

// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Objective-C

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

// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

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

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

Swift

ملاحظة: لا يتوفّر هذا المنتج على أجهزة 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
	// ...
    }
}

Objective-C

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