Với rất ít hoặc không cần nỗ lực viết mã, tính năng gửi thông báo trong ứng dụng của Firebase cho phép bạn tạo, định cấu hình và nhắm mục tiêu các lượt tương tác phong phú của người dùng, tận dụng các tính năng của Google Analytics ngay lập tức để liên kết các sự kiện nhắn tin với các đặc điểm, hoạt động và lựa chọn thực tế của người dùng. Khi tích hợp thêm một số SDK Firebase In-App Messaging, bạn có thể điều chỉnh hành vi của thông báo trong ứng dụng hơn nữa, phản hồi khi người dùng tương tác với thông báo, kích hoạt các sự kiện thông báo bên ngoài khung Analytics và cho phép người dùng kiểm soát việc chia sẻ dữ liệu cá nhân liên quan đến các lượt tương tác nhắn tin.
Phản hồi khi người dùng tương tác với thông báo trong ứng dụng
Với các hành động, bạn có thể sử dụng thông báo trong ứng dụng để hướng người dùng đến một trang web hoặc một màn hình cụ thể trong ứng dụng của bạn.
Mã của bạn có thể phản hồi các lượt tương tác cơ bản (lượt nhấp và lượt bỏ qua), lượt hiển thị (lượt xem đã xác minh thông báo của bạn) và các lỗi hiển thị được SDK ghi lại và xác nhận. Ví dụ: khi thông báo của bạn được soạn dưới dạng phương thức Thẻ, bạn có thể muốn theo dõi và tiếp tục theo dõi URL nào trong số hai URL mà người dùng đã nhấp vào Thẻ.
Triển khai DisplayDelegate để xử lý các lượt tương tác với Thẻ
Bạn có thể đăng ký một đại diện hiển thị thông báo trong ứng dụng sẽ được gọi bất cứ khi nào có lượt tương tác với thông báo trong ứng dụng. Để thực hiện việc này, hãy triển khai
một lớp theo giao thức InAppMessagingDisplayDelegate và đặt lớp đó làm thuộc tính đại diện
trên thực thể InAppMessaging.
Giả sử bạn muốn theo dõi liên kết mà người dùng đã nhấp vào thông báo kiểu Thẻ, hãy xác định một lớp triển khai phương thức messageClicked theo giao thức DisplayDelegate, nhờ đó bạn có thể truy cập vào liên kết mà người dùng đã nhấp vào.
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
Tham khảo tài liệu tham khảo về đại diện hiển thị Objective-C để biết tập hợp các phương thức gọi lại có thể triển khai và các tham số của các phương thức đó, bao gồm 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;
Kích hoạt thông báo trong ứng dụng theo phương thức lập trình
Firebase In-App Messaging theo mặc định cho phép bạn kích hoạt thông báo trong ứng dụng bằng các sự kiện Google Analytics cho Firebase mà không cần tích hợp thêm. Bạn cũng có thể kích hoạt các sự kiện theo phương thức lập trình theo cách thủ công bằng các trình kích hoạt theo phương thức lập trình của SDK Firebase In-App Messaging.
Trong trình soạn chiến dịch gửi thông báo trong ứng dụng, hãy tạo một chiến dịch mới hoặc chọn một chiến dịch hiện có, rồi trong bước Lên lịch của quy trình soạn, hãy lưu ý mã sự kiện của một sự kiện nhắn tin mới tạo hoặc hiện có. Sau khi lưu ý, hãy thiết lập ứng dụng của bạn để kích hoạt sự kiện theo mã sự kiện.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Sử dụng siêu dữ liệu tuỳ chỉnh của chiến dịch
Trong chiến dịch, bạn có thể chỉ định dữ liệu tuỳ chỉnh trong một loạt cặp khoá/giá trị. Khi người dùng tương tác với thông báo, dữ liệu này sẽ có sẵn để bạn, ví dụ: hiển thị mã khuyến mãi.
Swift
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
Tạm thời tắt thông báo trong ứng dụng
Theo mặc định, Firebase In-App Messaging sẽ hiển thị thông báo bất cứ khi nào đáp ứng điều kiện kích hoạt, bất kể trạng thái hiện tại của ứng dụng. Nếu bạn muốn ngăn
thông báo hiển thị vì bất kỳ lý do nào, chẳng hạn như để tránh làm gián đoạn một
chuỗi màn hình xử lý thanh toán, hãy sử dụng thuộc tính
messageDisplaySuppressed của SDK như minh hoạ ở đây trong Objective-C:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Việc đặt thuộc tính thành YES sẽ ngăn Firebase In-App Messaging hiển thị thông báo,
trong khi NO sẽ bật lại tính năng hiển thị thông báo. SDK sẽ đặt lại thuộc tính thành NO
khi khởi động lại ứng dụng. SDK sẽ bỏ qua các thông báo bị ngăn hiển thị. Các điều kiện kích hoạt của thông báo bị ngăn hiển thị phải được đáp ứng lại khi tính năng ngăn hiển thị tắt thì Firebase In-App Messaging mới có thể hiển thị các thông báo đó.
Bật tính năng gửi thông báo chọn không tham gia
Theo mặc định, Firebase In-App Messaging sẽ tự động gửi thông báo đến tất cả người dùng ứng dụng mà bạn nhắm mục tiêu trong chiến dịch nhắn tin. Để gửi những thông báo đó, SDK Firebase In-App Messaging sử dụng mã cài đặt Firebase để xác định ứng dụng của từng người dùng. Điều này có nghĩa là In-App Messaging phải gửi dữ liệu máy khách, được liên kết với mã cài đặt, đến máy chủ Firebase. Nếu bạn muốn cho phép người dùng kiểm soát nhiều hơn đối với dữ liệu mà họ gửi, hãy tắt tính năng tự động thu thập dữ liệu và cho họ cơ hội phê duyệt việc chia sẻ dữ liệu.
Để làm như vậy, bạn phải tắt tính năng tự động khởi chạy cho Firebase In-App Messaging, và khởi chạy dịch vụ theo cách thủ công cho người dùng chọn tham gia:
Tắt tính năng tự động khởi chạy bằng một khoá mới trong tệp
Info.plist:- Khoá:
FirebaseInAppMessagingAutomaticDataCollectionEnabled - Giá trị:
NO
- Khoá:
Khởi chạy Firebase In-App Messaging cho người dùng đã chọn theo cách thủ công:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;Sau khi bạn đặt
automaticDataCollectionEnabledthànhYES, giá trị này sẽ được duy trì trong suốt quá trình khởi động lại ứng dụng, ghi đè giá trị trongInfo.plist. Nếu bạn muốn tắt lại tính năng khởi chạy, chẳng hạn như nếu người dùng chọn không tham gia thu thập sau này, hãy đặt thuộc tính thànhNO.