TagManager

पब्लिक क्लास TagManager

यह Google Tag Manager (GTM) का मोबाइल पर लागू करने का तरीका है. इस्तेमाल का उदाहरण:

 Container container = TagManager.getInstance(context).openContainer(myContainerId);
 String value = container.getString("myKey");

 DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
 dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
कंटेनर, मैक्रो, टैग, और नियमों का संग्रह होता है. यह GTM ऐप्लिकेशन में बनाया जाता है और इसे एक कंटेनर आईडी असाइन किया जाता है. इस एपीआई में, इस कंटेनर आईडी का इस्तेमाल किया जाता है.

Container क्लास, किसी कुंजी के ज़रिए दी गई वैल्यू को वापस पाने के तरीके उपलब्ध कराती है. रूटीन getBoolean(String), getDouble(String), getLong(String), getString(String), कंटेनर से जुड़े नियमों के आधार पर, वैल्यू इकट्ठा करने वाले मैक्रो की कुंजी के लिए मौजूदा वैल्यू दिखाती हैं.

उदाहरण के लिए, अगर आपके कंटेनर में एक कुंजी speed के साथ एक मान मेमोरी मैक्रो है, जिसकी वैल्यू 32 है और चालू करने वाला नियम Language "en" है; और वैल्यू इकट्ठा करने वाले दूसरे मैक्रो में कुंजी speed है, जिसका मान 45 है और चालू करने वाला नियम Language "en" नहीं है, तो नीचे दिया गया कॉल करने पर: अगर डिवाइस की मौजूदा भाषा अंग्रेज़ी है, तो

 container.getLong("speed")
या तो 32 दिखाएगा.

डेटा लेयर एक मैप है, जिसमें ऐप्लिकेशन के बारे में सामान्य जानकारी होती है. DataLayer क्लास, डेटा लेयर से डेटा को पुश करने और वापस पाने के तरीके उपलब्ध कराती है. डेटा लेयर में event कुंजी पुश करने से, इस इवेंट से मेल खाने वाले टैग ट्रिगर हो जाएंगे.

ऐप्लिकेशन के साथ कंटेनर का शुरुआती वर्शन बंडल किया जाता है. इसे tagmanager/containerId नाम वाली एसेट के तौर पर रखा जाना चाहिए, जहां containerId वही कंटेनर आईडी है जिसका इस्तेमाल इस एपीआई में किया जाएगा. openContainer(String, Container.Callback) को कॉल करने पर कंटेनर, उन बंडल किए गए नियमों/मैक्रो के साथ वापस आ जाएगा. यूज़र इंटरफ़ेस (यूआई) में कंटेनर बनाया जाएगा और उसे डाउनलोड करने के लिए, 'डाउनलोड करें' बटन का इस्तेमाल किया जाएगा.

यूज़र इंटरफ़ेस (यूआई) में मौजूद कंटेनर में बदलाव किया जा सकता है और नया वर्शन पब्लिश किया जा सकता है. ऐसे मामले में, अगली बार जब मोबाइल ऐप्लिकेशन नेटवर्क से कंटेनर को (फ़िलहाल हर 12 घंटे में) रीफ़्रेश करेगा, तब उसे वही नया वर्शन मिलेगा. जब किसी एक get... रूटीन को कॉल किया जाता है, तो वैल्यू का हिसाब सबसे हाल के नियमों का इस्तेमाल करके लगाया जाता है.

डाउनलोड किया गया कंटेनर, डिवाइस पर सेव किया जाता है. openContainer(String, Container.Callback) को कॉल करने पर, यह सबसे पहले डिफ़ॉल्ट कंटेनर को लोड करेगा. इसके बाद, सेव किए गए किसी भी कंटेनर को एसिंक्रोनस तरीके से लोड करेगा. अगर कोई वर्शन नहीं मिलता है या वह 12 घंटे से ज़्यादा पुराना है, तो वह नेटवर्क से नया वर्शन लाने की कोशिश करेगा. Container.Callback से openContainer(String, Container.Callback) को पास करके, उन एसिंक्रोनस लोड की स्थिति का पता लगाया जा सकता है.

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

कंटेनर बनाने के बाद, close() को कॉल करें.

नेस्ट की गई क्लास की खास जानकारी

इंटरफ़ेस TagManager.Logger गड़बड़ी/चेतावनी/जानकारी/डीबग/वर्बोज़ लॉगिंग के लिए एक सामान्य इंटरफ़ेस. 
enum TagManager.RefreshMode कंटेनर को रीफ़्रेश करने के लिए मोड. 

सार्वजनिक तरीके से जुड़ी खास जानकारी

कंटेनर
getContainer(स्ट्रिंग containerId)
संदर्भ
DataLayer
स्टैटिक TagManager
getInstance(कॉन्टेक्स्ट कॉन्टेक्स्ट)
लॉगर
TagManager.RefreshMode
getRefreshMode() का इस्तेमाल करें.
कंटेनर
openContainer(स्ट्रिंग containerId, Container.Callback कॉलबैक)
void
void

सार्वजनिक तरीके

सार्वजनिक कंटेनर getContainer (स्ट्रिंग containerId)

containerId से जुड़ा हुआ खुला कंटेनर लौटाता है; अगर कंटेनर पहले से खुला नहीं है, तो null दिखाता है.

सार्वजनिक संदर्भ getContext ()

इस ऑब्जेक्ट से जुड़ा सेव किया गया कॉन्टेक्स्ट दिखाता है.

सार्वजनिक DataLayer getDataLayer ()

डेटा लेयर ऑब्जेक्ट दिखाता है, जिसका इस्तेमाल टैग मैनेजर करता है.

सार्वजनिक स्टैटिक TagManager getInstance (कॉन्टेक्स्ट कॉन्टेक्स्ट)

TagManager क्लास का सिंगलटन इंस्टेंस पाएं, अगर ज़रूरी हो, तो इसे बनाएं.

सार्वजनिक लॉगर getLogger ()

यह बताता है कि Tag Manager में किस लॉगर का इस्तेमाल किया जा रहा है.

सार्वजनिक TagManager.RefreshMode getRefreshMode ()

यह फ़ंक्शन सभी कंटेनर के लिए इस्तेमाल किए जाने वाले रीफ़्रेश मोड को दिखाता है.

सार्वजनिक कंटेनर openContainer (स्ट्रिंग containerId, Container.Callback containerId)

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

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

अगर दिए गए किसी containerId के लिए openContainer को दूसरी बार कॉल किया जाता है, तो आपको एक अपवाद माना जाएगा.

पैरामीटर
containerId खुलने वाले कंटेनर का आईडी
कॉलबैक एक ऑब्जेक्ट, जिसके अलग-अलग तरीकों को लोड होने की प्रक्रिया के दौरान कॉल किया जाएगा. ध्यान दें कि इन तरीकों को अलग-अलग थ्रेड से कॉल किया जा सकता है. इसके अलावा, openContainer के लौटने से पहले इन्हें कॉल किया जा सकता है.

सार्वजनिक शून्य setLogger (लॉगर logger)

Tag Manager में इस्तेमाल किए जा रहे मौजूदा लॉगर को बदलता है.

सार्वजनिक शून्य setRefreshMode (TagManager.RefreshMode मोड)

सभी कंटेनर के लिए इस्तेमाल किए जाने वाले रीफ़्रेश मोड को सेट करता है.