रिमोट कॉन्फ़िगरेशन कंडिशनल एक्सप्रेशन का रेफ़रंस

इस पेज में, शर्तों वाले एक्सप्रेशन बनाने के बारे में रेफ़रंस जानकारी दी गई है. इसके लिए, Remote Config बैकएंड एपीआई या Firebase कंसोल का इस्तेमाल किया जा सकता है. बैकएंड एपीआई सेट अप करने और उनका इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, प्रोग्राम के ज़रिए रिमोट कॉन्फ़िगरेशन में बदलाव करना लेख पढ़ें.

शर्तें बनाने के लिए इस्तेमाल किए जाने वाले एलिमेंट

Remote Config REST API, उन सभी एलिमेंट के साथ काम करता है जिनका इस्तेमाल, Remote Config को कॉन्फ़िगर करते समय, शर्तें बनाने के लिए किया जा सकता है:

एलिमेंट ब्यौरा
&&

अगर किसी शर्त के लिए एक से ज़्यादा एलिमेंट का इस्तेमाल किया जा रहा है, तो एलिमेंट का लॉजिकल "and" बनाने के लिए इसका इस्तेमाल किया जाता है. अगर किसी एलिमेंट का इस्तेमाल REST सिंटैक्स में && के बिना किया जाता है, तो उस एलिमेंट को एक शर्त के तौर पर माना जाता है.

ध्यान दें: ऐंपरसैंड के पहले और बाद में एक स्पेस होना ज़रूरी है. उदाहरण के लिए: element1 && element2.

app.build

किसी ऐप्लिकेशन के बिल्ड नंबर की वैल्यू के आधार पर, TRUE या FALSE के तौर पर नतीजा दिखाता है.

ध्यान दें: यह सुविधा सिर्फ़ Apple और Android डिवाइसों पर उपलब्ध है. Apple के लिए, CFBundleVersion की वैल्यू का इस्तेमाल करें. वहीं, Android के लिए, versionCode की वैल्यू का इस्तेमाल करें.

app.version

किसी ऐप्लिकेशन के वर्शन नंबर की वैल्यू के आधार पर, TRUE या FALSE के तौर पर नतीजा दिखाता है.

ध्यान दें: Android डिवाइसों के लिए, versionName की वैल्यू का इस्तेमाल करें. वहीं, Apple डिवाइसों के लिए, CFBundleShortVersionString की वैल्यू का इस्तेमाल करें.

app.id ऐप्लिकेशन के Firebase ऐप्लिकेशन आईडी के आधार पर एक एलिमेंट
app.audiences एक ऐसा एलिमेंट जो TRUE या FALSE के तौर पर नतीजा दिखाता है, जो Firebase Analytics ऑडियंस में उपयोगकर्ता की मौजूदगी या गैर-मौजूदगी पर आधारित है.
app.firstOpenTimestamp एक ऐसा एलिमेंट जो Google Analytics first_open इवेंट से मिले, उपयोगकर्ता के पहली बार ऐप्लिकेशन लॉन्च करने के समय के आधार पर होता है. इसमें ISO तारीख फ़ॉर्मैट का इस्तेमाल किया जाता है. साथ ही, इसमें एक तय समय क्षेत्र तय करने का विकल्प भी होता है. उदाहरण के लिए, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles'). अगर कोई समय क्षेत्र तय नहीं किया जाता है, तो जीएमटी का इस्तेमाल किया जाता है.
app.userProperty एक ऐसा एलिमेंट जो TRUE या FALSE के तौर पर नतीजा दिखाता है, जो Google Analytics उपयोगकर्ता प्रॉपर्टी की संख्या या स्ट्रिंग वैल्यू पर आधारित होता है.
app.operatingSystemAndVersion

एक ऐसा एलिमेंट जो उस ऑपरेटिंग सिस्टम के आधार पर होता है जिस पर कोई ऐप्लिकेशन चल रहा है. ओएस और ओएस वर्शन, तय किए गए टारगेट से मैच होने पर, TRUE के तौर पर नतीजा दिखाता है.

ध्यान दें: यह सुविधा सिर्फ़ वेब ऐप्लिकेशन के लिए उपलब्ध है.

app.browserAndVersion

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

ध्यान दें: यह सुविधा सिर्फ़ वेब ऐप्लिकेशन के लिए उपलब्ध है.

app.firebaseInstallationId एक ऐसा एलिमेंट जो खास डिवाइस इंस्टॉलेशन के आईडी के आधार पर होता है. इंस्टॉलेशन आईडी, तय किए गए इंस्टॉलेशन आईडी में से किसी एक से मैच होने पर, TRUE के तौर पर नतीजा दिखाता है.
app.customSignal एक ऐसा एलिमेंट जो कस्टम सिग्नल की शर्तों की संख्या, सिमैंटिक या स्ट्रिंग वैल्यू के आधार पर, TRUE या FALSE के तौर पर नतीजा दिखाता है.
device.country एक ऐसा एलिमेंट जो उस इलाके/देश के आधार पर होता है जिसमें कोई डिवाइस मौजूद है. इसके लिए, आईएसओ 3166-1 ऐल्फ़ा-2 स्टैंडर्ड का इस्तेमाल किया जाता है. उदाहरण के लिए, यूएस या यूके. कोई देश, अनुमानित देश के कोड से मैच होने पर, TRUE के तौर पर नतीजा दिखाता है.
device.dateTime एक ऐसा एलिमेंट जो डिवाइस के आखिरी फ़ेच के समय के आधार पर होता है. इसमें आईएसओ तारीख फ़ॉर्मैट का इस्तेमाल किया जाता है. साथ ही, इसमें एक तय समय क्षेत्र तय करने का विकल्प भी होता है. उदाहरण के लिए, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles').
device.language एक ऐसा एलिमेंट जो किसी डिवाइस पर चुनी गई भाषा के आधार पर होता है. भाषा को आईईटीएफ़ लैंग्वेज टैग का इस्तेमाल करके दिखाया जाता है. जैसे, es-ES, pt-BR या en-US. कोई भाषा, अनुमानित भाषा के कोड से मैच होने पर, TRUE के तौर पर नतीजा दिखाता है.
device.os एक ऐसा एलिमेंट जो किसी डिवाइस पर इस्तेमाल किए गए ऑपरेटिंग सिस्टम (Apple या Android) के आधार पर होता है. डिवाइस का ओएस, अनुमानित टाइप का होने पर, TRUE के तौर पर नतीजा दिखाता है.
percent उपयोगकर्ता को, रैंडम तरीके से असाइन किए गए फ़्रैक्शनल प्रतिशत में शामिल करने के आधार पर, TRUE के तौर पर नतीजा दिखाता है. इसमें सैंपल साइज़ 0.000001% जितना छोटा हो सकता है.

एक एलिमेंट वाली शर्त में तीन फ़ील्ड होते हैं:

  1. अपनी पसंद के मुताबिक तय किया गया name (ज़्यादा से ज़्यादा 100 वर्ण)
  2. एक शर्त वाला एक्सप्रेशन जो TRUE या FALSE के तौर पर नतीजा दिखाता है. यह ऊपर दिखाए गए एलिमेंट से बना होता है.
  3. (ज़रूरी नहीं) tagColor. यह "BLUE", "BROWN", "CYAN", "DEEP_ORANGE", "GREEN", "INDIGO", "LIME", "ORANGE", "PINK", "PURPLE" या "TEAL" हो सकता है. रंग केस-इनसेंसिटिव होता है. साथ ही, इससे सिर्फ़ यह तय होता है कि Firebase कंसोल में शर्तें कैसे दिखेंगी.

ये ऑपरेटर इस्तेमाल किए जा सकते हैं

उदाहरण के लिए, app.build.notContains([123, 456]) का नतीजा TRUE होता है, अगर ऐप्लिकेशन का मौजूदा बिल्ड 123 या 492 है. हालांकि, अगर ऐप्लिकेशन का मौजूदा बिल्ड 999 है, तो इसका नतीजा FALSE होता है.

उदाहरण के लिए, app.version.notContains([123, 456]) का नतीजा TRUE होता है, अगर ऐप्लिकेशन का मौजूदा वर्शन 123 या 492 है. हालांकि, अगर ऐप्लिकेशन का मौजूदा वर्शन 999 है, तो इसका नतीजा FALSE होता है.

एलिमेंट ये ऑपरेटर इस्तेमाल किए जा सकते हैं ब्यौरा
app.audiences .inAtLeastOne([...])

अगर मौजूदा ऑडियंस, सूची में मौजूद कम से कम एक ऑडियंस के नाम से मैच होती है, तो TRUE के तौर पर नतीजा दिखाता है.
उदाहरण के लिए:

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...])

अगर मौजूदा ऑडियंस, सूची में मौजूद कम से कम एक ऑडियंस के नाम से मैच नहीं होती है, तो TRUE के तौर पर नतीजा दिखाता है.

app.audiences .inAll([...])

अगर मौजूदा ऑडियंस, सूची में मौजूद हर ऑडियंस के नाम की सदस्य है, तो TRUE के तौर पर नतीजा दिखाता है.

app.audiences .notInAll([...])

अगर मौजूदा ऑडियंस, सूची में मौजूद किसी भी ऑडियंस की सदस्य नहीं है, तो TRUE के तौर पर नतीजा दिखाता है.

app.firstOpenTimestamp <=, >

शर्त में तय किए गए समय के साथ, first_open इवेंट के समय की तुलना करता है. साथ ही, ऑपरेटर के आधार पर, TRUE या FALSE के तौर पर नतीजा दिखाता है.
इस्तेमाल का उदाहरण:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles').
कोई रेंज तय करने के लिए:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') अगर कोई समय क्षेत्र तय नहीं किया जाता है, तो जीएमटी का इस्तेमाल किया जाता है.

app.userProperty <, <=, ==, !=, >=, >

अगर मौजूदा उपयोगकर्ता प्रॉपर्टी की तुलना, संख्या के आधार पर तय की गई वैल्यू से ऑपरेटर के हिसाब से की जाती है, तो TRUE के तौर पर नतीजा दिखाता है.

app.userProperty .contains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, मौजूदा उपयोगकर्ता प्रॉपर्टी की सबस्ट्रिंग है, तो TRUE के तौर पर नतीजा दिखाता है.

app.userProperty .notContains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, मौजूदा उपयोगकर्ता प्रॉपर्टी की सबस्ट्रिंग नहीं है, तो TRUE के तौर पर नतीजा दिखाता है.

app.userProperty .exactlyMatches([...])

अगर मौजूदा उपयोगकर्ता प्रॉपर्टी, सूची में मौजूद टारगेट वैल्यू में से किसी एक से पूरी तरह (केस-सेंसिटिव) मैच होती है, तो TRUE के तौर पर नतीजा दिखाता है.

app.userProperty .matches([...])

अगर सूची में मौजूद टारगेट रेगुलर एक्सप्रेशन में से कोई एक, मौजूदा वैल्यू की सबस्ट्रिंग या पूरी वैल्यू से मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है. पूरी स्ट्रिंग को मैच करने के लिए, रेगुलर एक्सप्रेशन से पहले "^" और बाद में "$" जोड़ें. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.

app.id ==

अगर तय की गई वैल्यू, ऐप्लिकेशन के ऐप्लिकेशन आईडी से मैच होती है, तो TRUE के तौर पर नतीजा दिखाता है.

app.build <, <=, ==, !=, >=, >

अगर ऐप्लिकेशन के मौजूदा बिल्ड की तुलना, संख्या के आधार पर तय की गई वैल्यू से ऑपरेटर के हिसाब से की जाती है, तो TRUE के तौर पर नतीजा दिखाता है.

app.build .contains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, ऐप्लिकेशन के मौजूदा बिल्ड की सबस्ट्रिंग है, तो TRUE के तौर पर नतीजा दिखाता है. उदाहरण के लिए, "a" और "bc", "abc" की सबस्ट्रिंग हैं.

app.build .notContains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, ऐप्लिकेशन के मौजूदा बिल्ड की सबस्ट्रिंग नहीं है, तो TRUE के तौर पर नतीजा दिखाता है.

app.build .exactlyMatches([...])

अगर ऐप्लिकेशन का मौजूदा बिल्ड, सूची में मौजूद टारगेट वैल्यू में से किसी एक से पूरी तरह मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है.

app.build .matches([...])

अगर सूची में मौजूद टारगेट रेगुलर एक्सप्रेशन में से कोई एक, मौजूदा वैल्यू की सबस्ट्रिंग या पूरी वैल्यू से मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है. पूरी स्ट्रिंग को मैच करने के लिए, रेगुलर एक्सप्रेशन से पहले "^" और बाद में "$" जोड़ें. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.

app.version <, <=, ==, !=, >=, >

अगर ऐप्लिकेशन के मौजूदा वर्शन की तुलना, संख्या के आधार पर तय की गई वैल्यू से ऑपरेटर के हिसाब से की जाती है, तो TRUE के तौर पर नतीजा दिखाता है.

ध्यान दें: संख्या के आधार पर तुलना करने वाले ऑपरेटर, सिर्फ़ संख्या वाले सिमैंटिक वर्शन (जैसे, 1.2.3) के साथ काम करते हैं. साथ ही, ये प्री-रिलीज़ सफ़िक्स या हाइफ़न (जैसे, -beta या -rc) के साथ काम नहीं करते. वर्शन स्ट्रिंग में, संख्या के अलावा सफ़िक्स या हाइफ़न शामिल होने पर, स्ट्रिंग ऑपरेटर (जैसे, .matches या .contains) का इस्तेमाल करें.

app.version .contains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, ऐप्लिकेशन के मौजूदा वर्शन की सबस्ट्रिंग है, तो TRUE के तौर पर नतीजा दिखाता है. उदाहरण के लिए, "a" और "bc", "abc" की सबस्ट्रिंग हैं.

app.version .notContains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, ऐप्लिकेशन के मौजूदा वर्शन की सबस्ट्रिंग नहीं है, तो TRUE के तौर पर नतीजा दिखाता है.

app.version .exactlyMatches([...])

अगर ऐप्लिकेशन का मौजूदा वर्शन, सूची में मौजूद टारगेट वैल्यू में से किसी एक से पूरी तरह मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है.

app.version .matches([...])

अगर सूची में मौजूद टारगेट रेगुलर एक्सप्रेशन में से कोई एक, मौजूदा वैल्यू की सबस्ट्रिंग या पूरी वैल्यू से मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है. पूरी स्ट्रिंग को मैच करने के लिए, रेगुलर एक्सप्रेशन से पहले "^" और बाद में "$" जोड़ें. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.

app.operatingSystemAndVersion .inOne([...])

अगर ओएस और वर्शन, सूची में मौजूद टारगेट वैल्यू में से किसी एक से मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है.
उदाहरण के लिए:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh')
    .version.==('10.15')])
    

app.browserAndVersion .inOne([...])

अगर ब्राउज़र और वर्शन, सूची में मौजूद टारगेट वैल्यू में से किसी एक से मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है.
उदाहरण के लिए:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...]

अगर इंस्टॉलेशन आईडी, सूची में तय किए गए किसी आईडी से मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है. इस्तेमाल का उदाहरण: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']

app.customSignal <, <=, ==, !=, >=, >

अगर कस्टम सिग्नल की शर्त की तुलना, संख्या के आधार पर तय की गई वैल्यू से ऑपरेटर के हिसाब से की जाती है, तो TRUE के तौर पर नतीजा दिखाता है.

app.customSignal .contains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, मौजूदा कस्टम सिग्नल की शर्त की सबस्ट्रिंग है, तो TRUE के तौर पर नतीजा दिखाता है.

app.customSignal .notContains([...])

अगर टारगेट वैल्यू में से कोई भी वैल्यू, मौजूदा कस्टम सिग्नल की शर्त की सबस्ट्रिंग है, तो TRUE के तौर पर नतीजा दिखाता है.

app.customSignal .exactlyMatches([...])

अगर मौजूदा कस्टम सिग्नल की शर्त, सूची में मौजूद टारगेट वैल्यू में से किसी एक से पूरी तरह (केस-सेंसिटिव) मैच होती है, तो TRUE के तौर पर नतीजा दिखाता है.

app.customSignal .matches([...])

अगर सूची में मौजूद टारगेट रेगुलर एक्सप्रेशन में से कोई एक, मौजूदा कस्टम सिग्नल की शर्त की सबस्ट्रिंग या पूरी वैल्यू से मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है. पूरी स्ट्रिंग को मैच करने के लिए, रेगुलर एक्सप्रेशन से पहले "^" और बाद में "$" जोड़ें. इसमें RE2 सिंटैक्स का इस्तेमाल किया जाता है.

version(app.customSignal) <, <=, ==, !=, >=, >

अगर कस्टम सिग्नल की शर्त की तुलना, सिमैंटिक के आधार पर तय की गई वैल्यू से ऑपरेटर के हिसाब से की जाती है, तो TRUE के तौर पर नतीजा दिखाता है.

device.country in [...]

अगर डिवाइस का देश, सूची में तय किए गए किसी देश से मैच होता है, तो TRUE के तौर पर नतीजा दिखाता है. इस्तेमाल का उदाहरण: device.country in ['gb', 'us']. डिवाइस के देश का कोड, अनुरोध में डिवाइस के आईपी पते या Firebase Analytics से तय किए गए देश के कोड का इस्तेमाल करके तय किया जाता है. यह तब होता है, जब Analytics का डेटा Firebase के साथ शेयर किया जाता है.

device.dateTime <=, >

मौजूदा समय की तुलना, शर्त के टारगेट समय से करता है. साथ ही, ऑपरेटर के आधार पर, TRUE या FALSE के तौर पर नतीजा दिखाता है. इस्तेमाल का उदाहरण: dateTime < dateTime('2017-03-22T13:39:44').

device.language in [...]

अगर ऐप्लिकेशन की कोई भाषा, सूची में मौजूद किसी भाषा से मैच होती है, तो TRUE के तौर पर नतीजा दिखाता है. इस्तेमाल का उदाहरण: device.language in ['en-UK', 'en-US'].

device.os ==, != अगर डिवाइस का ऑपरेटिंग सिस्टम, उस फ़ील्ड में मौजूद वैल्यू से ऑपरेटर के हिसाब से तुलना करता है, तो TRUE के तौर पर नतीजा दिखाता है.
percent <=, >, between

अगर percent फ़ील्ड में मौजूद वैल्यू की तुलना, रैंडम तरीके से असाइन की गई वैल्यू से ऑपरेटर के हिसाब से की जाती है, तो TRUE के तौर पर नतीजा दिखाता है.

शर्त के नियम के टाइप में बताए गए तरीके के मुताबिक, किसी तय प्रतिशत की रेंज के लिए, ऐप्लिकेशन इंस्टेंस का रैंडम तरीके से असाइन किया गया नया ग्रुप चुनने के लिए, सीड तय किया जा सकता है.

ऐसा करने के लिए, ऑपरेटर से पहले सीड का नाम डालें. जैसे, यहां दिए गए उदाहरण में:

percent('keyName') <= 10

कोई खास रेंज कॉन्फ़िगर करने के लिए, between ऑपरेटर का इस्तेमाल किया जा सकता है. डिफ़ॉल्ट सीड का इस्तेमाल करके, 20 से 60 के बीच के उपयोगकर्ताओं की रेंज कॉन्फ़िगर करने के लिए: डिफ़ॉल्ट सीड:

percent between 20 and 60

कस्टम सीड का इस्तेमाल करके, 60 से 80 के बीच के उपयोगकर्ताओं की रेंज कॉन्फ़िगर करने के लिए:

percent('seedName') between 60 and 80