With little to no coding effort, Firebase In-App Messaging allows you to create, configure and target rich user interactions, leveraging the capabilities of Google Analytics out of the box to tie messaging events to actual user characteristics, activities, and choices. With some additional Firebase In-App Messaging SDK integration, you can tailor the behavior of in-app messages even further, responding when users interact with messages, triggering message events outside the Analytics framework, and allowing users to control sharing of their personal data related to messaging interactions.
Реагировать на взаимодействие пользователей с сообщениями в приложении.
С помощью действий вы можете использовать внутриприложные сообщения, чтобы направлять пользователей на веб-сайт или на определенный экран в вашем приложении.
Ваш код может реагировать на базовые взаимодействия (клики и закрытия), на показы (подтвержденные просмотры ваших сообщений) и отображать ошибки, зарегистрированные и подтвержденные SDK. Например, когда ваше сообщение представлено в виде модального окна-карточки, вы можете отслеживать и уточнять, по какой из двух URL-адресов пользователь перешел по ссылке на карточке.
Реализуйте DisplayDelegate для обработки взаимодействия с карточками.
Вы можете зарегистрировать делегат для отображения сообщений в приложении, который будет вызываться при каждом взаимодействии с сообщением в приложении. Для этого реализуйте класс в соответствии с протоколом InAppMessagingDisplayDelegate и установите его в качестве свойства делегата в экземпляре InAppMessaging .
Предположим, вы хотите отслеживать, по какой ссылке пользователь перешел в сообщении в формате карточки. В этом случае определите класс, реализующий метод messageClicked в соответствии с протоколом DisplayDelegate , что предоставит вам доступ к ссылке, по которой перешел пользователь.
Быстрый
Для получения информации о наборе методов обратного вызова, которые можно реализовать, и их параметрах, включая 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;
Objective-C
Для получения информации о наборе методов обратного вызова, которые можно реализовать, и их параметрах, включая 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 позволяет запускать внутриприложные сообщения на основе событий Google Analytics для Firebase без дополнительной интеграции. Вы также можете вручную запускать события программно с помощью программных триггеров SDK Firebase In-App Messaging .
В редакторе кампаний внутри приложения создайте новую кампанию или выберите существующую, а на этапе планирования рабочего процесса редактора запишите идентификатор события (ID) для нового или существующего события обмена сообщениями. После этого настройте приложение так, чтобы оно запускало событие по его ID.
Быстрый
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Используйте пользовательские метаданные кампании
В своих кампаниях вы можете указывать пользовательские данные в виде пар ключ/значение. Когда пользователи взаимодействуют с сообщениями, эти данные становятся доступны вам, например, для отображения промокода.
Быстрый
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 сможет их отобразить.
Включить доставку сообщений об отказе от подписки
By default, Firebase In-App Messaging automatically delivers messages to all app users you target in messaging campaigns. To deliver those messages, the Firebase In-App Messaging SDK uses Firebase installation IDs to identify each user's app. This means that In-App Messaging has to send client data, linked to the installation ID, to Firebase servers. If you'd like to give users more control over the data they send, disable automatic data collection and give them a chance to approve data sharing.
Для этого необходимо отключить автоматическую инициализацию 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.