इस दस्तावेज़ में, सर्वर-साइड टैगिंग के लिए एपीआई के बारे में बताया गया है.
addEventCallback
एक कॉलबैक फ़ंक्शन को रजिस्टर करता है, जिसे किसी इवेंट के खत्म होने पर ट्रिगर किया जाएगा. इवेंट के सभी टैग लागू होने के बाद, कॉलबैक ट्रिगर होगा. कॉलबैक में दो वैल्यू पास की जाती हैं: फ़ंक्शन को कॉल करने वाले कंटेनर का आईडी और इवेंट के बारे में जानकारी देने वाला ऑब्जेक्ट.
जब इस एपीआई का इस्तेमाल किसी टैग में किया जाता है, तो यह मौजूदा इवेंट से जुड़ा होता है. जब इस एपीआई का इस्तेमाल किसी क्लाइंट में किया जाता है, तो इसे runContainer
एपीआई के bindToEvent
फ़ंक्शन का इस्तेमाल करके, किसी खास इवेंट से बंधा होना चाहिए. ज़्यादा जानकारी के लिए,
उदाहरण देखें.
सिंटैक्स
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
callback |
फ़ंक्शन | इवेंट के खत्म होने पर, ट्रिगर होने वाला फ़ंक्शन. |
eventData
ऑब्जेक्ट में यह डेटा शामिल होता है:
कुंजी का नाम | टाइप | ब्यौरा |
---|---|---|
tags |
कलेक्शन |
टैग डेटा ऑब्जेक्ट का कलेक्शन. इवेंट के दौरान ट्रिगर हुए हर टैग के लिए, इस कलेक्शन में एक एंट्री होगी. टैग डेटा ऑब्जेक्ट में, टैग का आईडी (id ), उसके ट्रिगर होने की स्थिति (status ), और ट्रिगर होने का समय (executionTime ) शामिल होता है. टैग डेटा में, टैग पर कॉन्फ़िगर किया गया अतिरिक्त टैग मेटाडेटा भी शामिल होगा.
|
क्लाइंट में:
const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
runContainer(evt, /* onComplete= */ (bindToEvent) => {
bindToEvent(addEventCallback)((containerId, eventData) => {
logToConsole('Event Number: ' + i);
eventData.tags.forEach((tag) => {
logToConsole('Tag ID: ' + tag.id);
logToConsole('Tag Status: ' + tag.status);
logToConsole('Tag Execution Time: ' + tag.executionTime);
});
});
if (events.length === ++eventsCompleted) {
returnResponse();
}
});
});
टैग में:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
इससे जुड़ी अनुमतियां
callLater
किसी फ़ंक्शन को असिंक्रोनस तरीके से कॉल करने के लिए शेड्यूल करता है. मौजूदा कोड मिलने के बाद, फ़ंक्शन को कॉल किया जाएगा. यह setTimeout(<function>, 0)
के बराबर है.
उदाहरण
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
सिंटैक्स
callLater(function)
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
function |
फ़ंक्शन | कॉल किया जाने वाला फ़ंक्शन. |
इससे जुड़ी अनुमतियां
कोई नहीं.
claimRequest
अनुरोध पर दावा करने के लिए, क्लाइंट में इस एपीआई का इस्तेमाल करें. किसी अनुरोध पर दावा करने के बाद, कंटेनर में अन्य क्लाइंट नहीं चलते.
टैग या वैरिएबल में कॉल करने पर, यह एपीआई कोई अपवाद दिखाता है. अगर क्लाइंट के रिटर्न होने के बाद इसे कॉल किया जाता है, तो यह एपीआई एक अपवाद दिखाता है. उदाहरण के लिए, अगर इसे किसी असाइनोक कॉलबैक में कॉल किया जाता है, जैसे कि callLater
या runContainer
onComplete
फ़ंक्शन में.
runContainer
एपीआई को कॉल करने से पहले, क्लाइंट को इस एपीआई का इस्तेमाल करके अनुरोध पर दावा करना चाहिए.
उदाहरण
const claimRequest = require('claimRequest');
claimRequest();
सिंटैक्स
claimRequest();
इससे जुड़ी अनुमतियां
कोई नहीं.
computeEffectiveTldPlusOne
यह फ़ंक्शन, दिए गए डोमेन या यूआरएल का असरदार टॉप-लेवल डोमेन + 1 (eTLD+1) दिखाता है. eTLD+1 का हिसाब लगाने के लिए, डोमेन का आकलन सार्वजनिक सफ़िक्स सूची के नियमों के हिसाब से किया जाता है. आम तौर पर, eTLD+1 सबसे ऊंचे लेवल का डोमेन होता है, जिस पर कुकी सेट की जा सकती है.
अगर आर्ग्युमेंट शून्य या तय नहीं है, तो आर्ग्युमेंट की वैल्यू में कोई बदलाव किए बिना उसे दिखाया जाता है. ऐसा न होने पर, आर्ग्युमेंट को स्ट्रिंग में बदल दिया जाता है. अगर आर्ग्युमेंट कोई मान्य डोमेन या यूआरएल नहीं है, तो खाली स्ट्रिंग दिखती है. अगर सर्वर, सार्वजनिक सफ़िक्स की सूची फ़ेच नहीं कर पाता है, तो आर्ग्युमेंट की वैल्यू में कोई बदलाव नहीं किया जाता.
उदाहरण
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
सिंटैक्स
computeEffectiveTldPlusOne(domainOrUrl);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
domainOrUrl |
स्ट्रिंग | वह डोमेन या यूआरएल जिस पर eTLD+1 का हिसाब लगाना है. |
इससे जुड़ी अनुमतियां
कोई नहीं.
createRegex
यह रेगुलर एक्सप्रेशन का नया इंस्टेंस बनाता है और उसे ऑब्जेक्ट में लपेटकर दिखाता है. रेगुलर एक्सप्रेशन को सीधे तौर पर ऐक्सेस नहीं किया जा सकता. हालांकि, इसे testRegex
एपीआई,
String.replace()
, String.match()
, और String.search()
में पास किया जा सकता है.
अगर रेगुलर एक्सप्रेशन अमान्य है या सर्वर पर Re2 उपलब्ध नहीं है, तो null
दिखाता है.
यह एपीआई, Re2 के लागू होने का इस्तेमाल करता है. सर्वर की Docker इमेज का वर्शन 2.0.0 या उसके बाद का होना चाहिए.
उदाहरण
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
सिंटैक्स
createRegex(pattern, flags);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
pattern |
स्ट्रिंग | रेगुलर एक्सप्रेशन का टेक्स्ट. |
flags |
स्ट्रिंग | यह एक वैकल्पिक स्ट्रिंग है, जिसमें बनाए जा रहे रेगुलर एक्सप्रेशन के लिए फ़्लैग शामिल होते हैं. `g` (ग्लोबल) और `i` (छोटे-बड़े अक्षरों को अनदेखा करें) का इस्तेमाल किया जा सकता है. बाकी सभी वर्णों को चुपचाप अनदेखा कर दिया जाता है. |
इससे जुड़ी अनुमतियां
कोई नहीं.
इमेज का कम से कम वर्शन
decodeUri
दिए गए यूआरआई में मौजूद, कोड में बदले गए किसी भी वर्ण को डिकोड करता है. डिकोड किए गए यूआरआई को दिखाने वाली स्ट्रिंग दिखाता है. अमान्य इनपुट मिलने पर, undefined
दिखाता है.
उदाहरण
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
सिंटैक्स
decodeUri(encoded_uri);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
encoded_uri |
स्ट्रिंग |
ऐसा यूआरआई जिसे
encodeUri() या किसी अन्य तरीके से एन्कोड किया गया हो.
|
इससे जुड़ी अनुमतियां
कोई नहीं.
decodeUriComponent
दिए गए यूआरआई कॉम्पोनेंट में, कोड में बदले गए किसी भी वर्ण को डिकोड करता है. डिकोड किए गए यूआरआई कॉम्पोनेंट को दिखाने वाली स्ट्रिंग दिखाता है. अमान्य इनपुट मिलने पर undefined
दिखाता है.
उदाहरण
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
सिंटैक्स
decodeUriComponent(encoded_uri_component);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
encoded_uri_component |
स्ट्रिंग |
यूआरआई कॉम्पोनेंट, जिसे encodeUriComponent() या किसी अन्य तरीके से कोड में बदला गया हो.
|
इससे जुड़ी अनुमतियां
कोई नहीं.
encodeUri
खास वर्णों को एस्केप करके, कोड में बदला गया यूनिफ़ॉर्म रिसॉर्स आइडेंटिफ़ायर (यूआरआई) दिखाता है. यह एक स्ट्रिंग दिखाता है, जो यूआरआई के तौर पर कोड में बदली गई दी गई स्ट्रिंग को दिखाती है.
उदाहरण
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
सिंटैक्स
encodeUri(uri);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
uri |
स्ट्रिंग | पूरा यूआरआई. |
इससे जुड़ी अनुमतियां
कोई नहीं.
encodeUriComponent
खास वर्णों को एस्केप करके, कोड में बदला गया यूनिफ़ॉर्म रिसॉर्स आइडेंटिफ़ायर (यूआरआई) दिखाता है. एक स्ट्रिंग दिखाता है, जो यूआरआई के तौर पर कोड में बदली गई दी गई स्ट्रिंग को दिखाती है.
उदाहरण
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
सिंटैक्स
encodeUriComponent(str);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
str |
स्ट्रिंग | यूआरआई का कॉम्पोनेंट. |
इससे जुड़ी अनुमतियां
कोई नहीं.
extractEventsFromMpv1
यह मेज़रमेंट प्रोटोकॉल V1 के इनकमिंग अनुरोध को, यूनिफ़ाइड स्कीमा फ़ॉर्मैट में इवेंट की सूची में बदल देता है. निकाले गए इवेंट की सूची दिखाता है. अगर अनुरोध सही फ़ॉर्मैट में नहीं है, तो गड़बड़ी का मैसेज दिखाता है.
उदाहरण
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
const events = extractEventsFromMpv1();
for (let i = 0; i < events.length; ++i) {
const event = events[i];
// Process event.
}
}
सिंटैक्स
extractEventsFromMpv1();
इससे जुड़ी अनुमतियां
इसके लिए, read_request
की अनुमति की ज़रूरत होती है. अनुमति को कॉन्फ़िगर करके, कम से कम इनका ऐक्सेस दिया जाना चाहिए:
body
query parameters
extractEventsFromMpv2
यह मेज़रमेंट प्रोटोकॉल V2 के इनकमिंग अनुरोध को, यूनिफ़ाइड स्कीमा फ़ॉर्मैट में इवेंट की सूची में बदल देता है. निकाले गए इवेंट की सूची दिखाता है. अगर अनुरोध सही फ़ॉर्मैट में नहीं है, तो गड़बड़ी का मैसेज दिखाता है.
उदाहरण
const extractEventsFromMpv2 = require('extractEventsFromMpv2');
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
const events = extractEventsFromMpv2();
for (let i = 0; i < events.length; ++i) {
const event = events[i];
// Process event.
}
}
सिंटैक्स
extractEventsFromMpv2();
इससे जुड़ी अनुमतियां
इसके लिए, read_request
की अनुमति की ज़रूरत होती है. अनुमति को कॉन्फ़िगर करके, कम से कम इनका ऐक्सेस दिया जाना चाहिए:
body
query parameters
fromBase64
base64 कोड में बदली गई स्ट्रिंग को डिकोड करता है. इनपुट अमान्य होने पर, undefined
दिखाता है.
सिंटैक्स
fromBase64(base64EncodedString);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
base64EncodedString |
स्ट्रिंग | Base64 कोड में बदली गई स्ट्रिंग. |
उदाहरण
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
इससे जुड़ी अनुमतियां
कोई नहीं.
generateRandom
यह फ़ंक्शन, दी गई रेंज में कोई भी संख्या (पूर्णांक) दिखाता है.
उदाहरण
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
सिंटैक्स
generateRandom(min, max);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
min |
number | दिखाए गए पूर्णांक की कम से कम संभावित वैल्यू (इसमें शामिल है). |
max |
number | दिखाए गए पूर्णांक की सबसे बड़ी संभावित वैल्यू (इसमें शामिल है). |
इससे जुड़ी अनुमतियां
कोई नहीं.
getAllEventData
इवेंट डेटा की कॉपी दिखाता है.
सिंटैक्स
getAllEventData();
इससे जुड़ी अनुमतियां
getClientName
मौजूदा क्लाइंट का नाम दिखाने वाली स्ट्रिंग दिखाता है.
सिंटैक्स
getClientName();
इससे जुड़ी अनुमतियां
getContainerVersion
मौजूदा कंटेनर के डेटा वाला ऑब्जेक्ट दिखाता है. दिखाए गए ऑब्जेक्ट में ये फ़ील्ड होंगे:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
उदाहरण
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
सिंटैक्स
getContainerVersion();
इससे जुड़ी अनुमतियां
getCookieValues
यह एक ऐरे दिखाता है, जिसमें दिए गए नाम वाली सभी कुकी की वैल्यू होती हैं.
उदाहरण
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
सिंटैक्स
getCookieValues(name[, noDecode]);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
name |
स्ट्रिंग | कुकी का नाम. |
noDecode |
boolean |
अगर true है, तो कुकी वैल्यू को डिकोड किए बिना ही दिखाया जाएगा. डिफ़ॉल्ट रूप से, यह false पर सेट होती है.
|
इससे जुड़ी अनुमतियां
getEventData
इवेंट डेटा में दिए गए पाथ पर मौजूद वैल्यू की कॉपी दिखाता है. अगर कोई इवेंट डेटा नहीं है या दिए गए पाथ पर कोई वैल्यू नहीं है, तो undefined
दिखाता है.
उदाहरण
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
keyPath |
any |
कुंजी का पाथ, जिसमें पाथ के कॉम्पोनेंट को बिंदु लगाकर अलग-अलग किया जाता है. पाथ के कॉम्पोनेंट, किसी ऑब्जेक्ट की कुंजियां हो सकती हैं या किसी कलेक्शन में इंडेक्स हो सकते हैं. अगर
keyPath कोई स्ट्रिंग नहीं है, तो उसे स्ट्रिंग में बदल दिया जाता है.
|
सिंटैक्स
getEventData(keyPath);
इससे जुड़ी अनुमतियां
getGoogleAuth
अनुमति देने वाला एक ऑब्जेक्ट दिखाता है. इसे sendHttpGet
या sendHttpRequest
के साथ इस्तेमाल करने पर, Google Cloud API के लिए अनुमति देने वाला हेडर शामिल होगा. यह एपीआई, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करके, सर्वर एनवायरमेंट से क्रेडेंशियल अपने-आप ढूंढता है.
उदाहरण
const getGoogleAuth = require('getGoogleAuth');
const logToConsole = require('logToConsole');
const sendHttpGet = require('sendHttpGet');
const auth = getGoogleAuth({
scopes: ['https://www.googleapis.com/auth/datastore']
});
sendHttpGet(
'https://firestore.googleapis.com/v1/projects/my-project/databases/(default)/documents/collection/document',
{authorization: auth}
).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
logToConsole('Result: ' + result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
});
सिंटैक्स
getGoogleAuth(scopes);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
scopes
|
कलेक्शन | OAuth 2.0 Google API के स्कोप का ऐरे, जिनके लिए ऐक्सेस का अनुरोध करना है. |
इससे जुड़ी अनुमतियां
इसके लिए, use_google_credentials
की अनुमति की ज़रूरत होती है. अनुमति को एक या उससे ज़्यादा अनुमति वाले स्कोप के साथ कॉन्फ़िगर किया जाना चाहिए.
getGoogleScript
Google स्क्रिप्ट के पहले से तय किए गए सेट से कोई संसाधन वापस लाता है. साथ ही, स्क्रिप्ट और उससे जुड़े कैश मेमोरी मेटाडेटा के साथ Promise दिखाता है.
प्रॉमिस, दो कुंजियों वाले ऑब्जेक्ट में रिज़ॉल्व होगा: script
और
metadata
. अगर अनुरोध पूरा नहीं होता है, तो वादा reason
कुंजी के साथ अस्वीकार कर दिया जाएगा.
metadata
ऑब्जेक्ट में, संसाधन के रिस्पॉन्स हेडर के आधार पर, कैश मेमोरी में सेव करने से जुड़ा यह मेटाडेटा शामिल होगा. हर फ़ील्ड सिर्फ़ तब मौजूद होगा, जब संसाधन के रिस्पॉन्स में उससे जुड़ा हेडर मौजूद होगा.
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
उदाहरण
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
सिंटैक्स
getGoogleScript(script[, options]);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
script |
स्ट्रिंग |
स्क्रिप्ट का नाम. ये स्क्रिप्ट इस्तेमाल की जा सकती हैं:
'ANALYTICS' , 'GTAG' , और
'GTM' .'ANALYTICS'
विकल्प, https://www.google-analytics.com/analytics.js से Google Analytics स्क्रिप्ट फ़ेच करता है.'GTAG' विकल्प, https://www.googletagmanager.com/gtag/js से ग्लोबल साइट टैग (gtag.js) स्क्रिप्ट फ़ेच करता है.'GTM' विकल्प, https://www.googletagmanager.com/gtm.js से Google Tag Manager स्क्रिप्ट को फ़ेच करता है.
|
options |
ऑब्जेक्ट | अनुरोध के लिए वैकल्पिक विकल्प. काम करने वाले विकल्पों के लिए नीचे देखें. |
विकल्प
विकल्प | टाइप | ब्यौरा |
---|---|---|
id |
स्ट्रिंग |
gtag मेज़रमेंट आईडी वाले 'GTAG' और वेब कंटेनर आईडी वाले 'GTM' पर लागू होता है (उदाहरण के लिए, GTM-XXXX).
|
debug |
any | अगर यह सही है, तो मेज़रमेंट स्क्रिप्ट के डीबग वर्शन का अनुरोध करता है और उसे दिखाता है. |
timeout |
number |
अनुरोध के टाइम आउट की वैल्यू मिलीसेकंड में होनी चाहिए. ऐसी वैल्यू को अनदेखा कर दिया जाता है जो पॉज़िटिव नहीं हैं. अगर
अनुरोध टाइम आउट हो जाता है, तो स्क्रिप्ट वैल्यू के लिए undefined और मेटाडेटा ऑब्जेक्ट के लिए {} के साथ कॉलबैक को शुरू किया जाएगा.
|
जिन विकल्प बटन की पहचान नहीं हो सकी उन्हें अनदेखा कर दिया जाता है.
इससे जुड़ी अनुमतियां
इसके लिए, send_http
की अनुमति की ज़रूरत होती है. अनुमति को कम से कम इनके ऐक्सेस की अनुमति देने के लिए कॉन्फ़िगर किया जाना चाहिए:
- Google Domains को अनुमति दें
getRemoteAddress
यह उस आईपी पते की स्ट्रिंग दिखाता है जहां से अनुरोध शुरू हुआ था. जैसे, Forwarded और X-Forwarded-For जैसे अनुरोध हेडर को पढ़कर, आईपीवी4 के लिए 12.345.67.890
या आईपीवी6 के लिए 2001:0db8:85a3:0:0:8a2e:0370:7334
दिखाता है.
ध्यान दें: यह एपीआई, ऑरिजिन आईपी का पता लगाने की पूरी कोशिश करता है. हालांकि, यह इस बात की गारंटी नहीं दे सकता कि नतीजा सटीक है.
सिंटैक्स
getRemoteAddress();
इससे जुड़ी अनुमतियां
इसके लिए, read_request
की अनुमति की ज़रूरत होती है. अनुमति को कॉन्फ़िगर करके, कम से कम इनका ऐक्सेस दिया जाना चाहिए:
- हेडर
Forwarded
औरX-Forwarded-For
- रिमोट आईपी पता
getRequestBody
अगर अनुरोध बॉडी मौजूद है, तो उसे स्ट्रिंग के तौर पर दिखाता है. अगर अनुरोध बॉडी मौजूद नहीं है, तो undefined
दिखाता है.
सिंटैक्स
getRequestBody();
इससे जुड़ी अनुमतियां
getRequestHeader
नाम वाले अनुरोध हेडर की वैल्यू को स्ट्रिंग के तौर पर दिखाता है. हालांकि, अगर वैल्यू मौजूद नहीं है, तो undefined
दिखाता है. अगर हेडर दोहराया जाता है, तो दिखाई गई वैल्यू को ', '
के साथ जोड़ दिया जाता है.
उदाहरण
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
सिंटैक्स
getRequestHeader(headerName);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
headerName |
स्ट्रिंग | हेडर का नाम. यह वैल्यू, केस-इनसेंसिटिव होती है. |
इससे जुड़ी अनुमतियां
getRequestMethod
अनुरोध का तरीका, जैसे कि 'GET'
या 'POST'
को स्ट्रिंग के तौर पर दिखाता है.
उदाहरण
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
सिंटैक्स
getRequestMethod();
इससे जुड़ी अनुमतियां
कोई नहीं.
getRequestPath
क्वेरी स्ट्रिंग के बिना अनुरोध पाथ दिखाता है. उदाहरण के लिए, अगर यूआरएल '/foo?id=123'
है, तो यह '/foo'
दिखाता है. पाथ से सर्वर कंटेनर यूआरएल प्रीफ़िक्स को अपने-आप हटा देता है. उदाहरण के लिए, अगर सर्वर कंटेनर का यूआरएल https://example.com/analytics
और अनुरोध पाथ '/analytics/foo'
है, तो यह '/foo'
दिखाता है.
उदाहरण
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
सिंटैक्स
getRequestPath();
इससे जुड़ी अनुमतियां
getRequestQueryParameter
नाम वाले क्वेरी स्ट्रिंग पैरामीटर की डिकोड की गई वैल्यू को स्ट्रिंग के तौर पर दिखाता है. अगर पैरामीटर मौजूद नहीं है, तो undefined
दिखाता है. अगर क्वेरी स्ट्रिंग में पैरामीटर दोहराया जाता है, तो क्वेरी स्ट्रिंग में दिखने वाली पहली वैल्यू दिखा दी जाएगी.
उदाहरण
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
सिंटैक्स
getRequestQueryParameter(name);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
name |
स्ट्रिंग | क्वेरी पैरामीटर का नाम. |
इससे जुड़ी अनुमतियां
getRequestQueryParameters
आने वाले एचटीटीपी अनुरोध के क्वेरी पैरामीटर को ऑब्जेक्ट के तौर पर दिखाता है. यह ऑब्जेक्ट, क्वेरी पैरामीटर के नामों को उससे जुड़ी वैल्यू या वैल्यू से मैप करता है. पैरामीटर के नाम और वैल्यू को डिकोड किया जाता है.
उदाहरण
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
सिंटैक्स
getRequestQueryParameters();
इससे जुड़ी अनुमतियां
getRequestQueryString
अनुरोध क्वेरी को स्ट्रिंग के तौर पर दिखाता है. इसमें सवाल का निशान नहीं होता. अगर अनुरोध यूआरएल में क्वेरी स्ट्रिंग शामिल नहीं है, तो यह खाली स्ट्रिंग दिखाता है.
उदाहरण
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
सिंटैक्स
getRequestQueryString();
इससे जुड़ी अनुमतियां
getTimestamp
अब काम नहीं करता. getTimestampMillis का इस्तेमाल करें.
यह एक संख्या दिखाता है, जो Date.now()
से मिली यूनिक्स इकोपॉइंट के बाद से, मिलीसेकंड में मौजूदा समय दिखाता है.
सिंटैक्स
getTimestamp();
इससे जुड़ी अनुमतियां
कोई नहीं.
getTimestampMillis
यह एक संख्या दिखाता है, जो Date.now()
से मिली यूनिक्स इकोपॉइंट के बाद से, मिलीसेकंड में मौजूदा समय दिखाता है.
सिंटैक्स
getTimestampMillis();
इससे जुड़ी अनुमतियां
कोई नहीं.
getType
दी गई वैल्यू के टाइप की जानकारी देने वाली स्ट्रिंग दिखाता है.
इनपुट टाइप | रिटर्न की गई वैल्यू |
---|---|
स्ट्रिंग | 'string' |
number | 'number' |
boolean | 'boolean' |
null | 'null' |
undefined | 'undefined' |
कलेक्शन | 'array' |
ऑब्जेक्ट | 'object' |
सुविधा | 'function' |
उदाहरण
const getType = require('getType');
const type = getType(value);
if (type === 'string') {
// Handle string input.
} else if (type === 'number') {
// Handle numeric input.
} else {
logToConsole('Unsupported input type: ', type);
}
सिंटैक्स
getType(value);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
value |
any | इनपुट वैल्यू. |
इससे जुड़ी अनुमतियां
कोई नहीं.
hmacSha256
SHA-256 के साथ हैश-आधारित मैसेज की पुष्टि करने वाले कोड (एचएमएसी) का इस्तेमाल करके, एन्क्रिप्ट किए गए हस्ताक्षर का हिसाब लगाता है. डिफ़ॉल्ट रूप से, base64url
एन्कोडिंग पर सेट होती है.
इस एपीआई का इस्तेमाल करने के लिए, सर्वर पर SGTM_CREDENTIALS
एनवायरमेंट वैरिएबल को UTF-8 कोड में बदली गई JSON पासकोड फ़ाइल के पाथ पर सेट करें. यह फ़ाइल, इस फ़ॉर्मैट में होनी चाहिए:
{
"keys": {
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
}
ये वैल्यू, base64 कोड में बदली गई एचएमएसी कुंजियां हैं. JSON टेक्स्ट, बाइट ऑर्डर मार्कर से शुरू नहीं होना चाहिए.
उदाहरण
const hmacSha256 = require('hmacSha256');
const toBase64 = require('toBase64');
const header = toBase64('{"alg":"HS256","typ":"JWT"}', {urlEncoding: true});
const claim = toBase64('{"sub":"1234567890","iat":1698164946}', {urlEncoding: true});
const signature = hmacSha256(header + '.' + claim, 'key1');
const jwt = header + "." + claim + '.' + signature;
सिंटैक्स
hmacSha256(data, keyId, options)
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
data |
स्ट्रिंग | एचएमएसी वैल्यू का हिसाब लगाने के लिए डेटा. |
keyId
|
स्ट्रिंग | JSON कुंजी वाली फ़ाइल में मौजूद कुंजी का आईडी, जिसमें इस्तेमाल की जाने वाली कुंजी के बारे में बताया गया है. |
options
|
ऑब्जेक्ट | ज़रूरी नहीं एपीआई कॉन्फ़िगरेशन. (नीचे दिए गए विकल्प देखें.) |
विकल्प
विकल्प | टाइप | ब्यौरा |
---|---|---|
outputEncoding
|
स्ट्रिंग | रिटर्न वैल्यू के लिए एन्कोडिंग फ़ॉर्मैट तय करता है. hex ,
base64 या base64url फ़ॉर्मैट इस्तेमाल किए जा सकते हैं. अगर कोई वैल्यू नहीं दी गई है, तो डिफ़ॉल्ट रूप से base64url लागू हो जाती है. |
इससे जुड़ी अनुमतियां
इमेज का कम से कम वर्शन
isRequestMpv1
अगर आने वाला अनुरोध, मेज़रमेंट प्रोटोकॉल V1 का अनुरोध है, तो true
दिखाता है. अगर ऐसा नहीं है, तो false
दिखाता है.
उदाहरण
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
सिंटैक्स
isRequestMpv1();
इससे जुड़ी अनुमतियां
कोई नहीं.
isRequestMpv2
अगर आने वाला अनुरोध, मेज़रमेंट प्रोटोकॉल V2 का अनुरोध है, तो true
दिखाता है. अगर ऐसा नहीं है, तो false
दिखाता है.
उदाहरण
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
सिंटैक्स
isRequestMpv2();
इससे जुड़ी अनुमतियां
कोई नहीं.
logToConsole
कंसोल में अपने आर्ग्युमेंट लॉग करता है.
ये लॉग, Google Cloud Console में लॉग एक्सप्लोरर में दिखते हैं.
इस एपीआई से बनाई गई लॉग एंट्री देखने के लिए, लॉग एक्सप्लोरर से क्वेरी logName =~ "stdout"
चलाएं.
उदाहरण
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
सिंटैक्स
logToConsole(argument1[, argument2, ...]);
पैरामीटर
एपीआई एक या एक से ज़्यादा आर्ग्युमेंट लेता है. ज़रूरत पड़ने पर, हर आर्ग्युमेंट को स्ट्रिंग में बदल दिया जाता है और उसे कंसोल में लॉग कर दिया जाता है.
इससे जुड़ी अनुमतियां
makeInteger
दी गई वैल्यू को संख्या (पूर्णांक) में बदलता है.
सिंटैक्स
makeInteger(value);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
value |
कोई भी टाइप | वह वैल्यू जिसे बदलना है. |
इससे जुड़ी अनुमतियां
कोई नहीं.
makeNumber
दी गई वैल्यू को संख्या में बदलता है.
सिंटैक्स
makeNumber(value);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
value |
कोई भी टाइप | वह वैल्यू जिसे बदलना है. |
इससे जुड़ी अनुमतियां
कोई नहीं.
makeString
दी गई वैल्यू को स्ट्रिंग के तौर पर दिखाता है.
सिंटैक्स
makeString(value);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
value |
कोई भी टाइप | वह वैल्यू जिसे बदलना है. |
इससे जुड़ी अनुमतियां
कोई नहीं.
makeTableMap
दो कॉलम वाले टेबल ऑब्जेक्ट को Map
में बदलता है. इसका इस्तेमाल, दो कॉलम वाले SIMPLE_TABLE
टेंप्लेट फ़ील्ड को मैनेज करने में आसान फ़ॉर्मैट में बदलने के लिए किया जाता है.
उदाहरण के लिए, यह फ़ंक्शन किसी टेबल ऑब्जेक्ट को बदल सकता है:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
को मैप में जोड़ने के लिए:
{
'k1': 'v1',
'k2': 'v2'
}
ऑब्जेक्ट दिखाता है: इसमें की-वैल्यू पेयर के बदले मिले Map
को जोड़ा गया है या नहीं, तो null
दिखाया जाता है.
सिंटैक्स
makeTableMap(tableObj, keyColumnName, valueColumnName);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
tableObj |
सूची |
वह टेबल ऑब्जेक्ट जिसे बदलना है. यह मैप की एक सूची है, जिसमें हर
Map टेबल में एक पंक्ति को दिखाता है. किसी पंक्ति ऑब्जेक्ट में मौजूद हर प्रॉपर्टी का नाम, कॉलम का नाम होता है और प्रॉपर्टी वैल्यू, पंक्ति में मौजूद कॉलम की वैल्यू होती है.
|
keyColumnName |
स्ट्रिंग |
उस कॉलम का नाम जिसकी वैल्यू, बदले गए
Map में कुंजियां बन जाएंगी.
|
valueColumnName |
स्ट्रिंग |
उस कॉलम का नाम जिसकी वैल्यू, बदले गए
Map में वैल्यू बन जाएंगी.
|
इससे जुड़ी अनुमतियां
कोई नहीं.
parseUrl
यह एक ऐसा ऑब्जेक्ट दिखाता है जिसमें किसी यूआरएल के सभी कॉम्पोनेंट शामिल होते हैं. यह ऑब्जेक्ट, URL
ऑब्जेक्ट से मिलता-जुलता होता है.
गलत तरीके से लिखे गए किसी भी यूआरएल के लिए, यह एपीआई undefined
दिखाएगा. सही फ़ॉर्मैट वाले यूआरएल के लिए, यूआरएल स्ट्रिंग में मौजूद फ़ील्ड की वैल्यू खाली स्ट्रिंग होगी. इसके अलावा, searchParams
के मामले में, खाली ऑब्जेक्ट होगा.
दिखाए गए ऑब्जेक्ट में ये फ़ील्ड होंगे:
{
href: string,
origin: string,
protocol: string,
username: string,
password: string,
host: string,
hostname: string,
port: string,
pathname: string,
search: string,
searchParams: Object<string, (string|Array)>,
hash: string,
}
उदाहरण
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
सिंटैक्स
parseUrl(url);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
url |
स्ट्रिंग | वह पूरा यूआरएल जिसे पार्स किया जाएगा. |
इससे जुड़ी अनुमतियां
कोई नहीं.
returnResponse
जवाब को फ़्लश करता है. यह जवाब, पहले दूसरे टेंप्लेट से सेट किया गया था. जवाब को फ़्लश करने के लिए, जवाब में बदलाव करने वाले एपीआई का इस्तेमाल किया जाता है. इनमें setCookie, setPixelResponse, setResponseBody, setResponseHeader, और setResponseStatus शामिल हैं. डिफ़ॉल्ट रूप से, एचटीटीपी स्टेटस कोड 200, खाली मुख्य हिस्सा, और कोई हेडर नहीं होता.
हमारा सुझाव है कि इस एपीआई का इस्तेमाल क्लाइंट टेंप्लेट से करें.
सिंटैक्स
returnResponse();
उदाहरण
runContainer
का उदाहरण देखें.
इससे जुड़ी अनुमतियां
runContainer
किसी इवेंट के स्कोप में कंटेनर लॉजिक (वैरिएबल, ट्रिगर, टैग) चलाता है. अगर कंटेनर के एक्सीक्यूशन के दौरान इस एपीआई को कॉल किया जाता है, तो कंटेनर फिर से चलता है.
onComplete
और onStart
कॉलबैक को bindToEvent
नाम का फ़ंक्शन मिलता है. इवेंट के संदर्भ में एपीआई चलाने के लिए, bindToEvent
का इस्तेमाल करें.
ज़्यादा जानकारी के लिए, addEventCallback का उदाहरण देखें.
हमारा सुझाव है कि इस एपीआई का इस्तेमाल क्लाइंट टेंप्लेट से करें.
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
// Runs the container with a simple pageview event and then returns a response.
runContainer({'event_name': 'pageview'}, () => returnResponse());
सिंटैक्स
runContainer(event, onComplete, onStart);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
event |
ऑब्जेक्ट | इवेंट पैरामीटर. |
onComplete |
फ़ंक्शन | यह एक कॉलबैक है, जो सभी टैग ट्रिगर होने के बाद ट्रिगर होता है. |
onStart |
फ़ंक्शन | टैग ट्रिगर होने से पहले, तुरंत लागू होने वाला कॉलबैक. |
इससे जुड़ी अनुमतियां
sendEventToGoogleAnalytics
Google Analytics को सामान्य इवेंट डेटा का इस्तेमाल करके एक इवेंट भेजता है. साथ ही, एक ऐसा Promise दिखाता है जो location
कुंजी वाले ऑब्जेक्ट पर रिज़ॉल्व होता है या reason
कुंजी वाले ऑब्जेक्ट को अस्वीकार करता है. डेस्टिनेशन, Google Analytics 4, इवेंट डेटा में मौजूद मेज़रमेंट आईडी पर आधारित होता है.
अगर location
फ़ील्ड मौजूद है, तो उसे location
हेडर पर सेट किया जाता है.
उदाहरण
const logToConsole = require('logToConsole');
const sendEventToGoogleAnalytics = require('sendEventToGoogleAnalytics');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
// Sends an event to Google Analytics and returns failure if the request did not
// succeed. Additionally, if the request resulted in a redirect request, the
// code nominates a redirect response to be returned.
sendEventToGoogleAnalytics(event).then((response) => {
if (response.location) {
setResponseHeader('location', response.location);
setResponseStatus(302);
} else {
setResponseStatus(200);
}
data.gtmOnSuccess();
}).catch((error) => {
logToConsole(error.reason);
setResponseStatus(500);
data.gtmOnFailure();
});
सिंटैक्स
sendEventToGoogleAnalytics(event);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
event |
ऑब्जेक्ट | यूनिफ़ाइड स्कीमा फ़ॉर्मैट में इवेंट. |
इससे जुड़ी अनुमतियां
इसके लिए, send_http
की अनुमति की ज़रूरत होती है. अनुमति को कम से कम इनके ऐक्सेस की अनुमति देने के लिए कॉन्फ़िगर किया जाना चाहिए:
- Google Domains को अनुमति दें
sendHttpGet
यह बताए गए यूआरएल पर एचटीटीपी जीईटी अनुरोध करता है और एक वाद दिखाता है. यह वादा, अनुरोध पूरा होने या समय खत्म होने पर नतीजे के साथ पूरा होता है.
हल किया गया नतीजा एक ऑब्जेक्ट होता है, जिसमें तीन कुंजियां होती हैं: statusCode
, headers
, और body
. अगर अनुरोध पूरा नहीं हो पाता है (उदाहरण के लिए, यूआरएल अमान्य है, होस्ट के लिए कोई रास्ता नहीं है, एसएसएल नेगोशिएशन पूरा नहीं हो पाता है वगैरह), तो प्रॉमिस को {reason:
'failed'}
के साथ अस्वीकार कर दिया जाएगा. अगर timeout
विकल्प सेट किया गया था और अनुरोध का समय खत्म हो गया था, तो प्रोमिस को {reason: 'timed_out'}
के साथ अस्वीकार कर दिया जाएगा
उदाहरण
const sendHttpGet = require('sendHttpGet');
// Returns the response body as the value for a variable.
return sendHttpGet('https://example.com/item/' + data.itemId, {
headers: {key: 'value'},
timeout: 500,
}).then((result) => result.body, () => undefined);
सिंटैक्स
sendHttpGet(url[, options]);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
url |
स्ट्रिंग | जिस यूआरएल के लिए अनुरोध किया गया. |
options
|
ऑब्जेक्ट | अनुरोध के ज़रूरी नहीं विकल्प. (नीचे दिए गए विकल्प देखें.) |
विकल्प
विकल्प | टाइप | ब्यौरा |
---|---|---|
headers |
स्ट्रिंग | अनुरोध के अन्य हेडर. |
timeout
|
number | अनुरोध रद्द होने से पहले, मिलीसेकंड में तय की गई समयसीमा. डिफ़ॉल्ट रूप से, यह 15000 पर सेट होती है. |
authorization
|
ऑब्जेक्ट | googleapis.com को अनुरोध करते समय, ऑथराइज़ेशन हेडर शामिल करने के लिए, getGoogleAuth को कॉल करने से मिले ऑथराइज़ेशन ऑब्जेक्ट को शामिल करना ज़रूरी नहीं है. |
इससे जुड़ी अनुमतियां
sendHttpRequest
यह बताए गए यूआरएल पर एचटीटीपी अनुरोध करता है और एक Promise रिटर्न करता है. यह Promise, अनुरोध पूरा होने या टाइम आउट होने पर जवाब के साथ रिज़ॉल्व होता है.
हल किया गया नतीजा एक ऑब्जेक्ट होता है, जिसमें तीन कुंजियां होती हैं: statusCode
, headers
, और body
. अगर अनुरोध पूरा नहीं हो पाता है (उदाहरण के लिए, यूआरएल अमान्य है, होस्ट के लिए कोई रास्ता नहीं है, एसएसएल नेगोशिएशन पूरा नहीं हो पाता है वगैरह), तो प्रॉमिस को {reason:
'failed'}
के साथ अस्वीकार कर दिया जाएगा. अगर timeout
विकल्प सेट किया गया था और अनुरोध का समय खत्म हो गया था, तो प्रोमिस को {reason: 'timed_out'}
के साथ अस्वीकार कर दिया जाएगा
उदाहरण
const sendHttpRequest = require('sendHttpRequest');
const setResponseBody = require('setResponseBody');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
const postBody = 'interaction=click&campaign=promotion&medium=email';
// Sends a POST request and nominates response based on the response to the POST
// request.
sendHttpRequest('https://example.com/collect', {
headers: {key: 'value'},
method: 'POST',
timeout: 500,
}, postBody).then((result) => {
setResponseStatus(result.statusCode);
setResponseBody(result.body);
setResponseHeader('cache-control', result.headers['cache-control']);
});
सिंटैक्स
sendHttpRequest(url[, options[, body]]);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
url |
स्ट्रिंग | जिस यूआरएल के लिए अनुरोध किया गया. |
options
|
ऑब्जेक्ट | अनुरोध के ज़रूरी नहीं विकल्प. (नीचे दिए गए विकल्प देखें.) |
body |
स्ट्रिंग | अनुरोध का मुख्य हिस्सा, जो ज़रूरी नहीं है. |
विकल्प
विकल्प | टाइप | ब्यौरा |
---|---|---|
headers |
स्ट्रिंग | अनुरोध के अन्य हेडर. |
method |
ऑब्जेक्ट | अनुरोध का तरीका. डिफ़ॉल्ट रूप से, यह GET पर सेट होती है. |
timeout
|
number | अनुरोध रद्द होने से पहले, मिलीसेकंड में तय की गई समयसीमा. डिफ़ॉल्ट रूप से, यह 15000 पर सेट होती है. |
authorization
|
ऑब्जेक्ट | googleapis.com को अनुरोध करते समय, ऑथराइज़ेशन हेडर शामिल करने के लिए, getGoogleAuth को कॉल करने से मिले ऑथराइज़ेशन ऑब्जेक्ट को शामिल करना ज़रूरी नहीं है. |
इससे जुड़ी अनुमतियां
sendPixelFromBrowser
दिए गए यूआरएल को <img>
टैग के तौर पर लोड करने के लिए, ब्राउज़र को कमांड भेजता है. यह कमांड प्रोटोकॉल, GA4 के लिए Google टैग और Google Analytics: GA इवेंट वेब टैग में काम करता है. आपको सर्वर कंटेनर का यूआरएल कॉन्फ़िगर करना होगा. ज़्यादा जानकारी के लिए, निर्देश देखें.
अगर इनकमिंग अनुरोध, कमांड प्रोटोकॉल के साथ काम नहीं करता है या रिस्पॉन्स पहले ही फ़्लश हो चुका है, तो यह एपीआई false
दिखाता है. ऐसा न करने पर, यह एपीआई true
दिखाता है.
उदाहरण:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
सिंटैक्स
sendPixelFromBrowser(url)
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
url |
स्ट्रिंग | ब्राउज़र को भेजा जाने वाला यूआरएल. |
इससे जुड़ी अनुमतियां
setCookie
बताए गए विकल्पों के साथ कुकी सेट करता है या मिटाता है.
किसी कुकी को मिटाने के लिए, उसी पाथ और डोमेन के साथ एक कुकी सेट करनी होगी जिससे कुकी बनाई गई थी. साथ ही, उसे खत्म होने की ऐसी वैल्यू असाइन करनी होगी जो पहले से मौजूद हो, जैसे कि "Thu, 01 Jan 1970 00:00:00 GMT"
.
ध्यान दें कि क्लाइंट को जवाब भेजने के लिए, returnResponse को कॉल करना ज़रूरी है.
उदाहरण
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
सिंटैक्स
setCookie(name, value[, options[, noEncode]]);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
name |
स्ट्रिंग | कुकी का नाम. नाम केस-इनसेंसिटिव होता है. |
value |
स्ट्रिंग | कुकी की वैल्यू. |
options |
ऑब्जेक्ट | कुकी के लिए ज़रूरी नहीं एट्रिब्यूट:domain, expires, fallbackDomain,httpOnly, max- age, path, secure, औरsameSite. (नीचे दिए गए विकल्प देखें.) |
noEncode |
boolean |
अगर यह 'सही' है, तो कुकी की वैल्यू को कोड में नहीं बदला जाएगा. डिफ़ॉल्ट रूप से, यह वैल्यू
false पर सेट होती है.
|
डोमेन: वह होस्ट जहां कुकी को भेजा जाएगा. अगर इसे खास वैल्यू 'ऑटो' पर सेट किया जाता है, तो होस्ट का आकलन अपने-आप, इस रणनीति का इस्तेमाल करके किया जाएगा:
Forwarded
हेडर का eTLD+1, अगर मौजूद हो.X-Forwarded-Host
हेडर का eTLD+1, अगर मौजूद हो.Host
हेडर का eTLD+1.
expires: कुकी के खत्म होने की समयसीमा. यह यूटीसी फ़ॉर्मैट में दी गई तारीख की स्ट्रिंग होनी चाहिए. उदाहरण के लिए, "शनिवार, 26 अक्टूबर 1985 08:21:00 जीएमटी". अगर
expires
औरmax-age
, दोनों सेट हैं, तोmax-age
को प्राथमिकता दी जाती है.httpOnly:
true
के तौर पर सेट होने पर, JavaScript को कुकी ऐक्सेस करने से रोकता है.max-age: कुकी के खत्म होने में लगने वाले सेकंड की संख्या. शून्य या नेगेटिव संख्या डालने पर, कुकी तुरंत खत्म हो जाएगी. अगर
expires
औरmax-age
, दोनों सेट हैं, तोmax-age
को प्राथमिकता दी जाती है.पाथ: यह पाथ, अनुरोध किए गए यूआरएल में मौजूद होना चाहिए. ऐसा न होने पर, ब्राउज़र कुकी हेडर नहीं भेजेगा.
secure: अगर इसे
true
पर सेट किया जाता है, तो कुकी को सर्वर पर सिर्फ़ तब भेजा जाता है, जबhttps:
एंडपॉइंट से अनुरोध किया जाता है.sameSite: यह बताता है कि किसी कुकी को क्रॉस-ऑरिजिन अनुरोधों के साथ नहीं भेजा जाना चाहिए. यह
'strict'
,'lax'
या'none'
होना चाहिए.
इससे जुड़ी अनुमतियां
setPixelResponse
जवाब के मुख्य हिस्से को 1x1 GIF पर सेट करता है. साथ ही, Content-Type हेडर को 'image/gif' पर सेट करता है. इसके अलावा, कैश मेमोरी में सेव करने वाले हेडर को इस तरह सेट करता है कि उपयोगकर्ता एजेंट, जवाब को कैश मेमोरी में सेव न कर सकें. साथ ही, जवाब की स्थिति को 200 पर सेट करता है.
ध्यान दें कि क्लाइंट को जवाब भेजने के लिए, returnResponse को कॉल करना ज़रूरी है.
सिंटैक्स
setPixelResponse();
इससे जुड़ी अनुमतियां
इसके लिए, access_response
की अनुमति की ज़रूरत होती है. अनुमति को कॉन्फ़िगर करके, कम से कम इनका ऐक्सेस दिया जाना चाहिए:
headers
- इन कुंजियों को अनुमति देना ज़रूरी हैcontent-type
cache-control
expires
pragma
body
status
setResponseBody
रिस्पॉन्स बॉडी को आर्ग्युमेंट पर सेट करता है.
ध्यान दें कि क्लाइंट को जवाब भेजने के लिए, returnResponse को कॉल करना ज़रूरी है.
सिंटैक्स
setResponseBody(body[, encoding]);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
body |
स्ट्रिंग | रिस्पॉन्स बॉडी के तौर पर सेट की जाने वाली वैल्यू. |
encoding |
स्ट्रिंग |
रिस्पॉन्स बॉडी का कैरेक्टर कोड (डिफ़ॉल्ट रूप से,
'utf8' ). इस्तेमाल की जा सकने वाली वैल्यू में 'ascii' ,
'utf8' , 'utf16le' , 'ucs2' ,
'base64' , 'latin1' , 'binary' , और
'hex' शामिल हैं.
|
इससे जुड़ी अनुमतियां
इसके लिए, access_response
की अनुमति की ज़रूरत होती है. अनुमति को कॉन्फ़िगर करके, कम से कम इनका ऐक्सेस दिया जाना चाहिए:
body
setResponseHeader
रिस्पॉन्स में एक हेडर सेट करता है, जो रिटर्न किया जाएगा. अगर इस नाम (बड़े और छोटे अक्षरों में अंतर नहीं किया जाता) वाला हेडर, इस एपीआई से पहले सेट किया गया था, तो बाद का कॉल, पहले कॉलर की सेट की गई वैल्यू को ओवरराइट कर देगा या मिटा देगा.
ध्यान दें कि क्लाइंट को जवाब भेजने के लिए, returnResponse को कॉल करना ज़रूरी है.
सिंटैक्स
setResponseHeader(name, value);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
name |
स्ट्रिंग | हेडर का नाम. एचटीटीपी हेडर के नाम केस-इनसेंसिटिव होते हैं. इसलिए, हेडर का नाम छोटे अक्षरों में बदल दिया जाएगा. |
value |
string undefined | हेडर की वैल्यू. अगर यह वैल्यू null या undefined है, तो रिस्पॉन्स से नाम वाला हेडर हट जाता है. |
इससे जुड़ी अनुमतियां
इसके लिए, access_response
की अनुमति की ज़रूरत होती है. अनुमति को कॉन्फ़िगर करके, कम से कम इनका ऐक्सेस दिया जाना चाहिए:
headers
setResponseStatus
रिस्पॉन्स के लिए एचटीटीपी स्टेटस कोड सेट करता है.
ध्यान दें कि क्लाइंट को जवाब भेजने के लिए, returnResponse को कॉल करना ज़रूरी है.
सिंटैक्स
setResponseStatus(statusCode);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
statusCode |
number | दिखाया जाने वाला एचटीटीपी स्टेटस कोड. |
इससे जुड़ी अनुमतियां
इसके लिए, access_response
की अनुमति की ज़रूरत होती है. अनुमति को कॉन्फ़िगर करके, कम से कम इनका ऐक्सेस दिया जाना चाहिए:
status
sha256
यह इनपुट के SHA-256 डाइजेस्ट का हिसाब लगाता है और base64 में एन्कोड किए गए डाइजेस्ट के साथ कॉलबैक को शुरू करता है. ऐसा तब तक होता है, जब तक options
ऑब्जेक्ट कोई दूसरा आउटपुट कोडिंग तय न कर दे.
यह एपीआई हस्ताक्षर और व्यवहार, वेब कंटेनर के लिए sha256
एपीआई से मेल खाता है. हालांकि, सर्वर कंटेनर में मौजूद कस्टम टेंप्लेट को आसान कोड के लिए, sha256Sync
एपीआई का इस्तेमाल करना चाहिए.
उदाहरण
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256 = require('sha256');
sha256('inputString', (digest) => {
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
});
sha256('inputString', (digest) => {
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
}, {outputEncoding: 'hex'});
सिंटैक्स
sha256(input, onSuccess, options = undefined);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
input |
स्ट्रिंग | वह स्ट्रिंग जिसे हैश करना है. |
onSuccess |
फ़ंक्शन |
जब तक options ऑब्जेक्ट किसी दूसरी आउटपुट कोडिंग के बारे में नहीं बताता, तब तक इसे base64 में एन्कोड किए गए डाइजेस्ट के साथ कॉल किया जाता है.
|
options |
ऑब्जेक्ट |
आउटपुट एन्कोडिंग की जानकारी देने के लिए, ज़रूरी नहीं विकल्प ऑब्जेक्ट. अगर
यह जानकारी दी गई है, तो ऑब्जेक्ट में outputEncoding कीवर्ड होना चाहिए. साथ ही, इसकी वैल्यू base64 या hex में से कोई एक होनी चाहिए.
|
इससे जुड़ी अनुमतियां
कोई नहीं.
sha256Sync
यह फ़ंक्शन, इनपुट के SHA-256 डाइजेस्ट का हिसाब लगाता है और उसे दिखाता है. यह डाइजेस्ट, base64 में एन्कोड किया जाता है. हालांकि, अगर options
ऑब्जेक्ट किसी दूसरी आउटपुट एन्कोडिंग का इस्तेमाल करता है, तो ऐसा नहीं होता.
उदाहरण
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256Sync = require('sha256Sync');
const digestBase64 = sha256Sync('inputString');
const digestHex = sha256Sync('inputString', {outputEncoding: 'hex'});
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestBase64));
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestHex));
सिंटैक्स
sha256Sync(input, options = undefined);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
input |
स्ट्रिंग | वह स्ट्रिंग जिसे हैश करना है. |
options |
ऑब्जेक्ट |
आउटपुट एन्कोडिंग की जानकारी देने के लिए, ज़रूरी नहीं विकल्प ऑब्जेक्ट. अगर
यह जानकारी दी गई है, तो ऑब्जेक्ट में outputEncoding कीवर्ड होना चाहिए. साथ ही, इसकी वैल्यू base64 या hex में से कोई एक होनी चाहिए.
|
इससे जुड़ी अनुमतियां
कोई नहीं.
templateDataStorage
टेंप्लेट के डेटा स्टोरेज को ऐक्सेस करने के तरीकों के साथ एक ऑब्जेक्ट दिखाता है. टेंप्लेट के डेटा स्टोरेज की मदद से, एक ही टेंप्लेट के सभी रन के बीच डेटा शेयर किया जा सकता है. टेंप्लेट डेटा स्टोरेज में सेव किया गया डेटा, कंटेनर को चलाने वाले सर्वर पर बना रहता है. ज़्यादातर मामलों में, कंटेनर को कई सर्वर चलाते हैं. इसलिए, टेंप्लेट डेटा स्टोरेज में डेटा सेव करने से यह गारंटी नहीं मिलती कि हर अगले अनुरोध के लिए डेटा का ऐक्सेस होगा.
"templateDataStorage" नाम में "डेटा" का मतलब है कि इस एपीआई का इस्तेमाल करके, सिर्फ़ सामान्य और बिना फ़ंक्शन वाले डेटा टाइप सेव किए जा सकते हैं. एपीआई को पास किए गए फ़ंक्शन या फ़ंक्शन के रेफ़रंस, null
के तौर पर सेव किए जाएंगे.
सिंटैक्स
const templateDataStorage = require('templateDataStorage');
// Returns a copy of the value stored for the given key, or null if nothing
// is stored with that key.
templateDataStorage.getItemCopy(key);
// Stores a copy of the value for the given key (or removes the data stored
// for the given key if the input value is null).
templateDataStorage.setItemCopy(key, value);
// Removes the value stored for the given key, if present.
templateDataStorage.removeItem(key);
// Deletes all values stored for the current template.
templateDataStorage.clear();
उदाहरण
const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
const setResponseStatus = require('setResponseStatus');
const templateDataStorage = require('templateDataStorage');
// Check to see if the item is in the cache.
const cachedBody = templateDataStorage.getItemCopy(data.key);
if (cachedBody) {
setResponseBody(cachedBody);
data.gtmOnSuccess();
return;
}
sendHttpGet(data.url).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
setResponseBody(result.body);
templateDataStorage.setItemCopy(data.key, result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
setResponseStatus(result.statusCode);
});
इससे जुड़ी अनुमतियां
testRegex
createRegex
API की मदद से बनाए गए रेगुलर एक्सप्रेशन के हिसाब से, किसी स्ट्रिंग की जांच करता है. रेगुलर एक्सप्रेशन से मैच होने पर, true
दिखाता है. अगर ऐसा नहीं है, तो false
दिखाता है.
ग्लोबल फ़्लैग की मदद से बनाया गया रेगुलर एक्सप्रेशन, स्टेटफ़ुल होता है. ज़्यादा जानकारी के लिए, RegExp दस्तावेज़ देखें.
उदाहरण
const createRegex = require('createRegex');
const testRegex = require('testRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// createRegex returns null if the regex is invalid or Re2 is not available.
if (domainRegex === null) return;
// Returns true
testRegex(domainRegex, 'example.com/foobar');
सिंटैक्स
testRegex(regex, string);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
regex |
ऑब्जेक्ट | createRegex API से मिला रेगुलर एक्सप्रेशन, जिसकी जांच की जानी है. |
string |
स्ट्रिंग | जांच के लिए स्ट्रिंग. |
इससे जुड़ी अनुमतियां
कोई नहीं.
toBase64
किसी स्ट्रिंग को base64 या base64url के तौर पर कोड में बदलता है. डिफ़ॉल्ट रूप से, base64 कोड में बदलने का तरीका इस्तेमाल किया जाता है.
सिंटैक्स
toBase64(input, options);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
input |
स्ट्रिंग | कोड में बदली जाने वाली स्ट्रिंग. |
options
|
ऑब्जेक्ट | ज़रूरी नहीं एपीआई कॉन्फ़िगरेशन. (नीचे दिए गए विकल्प देखें.) |
विकल्प
विकल्प | टाइप | ब्यौरा | कम से कम वर्शन |
---|---|---|---|
urlEncoding
|
boolean | अगर यह सही है, तो नतीजे को base64url फ़ॉर्मैट का इस्तेमाल करके कोड में बदल दिया जाएगा. |
1.0.0 |
उदाहरण
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
इससे जुड़ी अनुमतियां
कोई नहीं.
BigQuery
BigQuery फ़ंक्शन देने वाला ऑब्जेक्ट दिखाता है.
BigQuery.insert
फ़ंक्शन की मदद से, BigQuery टेबल में डेटा डाला जा सकता है. यह एक Promise दिखाता है, जो डेटा डालने के बाद पूरा हो जाता है या गड़बड़ी होने पर अस्वीकार कर दिया जाता है.
डेटा डालने के बाद, प्रॉमिस बिना किसी आर्ग्युमेंट के पूरा हो जाता है.
डेटा डालने में कोई गड़बड़ी होने पर, प्रॉमिस को अस्वीकार कर दिया जाता है. साथ ही, गड़बड़ी की वजह बताने वाले ऑब्जेक्ट की सूची भी दी जाती है. अगर कोई गड़बड़ी होती है, तो हो सकता है कि सूची में एक लाइन ऑब्जेक्ट भी शामिल हो. ऐसा हो सकता है कि अनुरोध का एक हिस्सा पूरा हो जाए, लेकिन बाकी हिस्से पूरे न हों. इस मामले में, हर पंक्ति के लिए गड़बड़ियों की सूची के साथ वादा अस्वीकार कर दिया जाता है. इसमें पंक्ति ऑब्जेक्ट होता है, ताकि यह पता चल सके कि कौनसी पंक्तियां डाली गई थीं (गड़बड़ी के उदाहरण नीचे देखें). ज़्यादा जानकारी के लिए, गड़बड़ी के मैसेज के बारे में BigQuery का दस्तावेज़ देखें.
सिंटैक्स
BigQuery.insert(connectionInfo, rows[, options]);
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
connectionInfo |
ऑब्जेक्ट |
BigQuery टेबल से कनेक्ट करने के लिए ज़रूरी जानकारी तय करता है. इसमें एक वैकल्पिक पैरामीटर और दो ज़रूरी पैरामीटर होते हैं:
|
rows |
कलेक्शन | टेबल में डाली जाने वाली पंक्तियां. |
options |
ऑब्जेक्ट | अनुरोध के लिए वैकल्पिक विकल्प. ये विकल्प इस्तेमाल किए जा सकते हैं: ignoreUnknownValues और skipInvalidRows. अनजान विकल्प कुंजियों को अनदेखा कर दिया जाता है. (नीचे दिए गए विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
ignoreUnknownValues |
boolean | अगर इसे true पर सेट किया जाता है, तो ऐसी पंक्तियां स्वीकार करें जिनमें वैल्यू, स्कीमा से मेल न खाती हों. ऐसी वैल्यू को अनदेखा कर दिया जाता है जिनकी पहचान नहीं हुई है. डिफ़ॉल्ट रूप से, यह वैल्यू false पर सेट होती है. |
skipInvalidRows |
boolean | अगर इसे true पर सेट किया जाता है, तो अनुरोध की सभी मान्य पंक्तियां डालें,
भले ही अमान्य पंक्तियां मौजूद हों. डिफ़ॉल्ट रूप से, यह false पर सेट होती है. |
'मॉड्यूल नहीं मिला' गड़बड़ी का मतलब है कि आपका सर्वर कंटेनर, हमारी इमेज का ऐसा पुराना वर्शन चला रहा है जिसमें अब तक BigQuery मॉड्यूल शामिल नहीं किया गया था. कृपया हमारी डिप्लॉयमेंट स्क्रिप्ट का इस्तेमाल करके, अपने सर्वर कंटेनर को उसी सेटिंग के साथ फिर से डिप्लॉय करें. प्रोसेस पूरी होने के बाद, मॉड्यूल अपने-आप शामिल हो जाएगा.
आम तौर पर, डेटा डालने में हुई गड़बड़ी में reason
कुंजी वाला एक गड़बड़ी ऑब्जेक्ट होता है:
[{reason: 'invalid'}]
शामिल करने से जुड़ी गड़बड़ी में, errors
कलेक्शन और row
ऑब्जेक्ट के साथ कई गड़बड़ी ऑब्जेक्ट हो सकते हैं. यहां दो पंक्तियां डालने पर मिलने वाले गड़बड़ी के जवाब का उदाहरण दिया गया है. इसमें सिर्फ़ एक पंक्ति में गड़बड़ी है:
[
{
"errors": [
{
"reason":"invalid"
}
],
"row": {
"string_col":"otherString",
"number_col":-3,
"bool_col":3
}
},
{
"errors": [
{
"reason":"stopped"
}
],
"row": {
"string_col":"stringValue",
"number_col":5,
"bool_col:false
}
}
]
उदाहरण
const BigQuery = require('BigQuery');
const connectionInfo = {
'projectId': 'gcp-cloud-project-id',
'datasetId': 'destination-dataset',
'tableId': 'destination-table',
};
const rows = [{
'column1': 'String1',
'column2': 1234,
}];
const options = {
'ignoreUnknownValues': true,
'skipInvalidRows': false,
};
BigQuery.insert(connectionInfo, rows, options)
.then(data.gtmOnSuccess, data.gtmOnFailure);
इससे जुड़ी अनुमतियां
Firestore
ऐसा ऑब्जेक्ट दिखाता है जो Firestore फ़ंक्शन उपलब्ध कराता है.
यह एपीआई, सिर्फ़ नेटिव मोड में Firestore के साथ काम करता है, न कि डेटास्टोर मोड में Firestore के साथ. साथ ही, एपीआई सिर्फ़ डिफ़ॉल्ट डेटाबेस का इस्तेमाल करता है.
Firestore.read
Firestore.read
फ़ंक्शन, Firestore दस्तावेज़ से डेटा पढ़ता है और एक Promise दिखाता है. यह Promise, id
और data
नाम की दो कुंजियों वाले ऑब्जेक्ट पर रिज़ॉल्व होता है. अगर दस्तावेज़ मौजूद नहीं है, तो प्रॉमिस को अस्वीकार कर दिया जाता है. साथ ही, एक ऑब्जेक्ट दिखाया जाता है, जिसमें reason
की वैल्यू not_found
होती है.
सिंटैक्स
Firestore.read(path[, options]);
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
path |
स्ट्रिंग | दस्तावेज़ या कलेक्शन का पाथ. यह '/' से शुरू या खत्म नहीं होना चाहिए. |
options |
ऑब्जेक्ट | अनुरोध के ज़रूरी नहीं विकल्प. इस्तेमाल किए जा सकने वाले विकल्प: projectId, disableCache, और transaction. ऐसी विकल्प बटन की जानकारी को अनदेखा कर दिया जाता है जिनकी जानकारी (नीचे दिए गए विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
projectId |
स्ट्रिंग | Optional. Google Cloud Platform प्रोजेक्ट का आईडी. अगर projectId को शामिल नहीं किया जाता है, तो प्रोजेक्ट आईडी के लिए access_firestore की अनुमति सेटिंग * या GOOGLE_CLOUD_PROJECT पर सेट होने तक, projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से वापस पाया जाता है. अगर सर्वर कंटेनर, Google Cloud पर चल रहा है, तो GOOGLE_CLOUD_PROJECT पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट हो जाएगा. |
disableCache |
boolean | Optional. यह तय करता है कि कैश मेमोरी बंद करनी है या नहीं. कैश मेमोरी में सेव करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. इससे अनुरोध के दौरान, नतीजे कैश मेमोरी में सेव हो जाएंगे. |
transaction |
स्ट्रिंग | Optional. Firestore.runTransaction() से मिली वैल्यू. यह लेन-देन में इस्तेमाल किए जाने वाले ऑपरेशन को मार्क करती है. |
उदाहरण
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
Firestore.write
फ़ंक्शन, Firestore दस्तावेज़ या कलेक्शन में डेटा लिखता है. अगर पाथ किसी कलेक्शन का है, तो एक दस्तावेज़ बनाया जाएगा. इसमें, रैंडम तौर पर जनरेट किया गया आईडी होगा. अगर पाथ किसी दस्तावेज़ का है और वह मौजूद नहीं है, तो उसे बनाया जाएगा. यह एपीआई एक प्रॉमिस दिखाता है, जो जोड़े गए या बदले गए दस्तावेज़ के आईडी पर ले जाता है. अगर लेन-देन के विकल्प का इस्तेमाल किया जाता है, तो एपीआई अब भी एक प्रॉमिस दिखाता है. हालांकि, इसमें आईडी शामिल नहीं होगा, क्योंकि डेटा एक साथ लिखा जाता है.
सिंटैक्स
Firestore.write(path, input[, options]);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
path |
स्ट्रिंग | दस्तावेज़ या कलेक्शन का पाथ. यह '/' से शुरू या खत्म नहीं होना चाहिए. |
input |
ऑब्जेक्ट | दस्तावेज़ में लिखी जाने वाली वैल्यू. अगर मर्ज करने का विकल्प सेट है, तो एपीआई, इनपुट से दस्तावेज़ में पासकोड मर्ज कर देगा. |
options |
ऑब्जेक्ट | अनुरोध के ज़रूरी नहीं विकल्प. इस्तेमाल किए जा सकने वाले विकल्प: projectId, merge, और transaction. अनजान विकल्प कुंजियों को अनदेखा कर दिया जाता है. (नीचे दिए गए विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
projectId |
स्ट्रिंग | Optional. Google Cloud Platform प्रोजेक्ट का आईडी. अगर projectId को शामिल नहीं किया जाता है, तो प्रोजेक्ट आईडी के लिए access_firestore की अनुमति सेटिंग * या GOOGLE_CLOUD_PROJECT पर सेट होने तक, projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से वापस पाया जाता है. अगर सर्वर कंटेनर, Google Cloud पर चल रहा है, तो GOOGLE_CLOUD_PROJECT पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट हो जाएगा. |
merge |
boolean | Optional. अगर इसे
true पर सेट किया जाता है, तो इनपुट की कुंजियों को दस्तावेज़ में मर्ज करें,
नहीं तो यह तरीका पूरे दस्तावेज़ को बदल देगा. डिफ़ॉल्ट रूप से, यह वैल्यू
false पर सेट होती है. |
transaction |
स्ट्रिंग | Optional. Firestore.runTransaction() से मिली वैल्यू. यह लेन-देन में इस्तेमाल किए जाने वाले ऑपरेशन को मार्क करती है. |
उदाहरण
const Firestore = require('Firestore');
const input = {key1: 'value1', key2: 12345};
Firestore.write('collection/document', input, {
projectId: 'gcp-cloud-project-id',
merge: true,
}).then((id) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Firestore.query
Firestore.query
फ़ंक्शन, दिए गए कलेक्शन के लिए क्वेरी करता है और एक ऐसा प्रॉमिस दिखाता है जो क्वेरी की शर्तों से मैच करने वाले Firestore दस्तावेज़ों के कलेक्शन में बदल जाता है. Firestore दस्तावेज़ ऑब्जेक्ट वही है जो ऊपर Firestore.read
में दिया गया है. अगर क्वेरी की शर्तों से मेल खाने वाले कोई दस्तावेज़ नहीं है, तो रिटर्न किया गया प्रॉमिस खाली कलेक्शन में बदल जाएगा.
सिंटैक्स
Firestore.query(collection, queryConditions[, options]);
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
collection |
स्ट्रिंग | कलेक्शन का पाथ. यह '/' से शुरू या खत्म नहीं होना चाहिए. |
queryConditions |
कलेक्शन | क्वेरी की शर्तों का कलेक्शन. हर क्वेरी, तीन वैल्यू वाले अरे के तौर पर आती है: key,
operator, और expectedValue. उदाहरण:
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. क्वेरी का नतीजा पाने के लिए, शर्तों को AND के साथ जोड़ा जाता है. काम करने वाले क्वेरी ऑपरेटर की सूची के लिए, कृपया Firestore के क्वेरी ऑपरेटर देखें. |
options |
ऑब्जेक्ट | अनुरोध के ज़रूरी नहीं विकल्प. इस्तेमाल किए जा सकने वाले विकल्प: projectId, disableCache, limit, और transaction. ऐसी विकल्प बटन की जानकारी को अनदेखा कर दिया जाता है जिनकी जानकारी (नीचे दिए गए विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
projectId |
स्ट्रिंग | Optional. Google Cloud Platform प्रोजेक्ट का आईडी. अगर projectId को शामिल नहीं किया जाता है, तो प्रोजेक्ट आईडी के लिए access_firestore की अनुमति सेटिंग * या GOOGLE_CLOUD_PROJECT पर सेट होने तक, projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से वापस पाया जाता है. अगर सर्वर कंटेनर, Google Cloud पर चल रहा है, तो GOOGLE_CLOUD_PROJECT पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट हो जाएगा. |
disableCache |
boolean | Optional. यह तय करता है कि कैश मेमोरी बंद करनी है या नहीं. कैश मेमोरी में सेव करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. इससे अनुरोध के दौरान, नतीजे कैश मेमोरी में सेव हो जाएंगे. |
limit |
number | Optional. क्वेरी से मिलने वाले नतीजों की ज़्यादा से ज़्यादा संख्या में बदलाव करता है. डिफ़ॉल्ट रूप से, यह 5 पर सेट होता है. |
transaction |
स्ट्रिंग | Optional. Firestore.runTransaction() से मिली वैल्यू. यह लेन-देन में इस्तेमाल किए जाने वाले ऑपरेशन को मार्क करती है. |
उदाहरण
const Firestore = require('Firestore');
const queries = const queries = [['id', '==', '5']];
return Firestore.query('collection', queries, {
projectId: 'gcp-cloud-project-id',
limit: 1,
}).then((documents) => documents[0].data.key, () => undefined);
Firestore.runTransaction
Firestore.runTransaction
फ़ंक्शन की मदद से, उपयोगकर्ता एक साथ कई रिकॉर्ड को Firestore से पढ़ सकता है और उनमें बदलाव कर सकता है. अगर एक साथ कई डेटा डालने या किसी अन्य लेन-देन से जुड़ी कोई समस्या आती है, तो लेन-देन को दो बार तक दोहराया जाएगा. अगर तीन बार कोशिश करने के बाद भी यह काम नहीं होता है, तो एपीआई गड़बड़ी का मैसेज दिखाकर अनुरोध अस्वीकार कर देगा. यह एपीआई, लिखने के हर ऑपरेशन के लिए, एक प्रॉमिस दिखाता है. अगर लेन-देन पूरा हो जाता है, तो यह प्रॉमिस, दस्तावेज़ आईडी के कलेक्शन में बदल जाता है. अगर लेन-देन पूरा नहीं होता है, तो यह गड़बड़ी के साथ अस्वीकार कर दिया जाता है.
सिंटैक्स
Firestore.runTransaction(callback[, options]);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
callback |
फ़ंक्शन | स्ट्रिंग लेन-देन आईडी के साथ शुरू किया जाने वाला कॉलबैक. ट्रांज़ैक्शन आईडी को, पढ़ने/लिखने/क्वेरी करने वाले एपीआई कॉल में पास किया जा सकता है. इस कॉलबैक फ़ंक्शन को एक प्रॉमिस देना चाहिए. कॉलबैक पूरा न होने से पहले, यह तीन बार चल सकता है. |
options |
ऑब्जेक्ट | अनुरोध के ज़रूरी नहीं विकल्प. सिर्फ़ projectId का इस्तेमाल किया जा सकता है. अनजान विकल्प कुंजियों को अनदेखा कर दिया जाता है. (नीचे दिए गए विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
projectId |
स्ट्रिंग | Optional. Google Cloud Platform प्रोजेक्ट का आईडी. अगर projectId को शामिल नहीं किया जाता है, तो प्रोजेक्ट आईडी के लिए access_firestore की अनुमति सेटिंग * या GOOGLE_CLOUD_PROJECT पर सेट होने तक, projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से वापस पाया जाता है. अगर सर्वर कंटेनर, Google Cloud पर चल रहा है, तो GOOGLE_CLOUD_PROJECT पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट हो जाएगा. |
उदाहरण
const Firestore = require('Firestore');
const path = 'collection/document';
const projectId = 'gcp-cloud-project-id';
Firestore.runTransaction((transaction) => {
const transactionOptions = {
projectId: projectId,
transaction: transaction,
};
// Must return a promise.
return Firestore.read(path, transactionOptions).then((result) => {
const newInputCount = result.data.inputCount + 1;
const input = {key1: 'value1', inputCount: newInputCount};
return Firestore.write(path, input, transactionOptions);
});
}, {
projectId: projectId
}).then((ids) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Firestore के हर फ़ंक्शन में गड़बड़ियां उपलब्ध हैं. इन्हें reason
कुंजी वाले ऑब्जेक्ट के साथ अस्वीकार कर दिया जाएगा:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
गड़बड़ी की वजहों में Firestore REST API के गड़बड़ी वाले कोड शामिल हो सकते हैं. हालांकि, इनमें और भी वजहें शामिल हो सकती हैं.
इससे जुड़ी अनुमतियां
JSON
JSON फ़ंक्शन देने वाला ऑब्जेक्ट दिखाता है.
parse()
फ़ंक्शन, किसी JSON स्ट्रिंग को पार्स करता है, ताकि स्ट्रिंग में बताई गई वैल्यू या ऑब्जेक्ट को बनाया जा सके. अगर वैल्यू को पार्स नहीं किया जा सकता (जैसे, गलत फ़ॉर्मैट वाला JSON), तो फ़ंक्शन undefined
दिखाएगा. अगर इनपुट वैल्यू कोई स्ट्रिंग नहीं है, तो इनपुट को स्ट्रिंग में बदल दिया जाएगा.
stringify()
फ़ंक्शन, इनपुट को JSON स्ट्रिंग में बदल देता है. अगर वैल्यू को पार्स नहीं किया जा सकता (उदाहरण के लिए, ऑब्जेक्ट में साइकल है), तो यह तरीका undefined
दिखाएगा.
उदाहरण
const JSON = require('JSON');
// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');
// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});
सिंटैक्स
JSON.parse(stringInput);
JSON.stringify(value);
इससे जुड़ी अनुमतियां
कोई नहीं.
Math
Math
फ़ंक्शन देने वाला ऑब्जेक्ट.
सिंटैक्स
const Math = require('Math');
// Retrieve the absolute value.
const absolute = Math.abs(-3);
// Round the input down to the nearest integer.
const roundedDown = Math.floor(3.6);
// Round the input up to the nearest integer.
const roundedUp = Math.ceil(2.2);
// Round the input to the nearest integer.
const rounded = Math.round(3.1);
// Return the largest argument.
const biggest = Math.max(1, 3);
// Return the smallest argument.
const smallest = Math.min(3, 5);
// Return the first argument raised to the power of the second argument.
const powerful = Math.pow(3, 1);
// Return the square root of the argument.
const unsquared = Math.sqrt(9);
पैरामीटर
मथ फ़ंक्शन के पैरामीटर, संख्याओं में बदल जाते हैं.
इससे जुड़ी अनुमतियां
कोई नहीं.
Messages
यहां दिए गए एपीआई, एक कंटेनर के अलग-अलग हिस्सों के बीच मैसेज भेजने की अनुमति देने के लिए साथ मिलकर काम करते हैं.
addMessageListener
यह एक ऐसा फ़ंक्शन जोड़ता है जो किसी खास तरह के मैसेज को सुनता है. जब sendMessage
API का इस्तेमाल करके (आम तौर पर, टैग की मदद से) उस टाइप का मैसेज भेजा जाता है, तो कॉलबैक सिंक्रोनस तरीके से चलेगा. कॉलबैक दो पैरामीटर के साथ चलाया जाता है:
messageType:string
message:Object
अगर क्लाइंट में कॉलबैक जोड़ा जाता है, तो क्लाइंट के बनाए गए सभी इवेंट में कॉलबैक को मैसेज मिलेंगे. अगर कॉलबैक को सिर्फ़ किसी खास इवेंट से मैसेज चाहिए, तो runContainer
एपीआई के onStart
फ़ंक्शन में bindToEvent
का इस्तेमाल करके, इस एपीआई को इवेंट से बांधें. उदाहरण देखें.
सिंटैक्स
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
messageType |
स्ट्रिंग | जिस तरह का मैसेज सुनना है. अगर वैल्यू कोई स्ट्रिंग नहीं है, तो उसे स्ट्रिंग में बदल दिया जाएगा. |
callback |
फ़ंक्शन | लागू होने वाले मैसेज टाइप का मैसेज भेजे जाने पर, यह कॉलबैक चलेगा. अगर कॉलबैक कोई फ़ंक्शन नहीं है, तो एपीआई कुछ नहीं करेगा. |
उदाहरण
const addMessageListener = require('addMessageListener');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever a tag sends a 'send_pixel' message.
});
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((event, i) => {
runContainer(events[i], /* onComplete= */ () => {
if (events.length === ++eventsCompleted) {
returnResponse();
}
}, /* onStart= */ (bindToEvent) => {
if (i === 0) {
bindToEvent(addMessageListener)('send_pixel', (messageType, message) => {
// This will be called whenever a tag for the first event sends a
// 'send_pixel' message.
});
}
});
});
इससे जुड़ी अनुमतियां
इसके लिए, use_message
की अनुमति की ज़रूरत होती है. अनुमति को कम से कम इनके लिए कॉन्फ़िगर किया जाना चाहिए:
listen
याlisten_and_send
काUsage
वाला मैसेज टाइप.
hasMessageListener
अगर मैसेज टाइप के लिए मैसेज सुनने वाला कोई प्रोसेस जोड़ा गया है, तो यह फ़ंक्शन 'सही' दिखाता है. ऐसा न होने पर, यह फ़ंक्शन 'गलत' दिखाता है.
सिंटैक्स
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
इससे जुड़ी अनुमतियां
कोई नहीं.
sendMessage
रजिस्टर किए गए किसी दर्शक को, बताए गए टाइप का मैसेज भेजता है. इसका इस्तेमाल, टैग से उस क्लाइंट को मैसेज भेजने के लिए किया जा सकता है जिसने कंटेनर चलाया था.
सिंटैक्स
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
messageType |
स्ट्रिंग | भेजा जाने वाला मैसेज टाइप. अगर वैल्यू कोई स्ट्रिंग नहीं है, तो उसे स्ट्रिंग में बदल दिया जाएगा. |
message |
ऑब्जेक्ट | भेजा जाने वाला मैसेज. अगर मैसेज कोई ऑब्जेक्ट नहीं है, तो एपीआई कुछ नहीं करेगा. |
इससे जुड़ी अनुमतियां
इसके लिए, use_message
की अनुमति की ज़रूरत होती है. अनुमति को कम से कम इनके लिए कॉन्फ़िगर किया जाना चाहिए:
listen_and_send
याsend
काUsage
वाला मैसेज टाइप.
Object
ऐसा ऑब्जेक्ट दिखाता है जो Object
तरीके उपलब्ध कराता है.
keys()
तरीका, स्टैंडर्ड लाइब्रेरी Object.keys() के व्यवहार की जानकारी देता है. यह किसी ऑब्जेक्ट की एन्यूमेरेबल प्रॉपर्टी के नामों का एक कलेक्शन दिखाता है. यह कलेक्शन उसी क्रम में दिखता है जिस क्रम में for...in...
लूप दिखता है. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा.
values()
तरीका, स्टैंडर्ड लाइब्रेरी Object.values() के व्यवहार की जानकारी देता है. यह किसी ऑब्जेक्ट की enumerable प्रॉपर्टी की वैल्यू का ऐरे दिखाता है. यह वैल्यू उसी क्रम में दिखती है जिस क्रम में for...in...
लूप दिखाता है. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा.
entries()
तरीका, स्टैंडर्ड लाइब्रेरी Object.entries() के व्यवहार की जानकारी देता है. यह किसी ऑब्जेक्ट की enumerable प्रॉपर्टी के [key, value]
पेयर का एक कलेक्शन दिखाता है. यह कलेक्शन उसी क्रम में दिखता है जिस क्रम में for...in...
लूप दिखता है. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा.
freeze()
तरीका, स्टैंडर्ड लाइब्रेरी Object.freeze() के व्यवहार को दिखाता है. फ़्रीज़ किए गए ऑब्जेक्ट में अब बदलाव नहीं किया जा सकता. किसी ऑब्जेक्ट को फ़्रीज़ करने पर, उसमें नई प्रॉपर्टी नहीं जोड़ी जा सकतीं, मौजूदा प्रॉपर्टी नहीं हटाई जा सकतीं, और मौजूदा प्रॉपर्टी की वैल्यू नहीं बदली जा सकतीं. freeze()
वही ऑब्जेक्ट दिखाता है जो इसमें पास किया गया था. प्राइमिटिव या शून्य आर्ग्युमेंट को वैसे ही माना जाएगा जैसे कि वह फ़्रीज़ किया गया ऑब्जेक्ट हो. साथ ही, उसे दिखाया भी जाएगा.
delete()
तरीका, स्टैंडर्ड लाइब्रेरी के delete ऑपरेटर के व्यवहार को दिखाता है. यह ऑब्जेक्ट से दी गई कुंजी को तब तक हटा देता है, जब तक ऑब्जेक्ट को फ़्रीज़ नहीं किया जाता.
स्टैंडर्ड लाइब्रेरी के delete ऑपरेटर की तरह ही, यह true
दिखाता है. ऐसा तब होता है, जब पहली इनपुट वैल्यू (objectInput
) ऐसा ऑब्जेक्ट हो जो फ़्रीज़ नहीं किया गया है. भले ही, दूसरी इनपुट वैल्यू (keyToDelete
) में ऐसी कुंजी दी गई हो जो मौजूद नहीं है. यह अन्य सभी मामलों में false
दिखाता है. हालांकि, यह स्टैंडर्ड लाइब्रेरी के मिटाने वाले ऑपरेटर से इन तरीकों से अलग है:
keyToDelete
, बिंदु से अलग की गई ऐसी स्ट्रिंग नहीं हो सकती जो नेस्ट की गई कुंजी की जानकारी देती हो.- किसी ऐरे से एलिमेंट हटाने के लिए,
delete()
का इस्तेमाल नहीं किया जा सकता. delete()
का इस्तेमाल, ग्लोबल स्कोप से किसी भी प्रॉपर्टी को हटाने के लिए नहीं किया जा सकता.
सिंटैक्स
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
पैरामीटर
Object.keys
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | any | वह ऑब्जेक्ट जिसकी कुंजियों की गिनती करनी है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा. |
Object.values
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | any | वह ऑब्जेक्ट जिसकी वैल्यू की गिनती करनी है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा. |
Object.entries
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | any | वह ऑब्जेक्ट जिसका की/वैल्यू पेयर एनोटेट करना है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा. |
Object.freeze
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | any | वह ऑब्जेक्ट जिसे फ़्रीज़ करना है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे फ़्रीज़ किए गए ऑब्जेक्ट के तौर पर माना जाएगा. |
Object.delete
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | any | वह ऑब्जेक्ट जिसकी कुंजी मिटानी है. |
keyToDelete | स्ट्रिंग | मिटाने के लिए, सबसे ऊपर मौजूद बटन दबाएं. |
उदाहरण
const Object = require('Object');
// The keys of an object are enumerated in an array.
const keys = Object.keys({foo: 'bar'});
// The values of an object are enumerated in an array.
const values = Object.values({foo: 'bar'});
// The key/value pairs of an object are enumerated in an array.
const entries = Object.entries({foo: 'bar'});
// The input object is frozen.
const frozen = Object.freeze({foo: 'bar'});
// The key is removed from the input object.
const obj1 = {deleteme: 'value'};
Object.delete(obj1, 'deleteme');
// Only a top-level key can be specified as the key to delete.
const obj2 = {nested: {key: 'value'}};
Object.delete(obj2, 'nested.key'); // This has no effect.
Object.delete(obj2.nested, 'key'); // This deletes the nested key.
Promise
एक ऑब्जेक्ट दिखाता है, जो प्रॉमिस के साथ इंटरैक्ट करने के तरीके उपलब्ध कराता है.
काम करने के तरीके के हिसाब से, Promises, JavaScript के Promises से मिलते-जुलते हैं. हर इंस्टेंस में, तीन ऐसे तरीके होते हैं जो एक प्रॉमिस दिखाते हैं. प्रॉमिस पूरा होने पर, आगे की कार्रवाई की जा सकती है:
.then()
- यह सुविधा, हल किए गए और अस्वीकार किए गए, दोनों तरह के केस मैनेज करती है. यह पैरामीटर के तौर पर दो कॉलबैक लेता है: एक सफलता के मामले के लिए और एक गड़बड़ी के मामले के लिए..catch()
- सिर्फ़ अस्वीकार किए गए मामलों को मैनेज करता है. पैरामीटर के तौर पर एक कॉलबैक लेता है..finally()
- यह एक ऐसा तरीका है जिससे कोड को चलाया जा सकता है, भले ही वादा पूरा हो गया हो या अस्वीकार कर दिया गया हो. पैरामीटर के तौर पर एक कॉलबैक लेता है, जिसे बिना किसी आर्ग्युमेंट के शुरू किया जाता है.
यह एक ऐसा वैरिएबल है जो प्रॉमिस की रिज़ॉल्व की गई वैल्यू दिखाता है. अगर प्रॉमिस अस्वीकार हो जाता है, तो यह वैरिएबल false
दिखाता है.
उदाहरण
promise.then((resolvedValue) => {
// Handles when promise resolves.
}, (rejectedValue) => {
// Handles when promise rejects.
});
promise.catch((rejectedValue) => {
// Handles when promise rejects.
});
promise.finally(() => {
// Runs regardless of whether or not the previous promise resolves or
// rejects.
});
Promise.all
ऐसा प्रॉमिस दिखाता है जो:
- सभी इनपुट हल हो जाने पर,
- जब कोई भी इनपुट अस्वीकार होता है, तो अस्वीकार करता है
सिंटैक्स
Promise.all(inputs);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
inputs |
कलेक्शन | वैल्यू या प्रॉमिस का कलेक्शन. अगर कोई इनपुट प्रॉमिस नहीं है, तो इनपुट को वैसे ही पास किया जाता है जैसे कि वह प्रॉमिस की रिज़ॉल्व की गई वैल्यू हो. अगर इनपुट ऐरे नहीं है, तो गड़बड़ी का मैसेज दिखाता है. |
उदाहरण
const Promise = require('Promise');
const sendHttpGet = require('sendHttpGet');
return Promise.all(['a', sendHttpGet('https://example.com')])
.then((results) => {
// results will equal: ['a', {statusCode: 200, headers: {}, body: ''}]
});
इससे जुड़ी अनुमतियां
कोई नहीं.
Promise.create
एक ऐसा प्रॉमिस बनाता है जो फ़ंक्शन के हिसाब से JavaScript प्रॉमिस जैसा ही होता है.
सिंटैक्स
Promise.create(resolver);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
resolver |
फ़ंक्शन | ऐसा फ़ंक्शन जिसे दो फ़ंक्शन के साथ लागू किया जाता है -- resolve और reject. रिटर्न किया गया प्रॉमिस, उससे जुड़े पैरामीटर के ट्रिगर होने पर रिज़ॉल्व या अस्वीकार हो जाएगा. अगर resolver कोई फ़ंक्शन नहीं है, तो गड़बड़ी का मैसेज दिखाता है. |
उदाहरण
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
इससे जुड़ी अनुमतियां
कोई नहीं.
एपीआई की जांच करना
ये एपीआई, सैंडबॉक्स किए गए JavaScript टेस्ट के साथ काम करते हैं, ताकि Google Tag Manager में कस्टम टेंप्लेट के लिए टेस्ट बनाए जा सकें. इन टेस्ट एपीआई के लिए, require()
स्टेटमेंट की ज़रूरत नहीं होती. [कस्टम टेंप्लेट टेस्ट के बारे में ज़्यादा जानें].
assertApi
यह एक मैचर ऑब्जेक्ट दिखाता है. इसका इस्तेमाल, दिए गए एपीआई के बारे में आसानी से बताने के लिए किया जा सकता है.
सिंटैक्स
assertApi(apiName)
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
apiName |
स्ट्रिंग | जिस एपीआई की जांच करनी है उसका नाम. यह वही स्ट्रिंग है जो
require() को पास की गई है.
|
मैच करने वाले टूल
Subject.wasCalled()
Subject.wasNotCalled()
Subject.wasCalledWith(...expected)
Subject.wasNotCalledWith(...expected)
उदाहरण
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
assertThat
एपीआई को Google की [Truth] लाइब्रेरी के हिसाब से बनाया गया है. यह एक ऑब्जेक्ट दिखाता है, जिसका इस्तेमाल किसी विषय की वैल्यू के बारे में आसानी से बताने के लिए किया जा सकता है. अगर किसी एग्ज़रेशन की पुष्टि नहीं हो पाती है, तो टेस्ट तुरंत रुक जाएगा और उसे 'असफल' के तौर पर मार्क कर दिया जाएगा. हालांकि, एक टेस्ट में फ़ेल होने का असर दूसरे टेस्ट केस पर नहीं पड़ेगा.
सिंटैक्स
assertThat(actual, opt_message)
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
actual |
any | फ़्लूइंट जांच में इस्तेमाल की जाने वाली वैल्यू. |
opt_message |
स्ट्रिंग | अगर दावा पूरा नहीं होता है, तो प्रिंट करने के लिए वैकल्पिक मैसेज. |
मैच करने वाले टूल
मैच करने वाला | ब्यौरा |
---|---|
isUndefined() |
यह बताता है कि विषय undefined है. |
isDefined() |
यह बताता है कि विषय undefined नहीं है. |
isNull() |
यह बताता है कि विषय null है. |
isNotNull() |
यह बताता है कि विषय null नहीं है. |
isFalse() |
यह बताता है कि विषय false है. |
isTrue() |
यह बताता है कि विषय true है. |
isFalsy() |
यह बताता है कि सबजेक्ट गलत है. गलत वैल्यू ये हैं:
undefined , null , false ,
NaN , 0, और '' (खाली स्ट्रिंग). |
isTruthy() |
यह बताता है कि सबजेक्ट सही है. गलत वैल्यू ये हैं:
undefined , null , false ,
NaN , 0, और '' (खाली स्ट्रिंग). |
isNaN() |
यह बताता है कि विषय की वैल्यू NaN है. |
isNotNaN() |
यह बताता है कि सबजेक्ट, NaN के अलावा कोई भी वैल्यू है. |
isInfinity() |
यह बताता है कि विषय पॉज़िटिव या नेगेटिव अनंत है. |
isNotInfinity() |
यह बताता है कि विषय, अनंत की सकारात्मक या नेगेटिव वैल्यू के अलावा कोई भी वैल्यू हो सकती है. |
isEqualTo(expected) |
यह बताता है कि सबजेक्ट, दी गई वैल्यू के बराबर है. यह वैल्यू की तुलना है, रेफ़रंस की तुलना नहीं. ऑब्जेक्ट और ऐरे के कॉन्टेंट की तुलना, बार-बार की जाती है. |
isNotEqualTo(expected) |
यह बताता है कि विषय, दी गई वैल्यू से मेल नहीं खाता. यह रेफ़रंस की तुलना के बजाय, वैल्यू की तुलना है. ऑब्जेक्ट और ऐरे के कॉन्टेंट की तुलना बार-बार की जाती है. |
isAnyOf(...expected) |
यह बताता है कि सबजेक्ट, दी गई वैल्यू में से किसी एक के बराबर है. यह रेफ़रंस की तुलना के बजाय, वैल्यू की तुलना है. ऑब्जेक्ट और ऐरे के कॉन्टेंट की तुलना बार-बार की जाती है. |
isNoneOf(...expected) |
यह बताता है कि सबजेक्ट, दी गई किसी भी वैल्यू से मेल नहीं खाता. यह रेफ़रंस की तुलना नहीं, बल्कि वैल्यू की तुलना है. ऑब्जेक्ट और ऐरे के कॉन्टेंट की तुलना बार-बार की जाती है. |
isStrictlyEqualTo(expected) |
यह बताता है कि ऑब्जेक्ट, दी गई वैल्यू (=== ) से पूरी तरह से मेल खाता है. |
isNotStrictlyEqualTo(expected) |
यह बताता है कि विषय, दी गई वैल्यू (!== ) से पूरी तरह से मेल नहीं खाता. |
isGreaterThan(expected) |
यह बताता है कि ऑर्डर की गई तुलना में, विषय (> ) दी गई वैल्यू से ज़्यादा है. |
isGreaterThanOrEqualTo(expected) |
यह बताता है कि ऑर्डर की गई तुलना में, विषय, दी गई वैल्यू (>= ) से ज़्यादा या उसके बराबर है. |
isLessThan(expected) |
यह बताता है कि ऑर्डर की गई तुलना में, विषय (< ) दी गई वैल्यू से कम है. |
isLessThanOrEqualTo(expected) |
यह बताता है कि ऑर्डर की गई तुलना में, विषय (<= )
दी गई वैल्यू से कम या उसके बराबर है. |
contains(...expected) |
यह बताता है कि सबजेक्ट एक ऐरे या स्ट्रिंग है, जिसमें दी गई सभी वैल्यू किसी भी क्रम में मौजूद हैं. यह वैल्यू की तुलना है, न कि रेफ़रंस की तुलना. ऑब्जेक्ट और ऐरे के कॉन्टेंट की तुलना, बार-बार की जाती है. |
doesNotContain(...expected) |
यह बताता है कि सबजेक्ट एक ऐरे या स्ट्रिंग है, जिसमें दी गई कोई भी वैल्यू मौजूद नहीं है. यह वैल्यू की तुलना है, न कि रेफ़रंस की तुलना. ऑब्जेक्ट और ऐरे के कॉन्टेंट की तुलना बार-बार की जाती है. |
containsExactly(...expected) |
यह बताता है कि सबजेक्ट एक ऐरे है, जिसमें दी गई सभी वैल्यू किसी भी क्रम में मौजूद हैं और कोई दूसरी वैल्यू नहीं है. यह वैल्यू की तुलना है, रेफ़रंस की तुलना नहीं. ऑब्जेक्ट और ऐरे के कॉन्टेंट की तुलना, बार-बार की जाती है. |
doesNotContainExactly(...expected) |
यह बताता है कि सबजेक्ट एक ऐरे है, जिसमें किसी भी क्रम में दी गई वैल्यू से अलग वैल्यू का सेट होता है. यह वैल्यू की तुलना है, रेफ़रंस की तुलना नहीं. ऑब्जेक्ट और ऐरे के कॉन्टेंट की तुलना, बार-बार की जाती है. |
hasLength(expected) |
यह बताता है कि सबजेक्ट, दी गई लंबाई वाला ऐरे या स्ट्रिंग है. अगर वैल्यू ऐरे या स्ट्रिंग नहीं है, तो यह दावा हमेशा गलत होता है. |
isEmpty() |
यह बताता है कि सबजेक्ट एक खाली ऐरे या स्ट्रिंग है (लंबाई = 0). अगर वैल्यू ऐरे या स्ट्रिंग नहीं है, तो यह दावा हमेशा गलत होता है. |
isNotEmpty() |
यह बताता है कि सबजेक्ट एक ऐरे या स्ट्रिंग है, जो खाली नहीं है (लंबाई > 0). अगर वैल्यू कोई ऐरे या स्ट्रिंग नहीं है, तो यह दावा हमेशा गलत होता है. |
isArray() |
यह बताता है कि विषय का टाइप ऐरे है. |
isBoolean() |
यह बताता है कि विषय का टाइप बूलियन है. |
isFunction() |
यह बताता है कि विषय का टाइप फ़ंक्शन है. |
isNumber() |
यह बताता है कि विषय का टाइप संख्या है. |
isObject() |
यह बताता है कि विषय का टाइप ऑब्जेक्ट है. |
isString() |
यह बताता है कि विषय का टाइप स्ट्रिंग है. |
उदाहरण
assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();
fail
मौजूदा टेस्ट को तुरंत फ़ेल कर देता है और दिए गए मैसेज को प्रिंट करता है.
सिंटैक्स
fail(opt_message);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
opt_message |
स्ट्रिंग | गड़बड़ी का मैसेज लिखना ज़रूरी नहीं है. |
उदाहरण
fail('This test has failed.');
mock
mock
एपीआई की मदद से, सैंडबॉक्स किए गए एपीआई के काम करने के तरीके को बदला जा सकता है. टेंप्लेट कोड में मॉक एपीआई का इस्तेमाल करना सुरक्षित है. हालांकि, यह सिर्फ़ टेस्ट मोड में काम करता है.
हर टेस्ट शुरू होने से पहले, मॉक रीसेट हो जाते हैं.
सिंटैक्स
mock(apiName, returnValue);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
apiName |
स्ट्रिंग | उस एपीआई का नाम जिसे मॉक करना है; यह वही स्ट्रिंग है जो
require() को पास की गई है |
returnValue |
any | एपीआई के लिए रिटर्न की जाने वाली वैल्यू या एपीआई के बजाय कॉल किए गए फ़ंक्शन की वैल्यू. अगर returnValue कोई फ़ंक्शन है, तो सैंडबॉक्स किए गए एपीआई के बजाय उस फ़ंक्शन को कॉल किया जाता है. अगर returnValue कोई फ़ंक्शन नहीं है, तो सैंडबॉक्स किए गए एपीआई के बजाय वह वैल्यू दी जाती है. |
उदाहरण
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
mockObject
एपीआई की मदद से, सैंडबॉक्स किए गए उन एपीआई के व्यवहार को बदला जा सकता है जो ऑब्जेक्ट दिखाते हैं. टेंप्लेट कोड में एपीआई का इस्तेमाल करना सुरक्षित है. हालांकि, यह सिर्फ़ टेस्ट मोड में काम करता है. हर टेस्ट शुरू होने से पहले, मॉक रीसेट हो जाते हैं.
सिंटैक्स
mockObject(apiName, objectMock);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
apiName |
स्ट्रिंग | उस एपीआई का नाम जिसे मॉक करना है; यह वही स्ट्रिंग है जो
require() को पास की गई है |
objectMock |
ऑब्जेक्ट | एपीआई के लिए रिटर्न की जाने वाली वैल्यू या एपीआई के बजाय कॉल किए गए फ़ंक्शन की वैल्यू. यह एक ऑब्जेक्ट होना चाहिए. |
उदाहरण
const storage = {};
let firestoreId = 1;
function asTestPromise(result) {
return {
then: (callback) => callback(result)
};
}
mockObject('Firestore', {
write: (collection, input) => {
storage[collection + '/' + (++firestoreId)] = input;
return asTestPromise(firestoreId);
},
read: (document) => asTestPromise({data: storage[document]})
});
runCode
यह टेंप्लेट के कोड को चलाता है. इसका मतलब है कि यह दिए गए इनपुट डेटा ऑब्जेक्ट के साथ, मौजूदा टेस्ट एनवायरमेंट में कोड टैब का कॉन्टेंट चलाता है.
सिंटैक्स
runCode(data)
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
data |
ऑब्जेक्ट | टेस्ट में इस्तेमाल किया जाने वाला डेटा ऑब्जेक्ट. |
रिटर्न वैल्यू
वैरिएबल टेंप्लेट के लिए, किसी वैरिएबल की वैल्यू दिखाता है. साथ ही, अन्य सभी तरह के टेंप्लेट के लिए undefined
दिखाता है.
उदाहरण
runCode({field1: 123, field2: 'value'});