Firebase In-App Messaging позволяет создавать, настраивать и таргетировать интерактивные пользовательские взаимодействия практически без написания кода, используя готовые возможности Google Analytics для привязки событий обмена сообщениями к реальным характеристикам, действиям и выборам пользователя. Благодаря дополнительной интеграции Firebase In-App Messaging SDK вы можете ещё лучше настроить поведение сообщений в приложении, реагируя на взаимодействие пользователей с сообщениями, инициируя события обмена сообщениями вне фреймворка Analytics и позволяя пользователям контролировать передачу своих персональных данных, связанных с обменом сообщениями.
Реагируйте, когда пользователи взаимодействуют с сообщениями в приложении
С помощью действий вы можете использовать сообщения внутри приложения, чтобы направлять пользователей на веб-сайт или определенный экран в вашем приложении.
Ваш код может реагировать на базовые взаимодействия (клики и закрытия), показы (подтверждённые просмотры ваших сообщений) и отображать ошибки, зарегистрированные и подтверждённые SDK. Например, если ваше сообщение составлено в виде модального окна «Карточка», вам может потребоваться отслеживать и отслеживать, по какому из двух URL-адресов пользователь нажал на карточку.
Реализуйте DisplayDelegate для обработки взаимодействий с картами
Вы можете зарегистрировать делегат отображения сообщений в приложении, который будет вызываться при любом взаимодействии с сообщением в приложении. Для этого реализуйте класс в соответствии с протоколом InAppMessagingDisplayDelegate
и установите его в качестве свойства делегата в экземпляре InAppMessaging
.
Предположим еще раз, что вы хотите отслеживать, по какой ссылке щелкнул пользователь в сообщении в стиле карточки, определите класс, реализующий метод messageClicked
в соответствии с протоколом DisplayDelegate
, тем самым предоставляя вам доступ к ссылке, по которой щелкнул пользователь.
Быстрый
Обратитесь к справочнику делегатов отображения Swift для получения набора методов обратного вызова, которые можно реализовать, и их параметров, включая InAppMessagingAction.
// 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
Обратитесь к справочнику по делегатам отображения 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.
В редакторе кампаний «In-App Messaging» создайте новую кампанию или выберите существующую, а на этапе «Scheduling» рабочего процесса редактора запишите идентификатор нового или существующего события. После этого настройте приложение на запуск события по его идентификатору.
Быстрый
…
// 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 отображает сообщения при выполнении условия срабатывания, независимо от текущего состояния приложения. Если вы хотите отключить отображение сообщений по какой-либо причине, например, чтобы не прерывать последовательность экранов обработки платежей, используйте свойство SDK messageDisplaySuppressed
, как показано здесь на 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 для идентификации приложения каждого пользователя. Это означает, что 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
.