ปรับเปลี่ยนลักษณะการทำงานของข้อความการรับส่งข้อความในแอป Firebase


การรับส่งข้อความในแอป Firebase ช่วยให้คุณสร้าง กำหนดค่า และกำหนดเป้าหมายการโต้ตอบของผู้ใช้ที่สมบูรณ์ได้โดยไม่ต้องเขียนโค้ดหรือเขียนโค้ดเพียงเล็กน้อย โดยใช้ประโยชน์จากความสามารถของ Google Analytics ที่พร้อมใช้งานทันทีเพื่อเชื่อมโยงเหตุการณ์การรับส่งข้อความกับลักษณะ กิจกรรม และตัวเลือกจริงของผู้ใช้ การผสานรวม SDK ของ Firebase In-App Messaging เพิ่มเติมจะช่วยให้คุณปรับแต่ง ลักษณะการทำงานของข้อความในแอปได้มากขึ้น โดยจะตอบสนองเมื่อผู้ใช้โต้ตอบ กับข้อความ ทริกเกอร์เหตุการณ์ข้อความนอกเฟรมเวิร์กของ Analytics และอนุญาตให้ผู้ใช้ควบคุมการแชร์ข้อมูลส่วนตัวที่เกี่ยวข้อง กับการโต้ตอบกับข้อความ

ตอบสนองเมื่อผู้ใช้โต้ตอบกับข้อความในแอป

การดำเนินการช่วยให้คุณใช้ข้อความในแอปเพื่อนำผู้ใช้ไปยังเว็บไซต์หรือหน้าจอที่เฉพาะเจาะจงในแอปได้

โค้ดของคุณสามารถตอบสนองต่อการโต้ตอบพื้นฐาน (การคลิกและการปิด) ต่อการแสดงผล (การดูข้อความที่ได้รับการยืนยัน) และต่อข้อผิดพลาดในการแสดงผลที่บันทึกและยืนยันโดย SDK ตัวอย่างเช่น เมื่อเขียนข้อความเป็นโมดัลการ์ด คุณอาจต้องการติดตามและติดตามผลว่าผู้ใช้คลิก URL ใดจาก 2 รายการในการ์ด

ใช้ DisplayDelegate เพื่อจัดการการโต้ตอบกับการ์ด

คุณสามารถลงทะเบียนผู้รับมอบสิทธิ์การแสดงผลการรับส่งข้อความในแอปที่จะได้รับการเรียกใช้เมื่อมีการโต้ตอบกับข้อความในแอป โดยให้ใช้คลาสตามโปรโตคอล InAppMessagingDisplayDelegate และตั้งค่าเป็นพร็อพเพอร์ตี้ผู้รับมอบสิทธิ์ในอินสแตนซ์ InAppMessaging

สมมติอีกครั้งว่าคุณต้องการติดตามลิงก์ที่ผู้ใช้คลิกในข้อความรูปแบบการ์ด ให้กำหนดคลาสที่ใช้เมธอด messageClicked ตามโปรโตคอล DisplayDelegate ซึ่งจะช่วยให้คุณเข้าถึงลิงก์ที่ผู้ใช้คลิกได้

Swift

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมให้บริการใน macOS, Mac Catalyst, App Clip หรือ watchOS

ดูชุดเมธอด Callback ที่สามารถนำไปใช้และพารามิเตอร์ของเมธอดเหล่านั้น รวมถึง 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

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมให้บริการใน macOS, Mac Catalyst, App Clip หรือ watchOS

ดูชุดเมธอด Callback ที่ใช้ได้และพารามิเตอร์ของเมธอดเหล่านั้น รวมถึง 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 ได้โดยค่าเริ่มต้น โดยไม่ต้องผสานรวมเพิ่มเติม นอกจากนี้ คุณยังเรียกเหตุการณ์ด้วยตนเองแบบเป็นโปรแกรมได้ด้วยทริกเกอร์แบบเป็นโปรแกรมของ SDK Firebase In-App Messaging

ในเครื่องมือเขียนแคมเปญการรับส่งข้อความในแอป ให้สร้างแคมเปญใหม่หรือเลือกแคมเปญที่มีอยู่ และในขั้นตอนการตั้งเวลาของเวิร์กโฟลว์เครื่องมือเขียน ให้จดรหัสเหตุการณ์ของเหตุการณ์การรับส่งข้อความที่สร้างขึ้นใหม่หรือที่มีอยู่ เมื่อจดบันทึกแล้ว ให้ใช้เครื่องมือในแอปเพื่อเรียกเหตุการณ์ให้แสดงตามรหัส

Swift

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมให้บริการใน macOS, Mac Catalyst, App Clip หรือ watchOS
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Objective-C

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมให้บริการใน macOS, Mac Catalyst, App Clip หรือ watchOS
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

ใช้ข้อมูลเมตาที่กำหนดเองของแคมเปญ

ในแคมเปญ คุณสามารถระบุข้อมูลที่กำหนดเองในชุดคู่คีย์/ค่าได้ เมื่อผู้ใช้โต้ตอบกับข้อความ คุณจะใช้ข้อมูลนี้เพื่อแสดงรหัสโปรโมชันได้ เป็นต้น

Swift

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมให้บริการใน macOS, Mac Catalyst, App Clip หรือ watchOS
class CardActionDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
	// Get data bundle from the inapp message
	let appData = inAppMessage.appData
	// ...
    }
}

Objective-C

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมให้บริการใน macOS, Mac Catalyst, App Clip หรือ watchOS
@implementation ExampleCardActionDelegate

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
    NSDictionary *appData = inAppMessage.appData;
    NSLog(@"Message data: %@", 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 จะใช้รหัสการติดตั้ง Firebase เพื่อระบุแอปของผู้ใช้แต่ละราย ซึ่งหมายความว่า In-App Messaging ต้องส่งข้อมูลไคลเอ็นต์ที่ลิงก์กับรหัสการติดตั้งไปยังเซิร์ฟเวอร์ Firebase หากต้องการให้ผู้ใช้ควบคุมข้อมูลที่ส่งได้มากขึ้น ให้ปิดใช้การเก็บรวบรวมข้อมูลอัตโนมัติและให้ผู้ใช้มีโอกาสอนุมัติการแชร์ข้อมูล

โดยคุณต้องปิดใช้การเริ่มต้นอัตโนมัติสำหรับ Firebase In-App Messaging และเริ่มต้นบริการด้วยตนเองสำหรับผู้ใช้ที่เลือกใช้ ดังนี้

  1. ปิดการเริ่มต้นอัตโนมัติด้วยคีย์ใหม่ในไฟล์ Info.plist โดยทำดังนี้

    • แป้น: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • ค่า: NO
  2. เริ่มต้นใช้งาน Firebase In-App Messaging สำหรับผู้ใช้ที่เลือกด้วยตนเอง

    // Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO
    // in Info.plist
    [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
    
    

    เมื่อตั้งค่า automaticDataCollectionEnabled เป็น YES แล้ว ค่าจะยังคงอยู่แม้จะรีสตาร์ทแอป โดยจะลบล้างค่าใน Info.plist หากต้องการปิดใช้การเริ่มต้นอีกครั้ง เช่น หากผู้ใช้เลือกไม่ให้รวบรวมข้อมูลในภายหลัง ให้ตั้งค่าพร็อพเพอร์ตี้เป็น NO