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


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

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

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

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

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

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

यह मानकर कि आप ट्रैक करना चाहते हैं कि उपयोगकर्ता ने कार्ड-स्टाइल पर क्लिक किए गए किस लिंक पर क्लिक किया संदेश है, तो एक ऐसी क्लास निर्धारित करें जो messageClicked विधि को DisplayDelegate प्रोटोकॉल से, आपको उपयोगकर्ता ने लिंक पर क्लिक किया.

Swift

ध्यान दें: यह प्रॉडक्ट, macOS, Mac Catalyst, ऐप्लिकेशन क्लिप या 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 In-App Messaging की मदद से, डिफ़ॉल्ट रूप से Firebase के लिए Google Analytics इवेंट की मदद से इन-ऐप्लिकेशन मैसेज ट्रिगर किए जा सकते हैं. इसके लिए, आपको कोई अन्य इंटिग्रेशन नहीं करना पड़ता. आप साथ ही, Firebase In-App Messaging 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 In-App Messaging मैसेज रेंडर करता है ऐप्लिकेशन की मौजूदा स्थिति पर ध्यान दिए बिना. अगर आपको किसी वजह से मैसेज नहीं दिखाना है, तो एसडीके की messageDisplaySuppressed प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए, पेमेंट प्रोसेस करने वाली स्क्रीन के क्रम में रुकावट न आए, इसके लिए ऐसा करें. यहां 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 के लिए अपने-आप शुरू होने की सुविधा को बंद करना होगा और ऑप्ट-इन करने वाले उपयोगकर्ताओं के लिए, सेवा को मैन्युअल तौर पर शुरू करें:

  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 पर सेट करें.