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