Firebase इन-ऐप्लिकेशन मैसेज के व्यवहार में बदलाव करें

Firebase इन-ऐप मैसेज सेवा, आपको रिच यूज़र इंटरैक्शन बनाने, उन्हें कॉन्फ़िगर करने, और टारगेट करने की सुविधा देती है. इससे Google Analytics की सुविधाओं का इस्तेमाल करके, मैसेज इवेंट को उपयोगकर्ता की विशेषताओं, गतिविधियों, और विकल्पों के साथ जोड़ा जा सकता है. कुछ अतिरिक्त Firebase इन-ऐप्लिकेशन मैसेजिंग SDK टूल के इंटिग्रेशन की मदद से, इन-ऐप्लिकेशन मैसेज के व्यवहार को और बेहतर बनाया जा सकता है. साथ ही, जब उपयोगकर्ता मैसेज के साथ इंटरैक्ट करते हैं, तब रिस्पॉन्स मिलता है, Analytics फ़्रेमवर्क के बाहर मैसेज इवेंट ट्रिगर होते हैं, और उपयोगकर्ताओं को मैसेज सेवा इंटरैक्शन से जुड़ा अपना निजी डेटा शेयर करने की सुविधा मिलती है.

जब उपयोगकर्ता इन-ऐप्लिकेशन मैसेज से इंटरैक्ट करें, तब जवाब देना

कार्रवाइयों की मदद से, इन-ऐप्लिकेशन मैसेज का इस्तेमाल करके उपयोगकर्ताओं को अपने ऐप्लिकेशन की किसी वेबसाइट या खास स्क्रीन पर भेजा जा सकता है.

आपका कोड, बेसिक इंटरैक्शन (क्लिक और खारिज करने) का जवाब दे सकता है. साथ ही, यह इंप्रेशन (आपके मैसेज के पुष्टि किए गए व्यू) का जवाब दे सकता है. साथ ही, उन गड़बड़ियों को दिखा सकता है जिन्हें लॉग किया गया है और जिनकी पुष्टि SDK टूल ने की है. उदाहरण के लिए, अगर आपका मैसेज, कार्ड मॉडल के तौर पर लिखा गया है, तो हो सकता है कि आप यह ट्रैक करना चाहें और फ़ॉलो-अप करना चाहें कि उपयोगकर्ता ने कार्ड पर क्लिक करने के लिए, दो यूआरएल में से किस यूआरएल पर क्लिक किया है.

कार्ड इंटरैक्शन को मैनेज करने के लिए DisplayDelegate को लागू करें

इन-ऐप्लिकेशन मैसेज दिखाने वाले किसी प्रतिनिधि को रजिस्टर किया जा सकता है. ऐप्लिकेशन मैसेज से कोई भी इंटरैक्शन होने पर, उस प्रतिनिधि को कॉल किया जाएगा. ऐसा करने के लिए, InAppMessagingDisplayDelegate प्रोटोकॉल के हिसाब से क्लास लागू करें और इसे InAppMessaging इंस्टेंस पर डेलिगेट प्रॉपर्टी के तौर पर सेट करें.

अगर फिर से मान लें कि आपको यह ट्रैक करना है कि उपयोगकर्ता ने कार्ड-स्टाइल मैसेज पर क्लिक किस लिंक पर किया है, तो एक ऐसी क्लास तय करें जो DisplayDelegate प्रोटोकॉल के हिसाब से, messageClicked तरीके को लागू करती हो. इससे आपको उस लिंक का ऐक्सेस मिल जाता है जिस पर उपयोगकर्ता ने क्लिक किया है.

Swift

ध्यान दें: यह प्रॉडक्ट macOS, Mac Catalyst, App Clip या watchOS टारगेट पर उपलब्ध नहीं है.

लागू किए जा सकने वाले कॉलबैक के तरीकों के सेट और उनके पैरामीटर के लिए 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

ध्यान दें: यह प्रॉडक्ट macOS, Mac Catalyst, App Clip या watchOS टारगेट पर उपलब्ध नहीं है.

लागू किए जा सकने वाले कॉलबैक मैथड के सेट और उनके पैरामीटर के लिए, 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 इन-ऐप्लिकेशन मैसेज की मदद से, 'Firebase के लिए Google Analytics' इवेंट के साथ इन-ऐप्लिकेशन मैसेज ट्रिगर किए जा सकते हैं. इसके लिए, आपको कोई अतिरिक्त इंटिग्रेशन नहीं करना होगा. Firebase इन-ऐप्लिकेशन मैसेजिंग SDK टूल के प्रोग्राम वाले ट्रिगर की मदद से, मैन्युअल तरीके से भी इवेंट को प्रोग्राम के हिसाब से ट्रिगर किया जा सकता है.

इन-ऐप्लिकेशन मैसेजिंग कैंपेन कंपोज़र में, कोई नया कैंपेन बनाएं या कोई मौजूदा कैंपेन चुनें. साथ ही, कंपोज़र वर्कफ़्लो के शेड्यूल करने वाले चरण में, किसी नए बनाए गए या मौजूदा मैसेज इवेंट का इवेंट आईडी नोट करें. नोट किए जाने के बाद, अपने ऐप्लिकेशन को उसके आईडी से इवेंट ट्रिगर करने के लिए इंस्ट्रुमेंट करें.

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 CardActionFiamDelegate : 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 CardActionFiamDelegate

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
	appData = inAppMessage.appData
	// ...
}

@end

इन-ऐप्लिकेशन मैसेज की सुविधा को कुछ समय के लिए बंद करें

डिफ़ॉल्ट रूप से, Firebase इन-ऐप्लिकेशन मैसेज, ट्रिगर करने की शर्त पूरी होने पर मैसेज रेंडर करता है. भले ही, ऐप्लिकेशन की मौजूदा स्थिति कुछ भी हो. अगर आपको किसी भी वजह से मैसेज डिसप्ले को रोकना है, जैसे कि पेमेंट प्रोसेस करने वाली स्क्रीन के क्रम में रुकावट से बचने के लिए, तो SDK टूल की messageDisplaySuppressed प्रॉपर्टी का इस्तेमाल करें. इसका तरीका Objective-C में दिखाया गया है:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

अगर प्रॉपर्टी को YES पर सेट किया जाता है, तो Firebase की इन-ऐप्लिकेशन मैसेज की सुविधा मैसेज नहीं दिखा पाएगी. हालांकि, NO ऐप्लिकेशन पर मैसेज दिखाने की सुविधा को फिर से चालू किया जा सकता है. ऐप्लिकेशन रीस्टार्ट होने पर, SDK टूल प्रॉपर्टी को NO पर रीसेट कर देता है. छिपाए गए मैसेज को SDK टूल अनदेखा कर देता है. Firebase इन-ऐप्लिकेशन मैसेज दिखाने से पहले, ट्रिगर करने की शर्तों को फिर से पूरा करना ज़रूरी है.

ऑप्ट-आउट मैसेज डिलीवरी की सुविधा चालू करें

डिफ़ॉल्ट रूप से, Firebase इन-ऐप्लिकेशन मैसेज, मैसेजिंग कैंपेन में टारगेट किए गए ऐप्लिकेशन के सभी उपयोगकर्ताओं को अपने-आप मैसेज भेजता है. इन मैसेज को डिलीवर करने के लिए, Firebase इन-ऐप्लिकेशन मैसेज का SDK टूल, हर उपयोगकर्ता के ऐप्लिकेशन की पहचान करने के लिए Firebase इंस्टॉलेशन आईडी का इस्तेमाल करता है. इसका मतलब है कि इन-ऐप्लिकेशन मैसेज सेवा को क्लाइंट डेटा, जो इंस्टॉलेशन आईडी से जुड़ा हुआ है Firebase के सर्वर पर भेजना होगा. अगर उपयोगकर्ताओं को उनके भेजे जाने वाले डेटा पर ज़्यादा कंट्रोल देना है, तो अपने-आप डेटा कलेक्शन की सुविधा को बंद करें और उन्हें डेटा शेयर करने की अनुमति दें.

ऐसा करने के लिए, आपको Firebase की इन-ऐप्लिकेशन मैसेज भेजने की सुविधा के लिए, अपने-आप शुरू होने की सुविधा बंद करनी होगी. साथ ही, ऑप्ट-इन करने वाले उपयोगकर्ताओं के लिए, सेवा को मैन्युअल तौर पर शुरू करना होगा:

  1. अपनी Info.plist फ़ाइल में, नई कुंजी का इस्तेमाल करके अपने-आप शुरू होने की सुविधा को बंद करें:

    • कुंजी: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • वैल्यू: NO
  2. चुने गए उपयोगकर्ताओं के लिए, मैन्युअल तरीके से Firebase इन-ऐप्लिकेशन मैसेज की सुविधा शुरू करें:

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

    automaticDataCollectionEnabled को YES पर सेट करने के बाद, वैल्यू बनी रहती है. इसके बाद, ऐप्लिकेशन रीस्टार्ट होता है. फिर, यह वैल्यू आपके Info.plist की वैल्यू को बदल देती है. अगर आपको शुरू करने की प्रोसेस फिर से बंद करनी है, जैसे कि अगर कोई उपयोगकर्ता बाद में कलेक्शन से ऑप्ट आउट करता है, तो प्रॉपर्टी को NO पर सेट करें.