Firebase In-App Messaging практически не требует усилий по написанию кода и позволяет создавать, настраивать и нацеливать богатые взаимодействия с пользователем, используя возможности Google Analytics из коробки, чтобы связать события обмена сообщениями с фактическими характеристиками, действиями и выбором пользователя. Благодаря некоторой дополнительной интеграции Firebase In-App Messaging SDK вы можете еще больше адаптировать поведение сообщений в приложении, реагируя, когда пользователи взаимодействуют с сообщениями, запуская события сообщений вне структуры Analytics и позволяя пользователям контролировать обмен своими личными данными, связанными с ними. для обмена сообщениями.
Реагировать, когда пользователи взаимодействуют с сообщениями в приложении
С помощью действий вы можете использовать сообщения в приложении, чтобы направлять пользователей на веб-сайт или определенный экран вашего приложения.
Ваш код может реагировать на базовые взаимодействия (клики и отклонения), на показы (подтвержденные просмотры ваших сообщений) и отображать ошибки, зарегистрированные и подтвержденные SDK. Например, если ваше сообщение составлено в виде модального окна «Карточка», вы можете захотеть отслеживать и отслеживать, какой из двух URL-адресов пользователь нажал на карточку.
Внедрите DisplayDelegate для обработки взаимодействий с картами.
Вы можете зарегистрировать делегат отображения сообщений в приложении, который будет вызываться при каждом взаимодействии с сообщением в приложении. Для этого реализуйте класс для протокола InAppMessagingDisplayDelegate
и установите его в качестве свойства делегата в экземпляре InAppMessaging
.
Снова предположив, что вы хотите отслеживать, какую ссылку пользователь нажал на сообщение в стиле Card, определите класс, который реализует метод messageClicked
в соответствии с протоколом DisplayDelegate
, тем самым предоставляя вам доступ к ссылке, на которую нажал пользователь.
Быстрый
Обратитесь к справочнику по делегату отображения Swift, чтобы узнать о наборе методов обратного вызова, которые можно реализовать, и их параметрах, включая InAppMessagingAction.
// In CardActionFiamDelegate.swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// ...
}
func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
dismissType: FIRInAppMessagingDismissType) {
// ...
}
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;
Цель-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.
В редакторе кампаний по обмену сообщениями в приложениях создайте новую кампанию или выберите существующую кампанию, а на этапе планирования рабочего процесса составителя запишите идентификатор события вновь созданного или существующего события обмена сообщениями. После этого настройте свое приложение так, чтобы оно инициировало событие по его идентификатору.
Быстрый
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Цель-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Использовать пользовательские метаданные кампании
В своих кампаниях вы можете указывать пользовательские данные в виде серии пар ключ/значение. Когда пользователи взаимодействуют с сообщениями, вам доступны эти данные, например, для отображения промокода.
Быстрый
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Цель-C
@implementation CardActionFiamDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
appData = inAppMessage.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 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
.