फायरबेस इन-ऐप मैसेजिंग संदेशों के व्यवहार को संशोधित करें

बहुत कम या बिना किसी कोडिंग प्रयास के, फायरबेस इन-ऐप मैसेजिंग आपको मैसेजिंग इवेंट को वास्तविक उपयोगकर्ता विशेषताओं, गतिविधियों और विकल्पों से जोड़ने के लिए Google Analytics की क्षमताओं का लाभ उठाते हुए, समृद्ध उपयोगकर्ता इंटरैक्शन बनाने, कॉन्फ़िगर करने और लक्षित करने की अनुमति देता है। कुछ अतिरिक्त फायरबेस इन-ऐप मैसेजिंग एसडीके एकीकरण के साथ, आप इन-ऐप संदेशों के व्यवहार को और भी बेहतर बना सकते हैं, जब उपयोगकर्ता संदेशों के साथ इंटरैक्ट करते हैं तो प्रतिक्रिया देते हैं, एनालिटिक्स ढांचे के बाहर संदेश घटनाओं को ट्रिगर करते हैं, और उपयोगकर्ताओं को अपने व्यक्तिगत डेटा से संबंधित साझाकरण को नियंत्रित करने की अनुमति देते हैं। मैसेजिंग इंटरैक्शन के लिए.

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

कार्रवाइयों के साथ आप अपने इन-ऐप संदेशों का उपयोग उपयोगकर्ताओं को किसी वेबसाइट या अपने ऐप में एक विशिष्ट स्क्रीन पर निर्देशित करने के लिए कर सकते हैं।

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

कार्ड इंटरैक्शन को संभालने के लिए डिस्प्लेडिलीगेट लागू करें

आप एक इन-ऐप मैसेजिंग डिस्प्ले डेलीगेट को पंजीकृत कर सकते हैं जिसे इन-ऐप संदेश के साथ कोई इंटरैक्शन होने पर कॉल किया जाएगा। ऐसा करने के लिए, InAppMessagingDisplayDelegate प्रोटोकॉल के अनुसार एक क्लास लागू करें और इसे InAppMessaging इंस्टेंस पर प्रतिनिधि संपत्ति के रूप में सेट करें।

फिर से यह मानते हुए कि आप ट्रैक करना चाहते हैं कि उपयोगकर्ता ने कार्ड-शैली संदेश पर किस लिंक पर क्लिक किया है, एक वर्ग को परिभाषित करें जो DisplayDelegate प्रोटोकॉल के अनुसार messageClicked विधि को लागू करता है, जिससे आपको उपयोगकर्ता द्वारा क्लिक किए गए लिंक तक पहुंच प्रदान होती है।

तीव्र

नोट: यह उत्पाद macOS, Mac कैटालिस्ट, ऐप क्लिप या watchOS लक्ष्य पर उपलब्ध नहीं है।

कॉलबैक विधियों के सेट के लिए स्विफ्ट डिस्प्ले प्रतिनिधि संदर्भ देखें जिन्हें लागू किया जा सकता है और InAppMessageAction सहित उनके पैरामीटर।


// 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;

उद्देश्य सी

नोट: यह उत्पाद macOS, Mac कैटालिस्ट, ऐप क्लिप या watchOS लक्ष्य पर उपलब्ध नहीं है।

लागू किए जा सकने वाले कॉलबैक तरीकों के सेट और FIRInAppMessatingDisplayMessage सहित उनके पैरामीटर के लिए ऑब्जेक्टिव-सी डिस्प्ले डेलिगेट संदर्भ देखें।


// 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;

इन-ऐप संदेशों को प्रोग्रामेटिक रूप से ट्रिगर करें

डिफ़ॉल्ट रूप से फायरबेस इन-ऐप मैसेजिंग आपको बिना किसी अतिरिक्त एकीकरण के, फायरबेस इवेंट के लिए Google Analytics के साथ इन-ऐप संदेशों को ट्रिगर करने की अनुमति देता है। आप फायरबेस इन-ऐप मैसेजिंग एसडीके के प्रोग्रामेटिक ट्रिगर्स के साथ प्रोग्रामेटिक रूप से ईवेंट को मैन्युअल रूप से ट्रिगर भी कर सकते हैं।

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

तीव्र

नोट: यह उत्पाद macOS, Mac कैटालिस्ट, ऐप क्लिप या watchOS लक्ष्य पर उपलब्ध नहीं है।
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

उद्देश्य सी

नोट: यह उत्पाद macOS, Mac कैटालिस्ट, ऐप क्लिप या watchOS लक्ष्य पर उपलब्ध नहीं है।
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

अभियान कस्टम मेटाडेटा का उपयोग करें

अपने अभियानों में, आप कुंजी/मूल्य जोड़े की श्रृंखला में कस्टम डेटा निर्दिष्ट कर सकते हैं। जब उपयोगकर्ता संदेशों के साथ इंटरैक्ट करते हैं, तो यह डेटा आपके लिए उपलब्ध होता है, उदाहरण के लिए, प्रोमो कोड प्रदर्शित करने के लिए।

तीव्र

नोट: यह उत्पाद macOS, Mac कैटालिस्ट, ऐप क्लिप या watchOS लक्ष्यों पर उपलब्ध नहीं है।
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

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

उद्देश्य सी

नोट: यह उत्पाद macOS, Mac कैटालिस्ट, ऐप क्लिप या watchOS लक्ष्यों पर उपलब्ध नहीं है।
@implementation CardActionFiamDelegate

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

@end

इन-ऐप संदेशों को अस्थायी रूप से अक्षम करें

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

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

प्रॉपर्टी को YES पर सेट करने से फायरबेस इन-ऐप मैसेजिंग को संदेशों को प्रदर्शित करने से रोका जाता है, जबकि NO संदेश को फिर से प्रदर्शित करने में सक्षम बनाता है। ऐप पुनरारंभ होने पर SDK प्रॉपर्टी को NO पर रीसेट कर देता है। दबाए गए संदेशों को एसडीके द्वारा नजरअंदाज कर दिया जाता है। फायरबेस इन-ऐप मैसेजिंग उन्हें प्रदर्शित करने से पहले, दमन बंद होने पर उनकी ट्रिगर शर्तों को फिर से पूरा करना होगा।

ऑप्ट-आउट संदेश वितरण सक्षम करें

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

ऐसा करने के लिए, आपको फायरबेस इन-ऐप मैसेजिंग के लिए स्वचालित आरंभीकरण को अक्षम करना होगा, और ऑप्ट-इन उपयोगकर्ताओं के लिए सेवा को मैन्युअल रूप से आरंभ करना होगा:

  1. अपनी Info.plist फ़ाइल में एक नई कुंजी के साथ स्वचालित आरंभीकरण बंद करें:

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

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

    एक बार जब आप automaticDataCollectionEnabled YES पर सेट कर देते हैं, तो ऐप रीस्टार्ट होने पर मान आपके Info.plist में मान को ओवरराइड करते हुए बना रहता है। यदि आप आरंभीकरण को फिर से अक्षम करना चाहते हैं, उदाहरण के लिए यदि कोई उपयोगकर्ता बाद में संग्रह से बाहर निकलता है, तो संपत्ति को NO पर सेट करें।