رفتار پیام‌های پیام‌رسانی درون‌برنامه Firebase را تغییر دهید


با کمترین تلاش کدنویسی یا بدون هیچ تلاشی، پیام‌رسانی درون‌برنامه‌ای فایربیس به شما امکان می‌دهد تعاملات غنی با کاربر را ایجاد، پیکربندی و هدف‌گذاری کنید و با استفاده از قابلیت‌های Google Analytics رویدادهای پیام‌رسانی را به ویژگی‌ها، فعالیت‌ها و انتخاب‌های واقعی کاربر مرتبط کنید. با ادغام SDK Firebase In-App Messaging ، می‌توانید رفتار پیام‌های درون‌برنامه‌ای را حتی بیشتر تنظیم کنید، به تعامل کاربران با پیام‌ها پاسخ دهید، رویدادهای پیام را خارج از چارچوب Analytics فعال کنید و به کاربران اجازه دهید اشتراک‌گذاری داده‌های شخصی خود را که مربوط به تعاملات پیام‌رسانی است، کنترل کنند.

پاسخ دادن به کاربران هنگام تعامل با پیام‌های درون برنامه‌ای

با استفاده از اکشن‌ها می‌توانید از پیام‌های درون‌برنامه‌ای خود برای هدایت کاربران به یک وب‌سایت یا صفحه خاصی در برنامه‌تان استفاده کنید.

کد شما می‌تواند به تعاملات اولیه (کلیک‌ها و رد شدن‌ها)، به نمایش‌ها (بازدیدهای تأیید شده از پیام‌های شما) پاسخ دهد و خطاهای ثبت شده و تأیید شده توسط SDK را نمایش دهد. به عنوان مثال، وقتی پیام شما به عنوان یک کارت مودال نوشته شده است، ممکن است بخواهید ردیابی و پیگیری کنید که کاربر روی کدام یک از دو URL کلیک کرده است.

پیاده‌سازی یک DisplayDelegate برای مدیریت تعاملات کارت

شما می‌توانید یک نماینده نمایش پیام درون برنامه‌ای ثبت کنید که هر زمان که تعاملی با یک پیام درون برنامه‌ای وجود داشته باشد، فراخوانی می‌شود. برای انجام این کار، یک کلاس را طبق پروتکل InAppMessagingDisplayDelegate پیاده‌سازی کنید و آن را به عنوان ویژگی نماینده در نمونه InAppMessaging تنظیم کنید.

دوباره فرض کنید که می‌خواهید پیگیری کنید که کاربر روی کدام لینک روی یک پیام به سبک Card کلیک کرده است، کلاسی تعریف کنید که متد messageClicked را طبق پروتکل DisplayDelegate پیاده‌سازی کند و در نتیجه به شما امکان دسترسی به لینکی که کاربر روی آن کلیک کرده است را بدهد.

سویفت

توجه: این محصول در macOS، Mac Catalyst، App Clip یا watchOS در دسترس نیست.

برای مجموعه متدهای فراخوانی قابل پیاده‌سازی و پارامترهای آنها، از جمله InAppMessagingAction، به مرجع نماینده نمایش Swift مراجعه کنید.


// 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;

هدف-سی

توجه: این محصول در macOS، Mac Catalyst، App Clip یا watchOS در دسترس نیست.

برای مجموعه متدهای فراخوانی قابل پیاده‌سازی و پارامترهای آنها، از جمله FIRInAppMessagingDisplayMessage، به مرجع نماینده نمایش Objective-C مراجعه کنید.


// 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 به‌طور پیش‌فرض به شما امکان می‌دهد پیام‌های درون‌برنامه‌ای را با استفاده از گوگل آنالیتیکس برای رویدادهای فایربیس، بدون هیچ ادغام اضافی، فعال کنید. همچنین می‌توانید رویدادها را به‌صورت دستی و برنامه‌ریزی‌شده با استفاده از محرک‌های برنامه‌ریزی‌شده‌ی SDK Firebase In-App Messaging فعال کنید.

در بخش آهنگساز کمپین پیام‌رسانی درون‌برنامه‌ای، یک کمپین جدید ایجاد کنید یا یک کمپین موجود را انتخاب کنید و در مرحله زمان‌بندی گردش کار آهنگساز، شناسه رویداد یک رویداد پیام‌رسانی تازه ایجاد شده یا موجود را یادداشت کنید. پس از یادداشت، برنامه خود را برای فعال کردن رویداد با استفاده از شناسه آن تنظیم کنید.

سویفت

توجه: این محصول در 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 CardActionDelegate : NSObject, InAppMessagingDisplayDelegate {

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

هدف-سی

توجه: این محصول در macOS، Mac Catalyst، App Clip یا watchOS در دسترس نیست.
@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 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 تنظیم کنید.