С минимальными усилиями по программированию, Firebase In-App Messaging позволяет создавать, настраивать и таргетировать интерактивные сообщения для пользователей, используя возможности Google Analytics «из коробки» для привязки событий обмена сообщениями к реальным характеристикам, действиям и выборам пользователей. Благодаря дополнительной интеграции с SDK Firebase In-App Messaging , вы можете еще больше настроить поведение внутриприложенийных сообщений, реагируя на взаимодействие пользователей с сообщениями, запуская события сообщений вне платформы Analytics и позволяя пользователям контролировать обмен своими личными данными, связанными с обменом сообщениями.
Реагировать на взаимодействие пользователей с сообщениями в приложении.
С помощью действий вы можете использовать внутриприложные сообщения, чтобы направлять пользователей на веб-сайт или на определенный экран в вашем приложении.
Ваш код может реагировать на базовые взаимодействия (клики и закрытия), на показы (подтвержденные просмотры ваших сообщений) и отображать ошибки, зарегистрированные и подтвержденные 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 сможет их отобразить.
Включить доставку сообщений об отказе от подписки
По умолчанию Firebase In-App Messaging автоматически доставляет сообщения всем пользователям приложения, на которых вы ориентируетесь в кампаниях обмена сообщениями. Для доставки этих сообщений SDK Firebase In-App Messaging использует идентификаторы установки Firebase для идентификации приложения каждого пользователя. Это означает, что In-App Messaging должен отправлять клиентские данные, связанные с идентификатором установки, на серверы 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.