Firebase की इन-ऐप्लिकेशन मैसेज सुविधा की मदद से, बिना कोडिंग के या बहुत कम कोडिंग करके, उपयोगकर्ताओं के साथ बेहतर इंटरैक्शन बनाए जा सकते हैं, उन्हें कॉन्फ़िगर किया जा सकता है, और टारगेट किया जा सकता है. इसके लिए, Google Analytics की सुविधाओं का इस्तेमाल किया जाता है. इससे मैसेजिंग इवेंट को उपयोगकर्ता की असल विशेषताओं, गतिविधियों, और प्राथमिकताओं से जोड़ा जा सकता है. Firebase In-App Messaging SDK टूल के कुछ और इंटिग्रेशन की मदद से, इन-ऐप्लिकेशन मैसेज के व्यवहार को और भी बेहतर बनाया जा सकता है. इससे, उपयोगकर्ताओं के मैसेज से इंटरैक्ट करने पर जवाब दिया जा सकता है, Analytics फ़्रेमवर्क के बाहर मैसेज इवेंट ट्रिगर किए जा सकते हैं, और उपयोगकर्ताओं को मैसेजिंग इंटरैक्शन से जुड़े अपने निजी डेटा को शेयर करने की सुविधा को कंट्रोल करने की अनुमति दी जा सकती है.
उपयोगकर्ताओं के इन-ऐप्लिकेशन मैसेज से इंटरैक्ट करने पर जवाब देना
कार्रवाइयों की मदद से, इन-ऐप्लिकेशन मैसेज का इस्तेमाल करके उपयोगकर्ताओं को किसी वेबसाइट या ऐप्लिकेशन की किसी खास स्क्रीन पर भेजा जा सकता है.
आपका कोड, क्लिक और खारिज करने जैसे बुनियादी इंटरैक्शन, इंप्रेशन (आपके मैसेज के पुष्टि किए गए व्यू), और एसडीके से लॉग और पुष्टि की गई गड़बड़ियों का जवाब दे सकता है. उदाहरण के लिए, जब आपका मैसेज कार्ड मोडल के तौर पर बनाया जाता है, तो हो सकता है कि आप यह ट्रैक करना चाहें कि उपयोगकर्ता ने कार्ड पर मौजूद दो यूआरएल में से किस पर क्लिक किया.
कार्ड इंटरैक्शन को मैनेज करने के लिए, DisplayDelegate लागू करना
इन-ऐप्लिकेशन मैसेज दिखाने वाले डेलिगेट को रजिस्टर किया जा सकता है. इसे तब कॉल किया जाएगा, जब इन-ऐप्लिकेशन मैसेज के साथ कोई इंटरैक्शन होगा. इसके लिए, InAppMessagingDisplayDelegate प्रोटोकॉल के मुताबिक एक क्लास लागू करें और इसे InAppMessaging इंस्टेंस पर डेलिगेट प्रॉपर्टी के तौर पर सेट करें.
मान लें कि आपको यह ट्रैक करना है कि किसी उपयोगकर्ता ने कार्ड-स्टाइल वाले मैसेज में किस लिंक पर क्लिक किया. इसके लिए, ऐसी क्लास तय करें जो DisplayDelegate प्रोटोकॉल के मुताबिक, messageClicked तरीके को लागू करती हो. इससे आपको उस लिंक का ऐक्सेस मिल जाएगा जिस पर उपयोगकर्ता ने क्लिक किया है.
Swift
लागू किए जा सकने वाले कॉलबैक के तरीकों और उनके पैरामीटर के सेट के लिए, Swift डिसप्ले डेलिगेट रेफ़रंस देखें. इसमें InAppMessagingAction भी शामिल है.
// 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
लागू किए जा सकने वाले कॉलबैक के तरीकों और उनके पैरामीटर के सेट के लिए, 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 for 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 CardActionDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-C
@implementation ExampleCardActionDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
NSDictionary *appData = inAppMessage.appData;
NSLog(@"Message data: %@", 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 के लिए अपने-आप शुरू होने की सुविधा बंद करनी होगी. साथ ही, शामिल होने वाले उपयोगकर्ताओं के लिए, सेवा को मैन्युअल तरीके से शुरू करना होगा:
अपनी
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पर सेट करें. उदाहरण के लिए, अगर कोई उपयोगकर्ता बाद में डेटा इकट्ठा करने की सुविधा से ऑप्ट आउट करता है.