इन-ऐप्लिकेशन मैसेज का आपका पहला एक्सपेरिमेंट

1. शुरुआती जानकारी

लक्ष्य

इस कोडलैब में, आपको अलग-अलग प्लैटफ़ॉर्म पर काम करने वाले ऐसे मोबाइल ऐप्लिकेशन के लिए, ऐप्लिकेशन में मैसेजिंग की सुविधा से जुड़ा एक्सपेरिमेंट सेट अप करना होगा जो रेस्टोरेंट के सुझाव देता है. यह ऐप्लिकेशन Flutter और Cloud Firestore पर काम करता है.

इस कोर्स को पूरा करने के बाद, आपके पास इन-ऐप्लिकेशन मैसेजिंग एक्सपेरिमेंट को डिज़ाइन और लागू करने का विकल्प होगा. इससे, iOS या Android ऐप्लिकेशन के लिए, कम से कम कोड लिखकर उपयोगकर्ता जुड़ाव को असरदार तरीके से बढ़ाया जा सकेगा.

b284c40acc99b994.png

आपको क्या सीखने को मिलेगा

  • Flutter ऐप्लिकेशन में Firebase In-App Messaging (FIAM) का इस्तेमाल कैसे करें
  • इन-ऐप्लिकेशन मैसेज के दिखने के तरीके को पसंद के मुताबिक बनाने का तरीका
  • इन-ऐप्लिकेशन मैसेजिंग एक्सपेरिमेंट को डिज़ाइन करने और उसे अपने ऐप्लिकेशन में लागू करने का तरीका
  • ऐप्लिकेशन में मैसेज दिखाने से जुड़े एक्सपेरिमेंट के नतीजों को समझने का तरीका

आपको इस कोडलैब से क्या सीखना है?

मुझे इस विषय के बारे में ज़्यादा जानकारी नहीं है. मुझे इसके बारे में खास जानकारी चाहिए. मुझे इस विषय के बारे में कुछ जानकारी है, लेकिन मुझे इसे फिर से पढ़ना है. मुझे अपने प्रोजेक्ट में इस्तेमाल करने के लिए, उदाहरण के तौर पर कोड चाहिए. मुझे किसी खास चीज़ के बारे में जानकारी चाहिए.

Firebase In-App Messaging

Firebase In-App Messaging (FIAM) की मदद से, उन उपयोगकर्ताओं को जोड़ा जा सकता है जो लगातार आपके ऐप्लिकेशन का इस्तेमाल करते हैं. उन्हें टारगेट किए गए और काम के मैसेज भेजे जा सकते हैं. इन मैसेज में, उन्हें ऐप्लिकेशन में जाकर, कोई कार्रवाई पूरी करने के लिए कहा गया हो. जैसे, गेम में किसी लेवल को पार करना, कोई आइटम खरीदना या कॉन्टेंट की सदस्यता लेना.

Firebase A/B टेस्टिंग

Firebase A/B टेस्टिंग (ABT), Google Optimize की मदद से काम करती है. इससे, ऐप्लिकेशन के इस्तेमाल के अनुभव ऑप्टिमाइज़ किए जा सकते हैं. ऐसा करने के लिए Firebase A/B टेस्टिंग, ऐप्लिकेशन चलाना, उसका विश्लेषण करना, और प्रॉडक्ट और मार्केटिंग एक्सपेरिमेंट में बढ़ोतरी करना आसान बनाती है. यह आपको अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई), फ़ीचर या दर्शकों को जोड़ने वाले कैंपेन में किए गए बदलावों की जांच करने की सुविधा देता है. इससे आपको बड़े पैमाने पर उन बदलावों को लागू करने से पहले यह जान सकते हैं कि वे आपके मुख्य आंकड़ों की सही जानकारी देते हैं या नहीं, जैसे कि रेवेन्यू और उपयोगकर्ता बनाए रखने की दर.

ज़रूरी शर्तें

अगर आपको Flutter या Firestore के बारे में ज़्यादा जानकारी नहीं है, तो पहले Firebase for Flutter कोडलैब पूरा करें:

इस कोडलैब को इनमें से किसी भी डिवाइस पर चलाया जा सकता है:

  • आपके कंप्यूटर से कनेक्ट किया गया कोई फ़िज़िकल डिवाइस (Android या iOS), जिस पर डेवलपर मोड सेट हो.
  • iOS सिम्युलेटर. (इसके लिए, Xcode टूल इंस्टॉल करना ज़रूरी है).
  • Android एम्युलेटर. (इसके लिए, Android Studio में सेटअप करना ज़रूरी है).

ऊपर दी गई जानकारी के अलावा, आपको इनकी भी ज़रूरत होगी:

  • अपनी पसंद का ब्राउज़र, जैसे कि Chrome.
  • आपकी पसंद का कोई आईडीई या टेक्स्ट एडिटर, जैसे कि Dart और Flutter प्लगिन के साथ कॉन्फ़िगर किया गया Android Studio या VS Code. Flutter के साथ VS Code का इस्तेमाल करने का सुझाव दिया जाता है.
  • Flutter का सबसे नया स्टेबल वर्शन. अगर आपको नई सुविधाओं को आज़माना पसंद है, तो बीटा वर्शन का इस्तेमाल करें.
  • Firebase प्रोजेक्ट बनाने और उसे मैनेज करने के लिए, Google खाता होना चाहिए. जैसे, Gmail खाता.
  • कोड लैब का सैंपल कोड. कोड पाने का तरीका जानने के लिए, अगला चरण देखें.

2. सेट अप करना

कोड पाएं

कमांड लाइन से GitHub रिपॉज़िटरी को क्लोन करें:

git clone https://github.com/FirebaseExtended/codelab-friendlyeats-flutter.git friendlyeats-flutter

सैंपल कोड को friendlyeats-flutter डायरेक्ट्री में क्लोन किया जाएगा. अब से, पक्का करें कि आपने इस डायरेक्ट्री से कमांड चलाए हों:

cd friendlyeats-flutter

इसके बाद, codelab डायरेक्ट्री में जाएं और fiam-abt ब्रांच देखें:

git checkout fiam-abt

इस ब्रांच में, इस कोडलैब के लिए ज़रूरी सभी कोड शामिल हैं. इसमें done फ़ोल्डर में पूरा किया गया वर्शन भी शामिल है. इस रिपॉज़िटरी की अन्य ब्रांच में, FriendlyEats ऐप्लिकेशन बनाने का कोड मौजूद है. इसे मल्टी-प्लैटफ़ॉर्म Firestore Flutter कोडलैब में दिखाया गया है. इस कोडलैब के लिए, हमने इस ब्रांच में वेब इंटिग्रेशन हटा दिया है.

स्टार्टर ऐप्लिकेशन इंपोर्ट करना

codelab-fiam-abt डायरेक्ट्री को अपने पसंदीदा IDE में खोलें या इंपोर्ट करें. इस डायरेक्ट्री में, कोडलैब के लिए शुरुआती कोड मौजूद है. इसमें रेस्टोरेंट के सुझाव देने वाला ऐप्लिकेशन शामिल है. इस कोडलैब के ज़रिए, इस ऐप्लिकेशन के उपयोगकर्ताओं के लिए, ऐप्लिकेशन में मैसेज भेजने से जुड़ा एक्सपेरिमेंट किया जाएगा.

Firebase प्रोजेक्ट बनाना

  1. अपने Google खाते का इस्तेमाल करके, Firebase कंसोल में साइन इन करें.
  2. नया प्रोजेक्ट बनाने के लिए, बटन पर क्लिक करें. इसके बाद, प्रोजेक्ट का नाम डालें. उदाहरण के लिए, FriendlyEats.
  3. जारी रखें पर क्लिक करें.
  4. अगर आपसे कहा जाए, तो Firebase की शर्तें पढ़ें और स्वीकार करें. इसके बाद, जारी रखें पर क्लिक करें.
  5. (ज़रूरी नहीं) Firebase कंसोल में एआई की मदद पाने की सुविधा चालू करें. इसे "Firebase में Gemini" कहा जाता है.
  6. इस कोडलैब के लिए, आपको Firebase के प्रॉडक्ट का बेहतर तरीके से इस्तेमाल करने के लिए Google Analytics की ज़रूरत होगी. इसलिए, Google Analytics के विकल्प के लिए टॉगल चालू रखें. Google Analytics को सेट अप करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.
  7. प्रोजेक्ट बनाएं पर क्लिक करें. इसके बाद, प्रोजेक्ट के प्रोविज़न होने का इंतज़ार करें. इसके बाद, जारी रखें पर क्लिक करें.

बधाई हो! आपने अभी-अभी अपना पहला Firebase प्रोजेक्ट बनाया है.

इसके बाद, Firebase कंसोल का इस्तेमाल करके, ज़रूरी सेवाओं को कॉन्फ़िगर और चालू करें.

पहचान छिपाकर पुष्टि करने की सुविधा चालू करना

हालांकि, इस कोडलैब में पुष्टि करने पर फ़ोकस नहीं किया गया है, लेकिन आपके ऐप्लिकेशन में पुष्टि करने की कोई सुविधा होना ज़रूरी है. आपको बिना नाम के लॉगिन का इस्तेमाल करना होगा. इसका मतलब है कि उपयोगकर्ता को बिना किसी प्रॉम्प्ट के चुपचाप साइन इन किया जाता है.

पहचान छिपाकर लॉग इन करने की सुविधा चालू करने के लिए:

  1. Firebase कंसोल में, बाईं ओर मौजूद नेविगेशन बार में Authentication ढूंढें.
  2. पुष्टि करें पर क्लिक करें. इसके बाद, शुरू करें पर क्लिक करें और साइन-इन करने का तरीका टैब चुनें (या सीधे Firebase कंसोल पर जाएं).
  3. बिना नाम के साइन-इन करने की सुविधा देने वाली सेवा चालू करें. इसके बाद, सेव करें पर क्लिक करें.

fee6c3ebdf904459.png

बिना पहचान बताए लॉगिन करने की सुविधा चालू करने पर, ऐप्लिकेशन को यह अनुमति मिल जाती है कि जब उपयोगकर्ता ऐप्लिकेशन को ऐक्सेस करें, तो वह उन्हें चुपचाप साइन इन कर दे. ज़्यादा जानने के लिए, Android और iOS के लिए, बिना पहचान बताए पुष्टि करने से जुड़ा दस्तावेज़ देखें.

Cloud Firestore सेट अप करना

यह ऐप्लिकेशन, Cloud Firestore का इस्तेमाल करके रेस्टोरेंट की जानकारी और रेटिंग सेव करता है और उन्हें ऐक्सेस करता है.

अपने Firebase प्रोजेक्ट में Cloud Firestore सेट अप करने का तरीका यहां बताया गया है:

  1. Firebase कंसोल के बाईं ओर मौजूद पैनल में, बनाएं को बड़ा करें. इसके बाद, Firestore डेटाबेस को चुनें.
  2. डेटाबेस बनाएं पर क्लिक करें.
  3. डेटाबेस आईडी को (default) पर सेट रहने दें.
  4. अपने डेटाबेस के लिए कोई जगह चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
    किसी असली ऐप्लिकेशन के लिए, आपको ऐसी जगह चुननी चाहिए जो आपके उपयोगकर्ताओं के आस-पास हो.
  5. टेस्ट मोड में शुरू करें पर क्लिक करें. सुरक्षा नियमों के बारे में डिसक्लेमर पढ़ें.
    इस कोडलैब में बाद में, अपने डेटा को सुरक्षित करने के लिए सुरक्षा नियम जोड़े जाएंगे. अपने डेटाबेस के लिए सुरक्षा के नियम जोड़े बिना, सार्वजनिक तौर पर किसी ऐप्लिकेशन को डिस्ट्रिब्यूट या उपलब्ध न करें.
  6. बनाएं पर क्लिक करें.

3. मोबाइल के लिए Firebase कॉन्फ़िगरेशन

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

  • Firebase प्रोजेक्ट पर, अपने हिसाब से प्लैटफ़ॉर्म रजिस्टर करना
  • प्लेटफ़ॉर्म के हिसाब से कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें और उसे कोड में जोड़ें.

आपके Flutter ऐप्लिकेशन की टॉप-लेवल डायरेक्ट्री में, ios और android नाम की सबडायरेक्ट्री होती हैं. इन डायरेक्ट्री में, iOS और Android के लिए प्लैटफ़ॉर्म के हिसाब से कॉन्फ़िगरेशन फ़ाइलें होती हैं.

a35458e5c0dd0acf.png iOS को कॉन्फ़िगर करना

Firebase कंसोल में, बाईं ओर मौजूद नेविगेशन बार में सबसे ऊपर, प्रोजेक्ट सेटिंग चुनें. इसके बाद, सामान्य पेज पर, आपके ऐप्लिकेशन में जाकर, iOS बटन पर क्लिक करें.

आपको यह डायलॉग बॉक्स दिखेगा:

c42139f18fb9a2ee.png

  1. आपको iOS बंडल आईडी की जानकारी देनी होगी. बंडल आईडी पाने के लिए, आपको अगले तीन चरण पूरे करने होंगे.
  1. कमांड-लाइन टूल में, अपने Flutter ऐप्लिकेशन की टॉप-लेवल डायरेक्ट्री पर जाएं.
  2. Xcode खोलने के लिए, open ios/Runner.xcworkspace निर्देश चलाएं.
  1. Xcode में, बाईं ओर मौजूद पैन में सबसे ऊपर मौजूद Runner पर क्लिक करें. इससे दाईं ओर मौजूद पैन में General टैब दिखेगा. बंडल आइडेंटिफ़ायर की वैल्यू कॉपी करें.

9733e26be329f329.png

  1. Firebase डायलॉग पर वापस जाएं. इसके बाद, कॉपी किए गए बंडल आइडेंटिफ़ायर को iOS बंडल आईडी फ़ील्ड में चिपकाएं और ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.
  1. Firebase में जाकर, कॉन्फ़िगरेशन फ़ाइल GoogleService-Info.plist डाउनलोड करने के लिए, दिए गए निर्देशों का पालन करें.
  2. Xcode पर वापस जाएं. ध्यान दें कि Runner में एक सबफ़ोल्डर भी है, जिसे Runner कहा जाता है. यह ऊपर दी गई इमेज में दिखाया गया है.
  3. अभी डाउनलोड की गई GoogleService-Info.plist फ़ाइल को उस Runner सब-फ़ोल्डर में खींचें और छोड़ें.
  4. Xcode में दिखने वाले डायलॉग बॉक्स में, Finish पर क्लिक करें.
  5. Firebase कंसोल पर वापस जाएं. सेटअप के दौरान, आगे बढ़ें पर क्लिक करें. इसके बाद, बाकी चरणों को छोड़ दें और Firebase कंसोल के मुख्य पेज पर वापस जाएं.

आपने iOS के लिए, अपने Flutter ऐप्लिकेशन को कॉन्फ़िगर कर लिया है!

84e0b3199bef6d8a.pngAndroid को कॉन्फ़िगर करना

  1. Firebase कंसोल में, बाईं ओर मौजूद नेविगेशन बार में सबसे ऊपर मौजूद प्रोजेक्ट सेटिंग को चुनें. इसके बाद, सामान्य पेज पर मौजूद आपके ऐप्लिकेशन में जाकर, Android बटन पर क्लिक करें.

आपको यह डायलॉग बॉक्स दिखेगा : 8254fc299e82f528.png

  1. आपको Android पैकेज का नाम डालना होगा. आपको पैकेज का नाम तब मिलता है, जब ये दो चरण पूरे किए जाते हैं:
  1. अपने Flutter ऐप्लिकेशन डायरेक्ट्री में, android/app/src/main/AndroidManifest.xml फ़ाइल खोलें.
  2. manifest एलिमेंट में, package एट्रिब्यूट की स्ट्रिंग वैल्यू ढूंढें. यह वैल्यू, Android पैकेज का नाम है. जैसे, com.yourcompany.yourproject. इस वैल्यू को कॉपी करें.
  3. Firebase डायलॉग में, कॉपी किए गए पैकेज के नाम को Android पैकेज का नाम फ़ील्ड में चिपकाएं.
  4. इस कोड लैब के लिए, आपको डीबग साइनिंग सर्टिफ़िकेट SHA-1 की ज़रूरत नहीं है. इसे खाली छोड़ दें.
  5. ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.
  6. Firebase में जाकर, कॉन्फ़िगरेशन फ़ाइल google-services.json डाउनलोड करने के लिए दिए गए निर्देशों का पालन करें.
  7. अपने Flutter ऐप्लिकेशन डायरेक्ट्री पर जाएं. इसके बाद, अभी-अभी डाउनलोड की गई google-services.json फ़ाइल को android/app डायरेक्ट्री में ले जाएं.
  8. Firebase कंसोल में वापस जाकर, बाकी चरणों को छोड़ें और Firebase कंसोल के मुख्य पेज पर वापस जाएं.
  9. सभी Gradle कॉन्फ़िगरेशन पहले से ही चेक इन किए जा चुके हैं. अगर आपका ऐप्लिकेशन अब भी चल रहा है, तो उसे बंद करें और फिर से बनाएं, ताकि Gradle डिपेंडेंसी इंस्टॉल कर सके.

आपने Android के लिए, Flutter ऐप्लिकेशन को कॉन्फ़िगर कर लिया है!

4. अपने ऐप्लिकेशन को स्थानीय तौर पर चलाना

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

जानें कि इस निर्देश के साथ कौनसे डिवाइस उपलब्ध हैं:

flutter devices

उपलब्ध डिवाइसों के हिसाब से, पिछली कमांड का आउटपुट कुछ ऐसा दिखता है:

7d44d7c0837b3e8e.png

अब, इस कमांड का इस्तेमाल करके ऐप्लिकेशन को स्थानीय तौर पर चलाएं:

flutter run

अब आपको FriendlyEats की अपनी कॉपी दिखेगी, जो आपके Firebase प्रोजेक्ट से कनेक्ट होगी.

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

5. अपना पहला मैसेज बनाना और उसे टेस्ट करना

अपने ऐप्लिकेशन में Firebase In-App Messaging को इंटिग्रेट करना

इन-ऐप्लिकेशन मैसेज की बुनियादी सुविधा को बिना किसी कोड के इंटिग्रेट किया जा सकता है. इसके लिए, आपको सिर्फ़ डिपेंडेंसी जोड़नी होगी. इसके बाद, आप इसका इस्तेमाल कर सकते हैं! अपनी pubspec.yaml फ़ाइल में यह डिपेंडेंसी जोड़ें

dependencies:
  # ...
  firebase_in_app_messaging: ^0.4.0
  # ...

Firebase कंसोल में कोई मैसेज लिखें

आपने अपने ऐप्लिकेशन में FIAM जोड़ लिया है. अब एक ऐसा मैसेज बनाते हैं जो ऐप्लिकेशन को पहली बार खोलने पर ट्रिगर होगा.

पहला मैसेज लिखने के लिए:

  1. Firebase कंसोल के Engage सेक्शन में, In-App Messaging पर क्लिक करें.
  2. ऐप्लिकेशन में मैसेज भेजने की सुविधा वाले पैनल में, अपना पहला कैंपेन बनाएं पर क्लिक करें.

4fec02395f89f2a8.png

आइए, एक सामान्य मोडल मैसेज लिखें, ताकि यह पक्का किया जा सके कि इंटिग्रेशन काम कर रहा है. मैसेज को अपनी पसंद के मुताबिक बनाएं. इसमें इमेज और बटन जोड़े जा सकते हैं या रंगों में बदलाव किया जा सकता है.

59845004afc26847.png

उस ऐप्लिकेशन को टारगेट करना न भूलें जिसके साथ आपको टेस्ट करना है. इंटिग्रेशन पाथ के आधार पर, आपके पास iOS, Android या दोनों हो सकते हैं.

3f1eb7a327a50265.png

हम चाहते हैं कि ऐप्लिकेशन खुलने पर मैसेज ट्रिगर हो. इसलिए, यहां डिफ़ॉल्ट शेड्यूलिंग कॉन्फ़िगरेशन काम करेगा.

8dc5cea0a4c79008.png

शेड्यूल करने के बाद, मैसेज पब्लिश किया जा सकता है. "समीक्षा करें" पर क्लिक करें. इसके बाद, आपको कुछ ऐसा दिखेगा

5bbc987bf63d1f48.png

ऐप्लिकेशन में मैसेज देखना

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

6. बेहतर तरीके से मैसेज ट्रिगर करने के लिए, Firebase Analytics को इंटिग्रेट करना

अपने ऐप्लिकेशन में Firebase Analytics को इंटिग्रेट करना

उपयोगकर्ता हमारे ऐप्लिकेशन के साथ कैसे इंटरैक्ट कर रहे हैं, यह समझने के लिए हम Analytics इवेंट जोड़ेंगे. साथ ही, हम उपयोगकर्ता की कार्रवाइयों के आधार पर इन-ऐप्लिकेशन मैसेज ट्रिगर करेंगे.

  1. pubspec.yaml में Flutter के लिए Firebase Analytics की डिपेंडेंसी जोड़ें
dependencies:
  # ...
  firebase_analytics: ^1.0.1
  # ...
  1. home_page.dart में Analytics का डेटा इंपोर्ट करना
import 'package:firebase_analytics/firebase_analytics.dart';
  1. home_page.dart में HomePage क्लास में Firebase Analytics का एक इंस्टेंस जोड़ें
class HomePage extends StatefulWidget {
  static const route = '/';
  static FirebaseAnalytics analytics = FirebaseAnalytics();
  HomePage({Key key}) : super(key: key);
  @override
  _HomePageState createState() => _HomePageState();
}
  1. जब उपयोगकर्ता home_page.dart में किसी रेस्टोरेंट कार्ड पर क्लिक करता है, तब Analytics इवेंट ट्रिगर करें
onRestaurantPressed: (id) async {
  await HomePage.analytics.logEvent(name: 'click_restaurant');
  Navigator.pushNamed(context,
                      RestaurantPage.route,
                      arguments: RestaurantPageArguments(id: id));
})

Analytics इवेंट पर ट्रिगर होने वाले मैसेज में बदलाव करना

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

Firebase कंसोल में जाकर, इन-ऐप्लिकेशन मैसेज पर वापस जाएं और अपने मौजूदा कैंपेन में बदलाव करें

d1fdc539dfcc6375.png

अब मैसेज को नए इवेंट से ट्रिगर करने के लिए, शेड्यूल करने वाले सेक्शन में बदलाव करें

8e12d8f1f8f166dd.png

इसके बाद, "समीक्षा करें" बटन पर क्लिक करके, हम अपने बदलावों को पब्लिश कर सकते हैं

4f7d6bd2960b3ef7.png

ऐप्लिकेशन में ट्रिगर की जांच करना

इस समय, आपको अपने ऐप्लिकेशन को

flutter run

इसके बाद, किसी रेस्टोरेंट पर क्लिक करने पर आपको इन-ऐप्लिकेशन मैसेज दिखेगा

a11febda5526263.png

7. FIAM+ABT कैंपेन बनाना

लक्ष्य तय करके शुरुआत करना

हमारा Friendlyeats ऐप्लिकेशन पहले से ही बहुत अच्छा है, लेकिन इसे ज़्यादा उपयोगी बनाने के लिए हमें कुछ समीक्षाओं की ज़रूरत है. ये समीक्षाएं, Friendlyeats के उपयोगकर्ताओं से ली जाएंगी. इसलिए, उपयोगकर्ताओं को समीक्षाएं करने के लिए बढ़ावा देने का कोई तरीका ढूंढते हैं.

सबसे पहले, कन्वर्ज़न इवेंट तय करते हैं

हमें यह देखना है कि क्या उपयोगकर्ता रेस्टोरेंट की समीक्षा कर रहे हैं. इसलिए, इस व्यवहार को मेज़र करने के लिए, एक Analytics इवेंट जोड़ते हैं.

  1. Firebase Analytics को पहले की तरह इंपोर्ट करें और restaurant_page.dart में RestaurantPage में Analytics का इंस्टेंस जोड़ें
class RestaurantPage extends StatefulWidget {
  static const route = '/restaurant';
  static FirebaseAnalytics analytics = FirebaseAnalytics();
  final String _restaurantId;
  RestaurantPage({Key key, @required String restaurantId})
      : _restaurantId = restaurantId,
        super(key: key);
  @override
  _RestaurantPageState createState() =>
      _RestaurantPageState(restaurantId: _restaurantId);
}
  1. अब restaurant_page.dart में समीक्षा सेव करने पर, _onCreateReviewPressed में इवेंट ट्रिगर करें
 if (newReview != null) {
   // Log successful review
   await RestaurantPage.analytics.logEvent(name: 'review_success');
   // Save the review
   return data.addReview(restaurantId: _restaurant.id, review: newReview);
 }

Firebase कंसोल में A/B टेस्ट कॉन्फ़िगर करना

अब जब हमें ऐप्लिकेशन में मैसेज भेजने वाले कैंपेन बनाने का तरीका पता चल गया है, तो यह तय करने का समय है कि हमें इन कैंपेन के ज़रिए अपने ऐप्लिकेशन में किस तरह के व्यवहार को बढ़ावा देना है. हम चाहते हैं कि FriendlyEats के लिए ज़्यादा से ज़्यादा लोग समीक्षाएं करें, ताकि यह ऐप्लिकेशन ज़्यादा मददगार बन सके! हम ऐप्लिकेशन में दिखने वाले मैसेज का इस्तेमाल करके, लोगों को इस सुविधा का इस्तेमाल करने के लिए बढ़ावा दे सकते हैं. पहला तरीका यह है कि ऐप्लिकेशन में एक सामान्य मैसेज दिखाया जाए. इसमें उपयोगकर्ता को बताया जाए कि उसे रेस्टोरेंट की समीक्षा करनी चाहिए, ताकि FriendlyEats ऐप्लिकेशन को बेहतर बनाया जा सके. दूसरा तरीका यह है कि ऐप्लिकेशन में मैसेज दिखाकर, समीक्षा करने के लिए कुछ इंसेंटिव दिया जाए. जैसे, किसी रेस्टोरेंट के लिए कूपन या छूट वाला कोड.

इन दोनों तरीकों से, FriendlyEats पर रेस्टोरेंट के लिए उपयोगकर्ताओं से मिलने वाली समीक्षाओं की संख्या बढ़ सकती है. हालांकि, ऐसा लगता है कि इस मामले में कूपन देने से और भी ज़्यादा असर पड़ सकता है. हालांकि, इस कूपन को देने से, उपयोगकर्ताओं के समीक्षा लिखने की संभावना कितनी बढ़ जाएगी? क्या कूपन की कीमत सही है? यह पता लगाने के लिए, हम ऐप्लिकेशन में मैसेज भेजने से जुड़ा एक एक्सपेरिमेंट करेंगे! हम Firebase A/B टेस्टिंग का इस्तेमाल करके, उपयोगकर्ताओं को ऐप्लिकेशन में दिखने वाले मैसेज में से कोई एक मैसेज रैंडम तरीके से दिखा सकते हैं. साथ ही, यह मेज़र कर सकते हैं कि इससे उपयोगकर्ता के व्यवहार पर क्या असर पड़ा. यह कुछ हद तक क्लिनिकल ट्रायल जैसा होता है. सबसे अच्छी बात यह है कि इसे Firebase कंसोल के ज़रिए पूरी तरह से किया जा सकता है. इसके लिए, किसी कोड की ज़रूरत नहीं होती!

ऐप्लिकेशन में मैसेज भेजने से जुड़े एक्सपेरिमेंट को कंपोज़ करने के लिए:

  1. Firebase कंसोल के Engage सेक्शन में जाकर, A/B टेस्टिंग पर क्लिक करें.
  2. एक्सपेरिमेंट बनाएं पर क्लिक करें. इसके बाद, इन-ऐप्लिकेशन मैसेजिंग के साथ एक्सपेरिमेंट करने का विकल्प चुनें. इससे आपको नीचे दिखाया गया एक्सपेरिमेंट कंपोज़र दिखेगा.

a792dfd4f82fee9c.png

अपने एक्सपेरिमेंट को नाम देकर, उससे जुड़ी वैकल्पिक जानकारी दें.

  1. अगले चरण में, आपको ऐप्लिकेशन में दिखने वाले अलग-अलग मैसेज लिखने होंगे. ये मैसेज, आपको एक्सपेरिमेंट में शामिल उपयोगकर्ताओं को भेजने हैं. हमारा पहला इन-ऐप्लिकेशन मैसेज "बेसलाइन" होगा. इसे एक्सपेरिमेंट के कंट्रोल के तौर पर इस्तेमाल किया जाएगा. हम इस मैसेज को "कृपया समीक्षा करें" के तौर पर इस्तेमाल कर सकते हैं:

50e3eb946c56501a.png

  1. अब हमारे पास एक बेसलाइन है. अब हम एक वैरिएंट तैयार करेंगे. यह ऐप्लिकेशन में दिखने वाला ऐसा मैसेज होगा जिसमें उपयोगकर्ताओं को कूपन कोड दिया जाएगा, ताकि वे समीक्षा लिख सकें. यह नीचे दी गई झलक में पूरी तरह से नहीं दिख रहा है. हालांकि, मैसेज का टाइटल "कूपन पाएं, समीक्षा दें!" है. साथ ही, मैसेज का मुख्य हिस्सा "अगली बार Burrito Cafe में जाने पर, चेकआउट के दौरान FRIENDLYEATS-15 कूपन कोड का इस्तेमाल करें. इससे आपको अपने ऑर्डर पर 15% की छूट मिलेगी. और हां, बाद में समीक्षा करना न भूलें!". हमें उम्मीद है कि इससे कुछ लोग, Burrito Cafe को आज़माने के लिए प्रेरित होंगे!

bed9182080bebb41.png

अगले चरण में, हम अपने ऐप्लिकेशन को टारगेट करेंगे और एक्सपोज़र सेट करेंगे. यह उन ज़रूरी शर्तें पूरी करने वाले उपयोगकर्ताओं का प्रतिशत है जो एक्सपेरिमेंट में शामिल किसी एक मैसेज को देखेंगे. ज़रूरी शर्तें पूरी करने वाले उपयोगकर्ताओं का मतलब है कि वे टारगेटिंग/ट्रिगर करने की शर्तों को पूरा करते हैं. इस उदाहरण के लिए, हम इसे 100% पर सेट कर सकते हैं, क्योंकि हम चाहते हैं कि सभी उपयोगकर्ताओं को बेसलाइन या कूपन वाला वैरिएंट दिखे. अगर आपको ऐसा कंट्रोल ग्रुप बनाना है जिसे ऐप्लिकेशन में कोई मैसेज न दिखाया जाए, तो इस एक्सपोज़र प्रतिशत को कम किया जा सकता है.

bd96bf5798d227f1.png

  1. इसके बाद, आपको एक्सपेरिमेंट के लिए कुछ लक्ष्य तय करने होंगे. यह एक्सपेरिमेंट का वह नतीजा है जिसे हमें मेज़र करना है. हम इसे पिछले सेक्शन में तय किए गए review_success Analytics इवेंट के तौर पर सेट करेंगे. ऐसा इसलिए, क्योंकि हमें यह देखना है कि रेस्टोरेंट की समीक्षाएं करने वाले लोगों पर, ऐप्लिकेशन में दिखने वाले अलग-अलग मैसेज का क्या असर पड़ता है. eb89d3b9f89ab43b.png
  2. शेड्यूल करने के लिए, हम कैंपेन को तुरंत शुरू होने देंगे. साथ ही, ट्रिगर करने की शर्त के तौर पर click_restaurant को सेट करेंगे, ताकि जब उपयोगकर्ता किसी रेस्टोरेंट पर क्लिक करें, तो उन्हें ऐप्लिकेशन में दिखने वाले दो मैसेज में से कोई एक मैसेज दिखे.

c57be430d41bfcad.png

  1. अब हमें सिर्फ़ अपने एक्सपेरिमेंट की समीक्षा करनी है और एक्सपेरिमेंट शुरू करें पर क्लिक करना है. इसके बाद, हम आराम से बैठकर एक्सपेरिमेंट से मिलने वाले डेटा का इंतज़ार कर सकते हैं!

566af8bace30c67.png

रीयल टाइम में डेटा कलेक्शन की जानकारी देखना

अब हमने एक्सपेरिमेंट शुरू कर दिया है. FriendlyEats के उपयोगकर्ताओं को किसी रेस्टोरेंट पर क्लिक करने पर, हमने जो दो इन-ऐप्लिकेशन मैसेज बनाए हैं उनमें से कोई एक मैसेज दिखेगा. यह मैसेज, बेसलाइन मैसेज या वैरिएंट मैसेज होगा. इससे हमारे उपयोगकर्ताओं को दो ग्रुप में बांटा जाएगा. यह इस आधार पर होगा कि उन्हें कौनसा मैसेज दिखा. इसके बाद, हम Firebase कंसोल में जाकर, दोनों ग्रुप के लाइव आंकड़ों की तुलना कर सकते हैं. इसके लिए, हमें A/B टेस्टिंग सेक्शन में जाना होगा. डेटा दिखने में कुछ समय लगेगा, क्योंकि हमें इंतज़ार करना होगा कि उपयोगकर्ता इन-ऐप्लिकेशन मैसेज देखें और उसके मुताबिक कार्रवाई करें. यहां बताया गया है कि ज़रूरत के मुताबिक डेटा मिलने के बाद, आपको नतीजे कैसे दिख सकते हैं:

8fa8a0edcd8a8ad4.png

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

8. बधाई

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

आगे क्या करना है?

यहां दिए गए कुछ कोडलैब देखें...

इस बारे में और पढ़ें

हमने Firebase In-App Messaging और Firebase A/B Testing की मदद से किए जा सकने वाले कामों की शुरुआत ही की है. ज़्यादा जानने के लिए, इन्हें देखें...

रेफ़रंस दस्तावेज़