Firebase In-App Messaging ช่วยให้คุณสร้าง กำหนดค่า และกำหนดเป้าหมายการโต้ตอบของผู้ใช้ที่หลากหลายได้โดยไม่ต้องเขียนโค้ด โดยใช้ความสามารถของ Google Analytics โดยตรงเพื่อเชื่อมโยงเหตุการณ์การรับส่งข้อความกับลักษณะ กิจกรรม และทางเลือกของผู้ใช้จริง การผสานรวม Firebase In-App Messaging SDK เพิ่มเติมจะช่วยให้คุณปรับแต่งลักษณะการทํางานของข้อความในแอปได้มากขึ้น เช่น การตอบสนองเมื่อผู้ใช้โต้ตอบกับข้อความ เรียกเหตุการณ์ข้อความให้แสดงนอกเฟรมเวิร์ก Analytics และอนุญาตให้ผู้ใช้ควบคุมการแชร์ข้อมูลส่วนบุคคลที่เกี่ยวข้องกับการโต้ตอบการรับส่งข้อความ
ตอบสนองเมื่อผู้ใช้โต้ตอบกับข้อความในแอป
เมื่อใช้การดําเนินการ คุณจะสามารถใช้ข้อความในแอปเพื่อนําผู้ใช้ไปยังเว็บไซต์หรือหน้าจอที่เฉพาะเจาะจงในแอปได้
โค้ดสามารถตอบสนองต่อการโต้ตอบพื้นฐาน (การคลิกและการปิด) การแสดงผล (ยอดดูที่ยืนยันแล้วของข้อความ) และแสดงข้อผิดพลาดที่บันทึกไว้และ SDK ยืนยัน ตัวอย่างเช่น เมื่อข้อความของคุณเขียนขึ้นในรูปแบบโมดัลการ์ด คุณอาจต้องการติดตามและติดตามผลว่าผู้ใช้คลิก URL ใดใน 2 รายการบนการ์ด
ใช้ DisplayDelegate เพื่อจัดการการโต้ตอบกับการ์ด
คุณสามารถลงทะเบียนผู้รับมอบสิทธิ์การแสดงข้อความในแอปที่จะเรียกใช้ทุกครั้งที่มีการโต้ตอบกับข้อความในแอป โดยให้ติดตั้งใช้งานคลาสตามโปรโตคอล InAppMessagingDisplayDelegate
และตั้งค่าเป็นพร็อพเพอร์ตี้ตัวแทนในอินสแตนซ์ InAppMessaging
สมมติอีกครั้งว่าคุณต้องการติดตามลิงก์ที่ผู้ใช้คลิกในข้อความสไตล์การ์ด ให้กําหนดคลาสที่ใช้เมธอด messageClicked
ตามโปรโตคอล DisplayDelegate
ซึ่งจะช่วยให้คุณเข้าถึงลิงก์ที่ผู้ใช้คลิกได้
Swift
โปรดดูข้อมูลอ้างอิงเกี่ยวกับตัวรับมอบสิทธิ์การแสดงผลของ 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;
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
ในเครื่องมือสร้างแคมเปญการรับส่งข้อความในแอป ให้สร้างแคมเปญใหม่หรือเลือกแคมเปญที่มีอยู่ และในขั้นตอนการตั้งเวลาของเวิร์กโฟลว์เครื่องมือสร้าง ให้จดรหัสเหตุการณ์ของเหตุการณ์การรับส่งข้อความที่สร้างใหม่หรือที่มีอยู่ เมื่อบันทึกแล้ว ให้ติดตั้งใช้งานแอปเพื่อเรียกเหตุการณ์ตามรหัส
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
ใช้ข้อมูลเมตาที่กำหนดเองของแคมเปญ
ในแคมเปญ คุณสามารถระบุข้อมูลที่กําหนดเองในชุดคู่คีย์/ค่า เมื่อผู้ใช้โต้ตอบกับข้อความ ข้อมูลนี้จะช่วยให้คุณดำเนินการต่างๆ ได้ เช่น แสดงรหัสโปรโมชัน
Swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-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 จะส่งข้อความถึงผู้ใช้แอปทุกคนที่คุณกําหนดเป้าหมายในแคมเปญการรับส่งข้อความโดยอัตโนมัติ ในการส่งข้อความเหล่านั้น 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