इस दस्तावेज़ में, सर्वर साइड टैगिंग के लिए एपीआई के बारे में बताया गया है.
addEventCallback
एक कॉलबैक फ़ंक्शन रजिस्टर करता है, जिसे इवेंट के खत्म होने पर शुरू किया जाएगा. इवेंट के सभी टैग के एक्ज़ीक्यूट हो जाने पर, कॉलबैक शुरू हो जाएगा. कॉलबैक के लिए दो वैल्यू पास की जाती हैं: फ़ंक्शन को शुरू करने वाले कंटेनर का आईडी और इवेंट के बारे में जानकारी वाला ऑब्जेक्ट.
जब किसी टैग में इस एपीआई का इस्तेमाल किया जाता है, तब यह मौजूदा इवेंट से जुड़ जाता है. जब इस एपीआई का इस्तेमाल किसी क्लाइंट में किया जाता है, तो इसे runContainer
API के 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
API,
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 |
नंबर | दिए गए पूर्णांक का कम से कम संभावित मान (शामिल). |
max |
नंबर | दिए गए पूर्णांक की ज़्यादा से ज़्यादा संभावित वैल्यू (शामिल). |
इनसे जुड़ी अनुमतियां
कोई नहीं.
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 |
कोई भी |
कुंजी का पाथ, जिसमें पाथ के कॉम्पोनेंट को बिंदुओं से अलग किया जाता है. पाथ के कॉम्पोनेंट, किसी ऑब्जेक्ट की कुंजियां हो सकती हैं या किसी अरे में इंडेक्स हो सकते हैं. अगर
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 स्क्रिप्ट के पहले से तय सेट से संसाधन वापस लाता है. साथ ही, स्क्रिप्ट और उससे जुड़े कैश मेमोरी के मेटाडेटा के साथ वादा दिखाता है.
यह प्रॉमिस, दो कुंजियों वाले ऑब्जेक्ट में बदल जाएगा: 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'
विकल्प, Google Analytics स्क्रिप्ट को
https://www.google-analytics.com/analytics.js से फ़ेच करता है.'GTAG' विकल्प, https://www.googletagmanager.com/gtag/js से ग्लोबल साइट टैग (gtag.js)
स्क्रिप्ट को फ़ेच करता है.'GTM' विकल्प, Google Tag Manager
स्क्रिप्ट को https://www.googletagmanager.com/gtm.js से फ़ेच करता है.
|
options |
Object | अनुरोध के वैकल्पिक विकल्प. काम करने वाले विकल्पों के लिए नीचे देखें. |
विकल्प
विकल्प | टाइप | ब्यौरा |
---|---|---|
id |
स्ट्रिंग |
gtag मेज़रमेंट आईडी के साथ 'GTAG' और वेब कंटेनर आईडी के साथ
'GTM' पर लागू होता है (उदाहरण के लिए, GTM-XXXX).
|
debug |
कोई भी | अगर सही है, तो मेज़रमेंट स्क्रिप्ट के डीबग वर्शन का अनुरोध करता है और नतीजे देता है. |
timeout |
नंबर |
अनुरोध का टाइम आउट मिलीसेकंड में. नॉन-पॉज़िटिव वैल्यू को अनदेखा किया जाता है. अगर
अनुरोध का समय खत्म हो जाता है, तो स्क्रिप्ट वैल्यू के लिए कॉलबैक को
undefined और मेटाडेटा ऑब्जेक्ट के लिए
{} के साथ शुरू किया जाएगा.
|
उन विकल्प कुंजियों को अनदेखा कर दिया जाता है जिनकी पहचान नहीं हुई है.
इनसे जुड़ी अनुमतियां
send_http
अनुमति की ज़रूरत है. अनुमति को कम से कम इन चीज़ों को ऐक्सेस करने
की अनुमति देने के लिए कॉन्फ़िगर किया जाना चाहिए:
- Google Domains को अनुमति दें
getRemoteAddress
उस आईपी पते की स्ट्रिंग दिखाता है जहां से अनुरोध किया गया है.जैसे, आईपीवी4 के लिए 12.345.67.890
या आईपीवी6 के लिए 2001:0db8:85a3:0:0:8a2e:0370:7334
. इसके लिए, फ़ॉरवर्ड किए गए और X-Forwarded-For जैसे अनुरोध हेडर पढ़ता है.
ध्यान दें: यह एपीआई, मूल आईपी का पता लगाने की पूरी कोशिश करता है. हालांकि, यह इस बात की गारंटी नहीं दे सकता कि नतीजा सटीक है.
सिंटैक्स
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 को प्राथमिकता दें.
ऐसी संख्या दिखाता है जो Unix Epoch के बाद के मौजूदा समय को मिलीसेकंड में दिखाती है, जैसा कि Date.now()
से मिला है.
सिंटैक्स
getTimestamp();
इनसे जुड़ी अनुमतियां
कोई नहीं.
getTimestampMillis
ऐसी संख्या दिखाता है जो Unix Epoch के बाद के मौजूदा समय को मिलीसेकंड में दिखाती है, जैसा कि Date.now()
से मिला है.
सिंटैक्स
getTimestampMillis();
इनसे जुड़ी अनुमतियां
कोई नहीं.
getType
दी गई वैल्यू के टाइप के बारे में बताने वाली स्ट्रिंग दिखाता है.
इनपुट प्रकार | वापस लौटाया गया मान |
---|---|
स्ट्रिंग | 'string' |
नंबर | 'number' |
boolean | 'boolean' |
शून्य | 'null' |
तय नहीं है | '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 |
कोई भी | इनपुट मान. |
इनसे जुड़ी अनुमतियां
कोई नहीं.
hmacSha256
SHA-256 के साथ हैश-आधारित मैसेज ऑथेंटिकेशन कोड (HMAC) का इस्तेमाल करके, कोड में बदले गए हस्ताक्षर की गणना करता है. डिफ़ॉल्ट तौर पर, base64url
को कोड में बदला जाता है.
इस एपीआई का इस्तेमाल करने के लिए, सर्वर पर SGTM_CREDENTIALS
एनवायरमेंट वैरिएबल को इस फ़ॉर्मैट में UTF-8 कोड में बदली गई JSON कुंजी की फ़ाइल के पाथ पर सेट करें:
{
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
वैल्यू, base64 कोड में बदली गई एचएमएसी कुंजियां हैं.
उदाहरण
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
|
Object | एपीआई कॉन्फ़िगरेशन ज़रूरी नहीं है. (नीचे विकल्प देखें.) |
विकल्प
विकल्प | टाइप | ब्यौरा |
---|---|---|
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 |
Object | इवेंट पैरामीटर. |
onComplete |
फ़ंक्शन | सभी टैग के सक्रिय होने के बाद शुरू किया गया कॉलबैक. |
onStart |
फ़ंक्शन | एक कॉलबैक, जिसे टैग के ट्रिगर होने से पहले ही शुरू किया जाता है. |
इनसे जुड़ी अनुमतियां
sendEventToGoogleAnalytics
यह Google Analytics को सामान्य इवेंट डेटा का इस्तेमाल करके एक इवेंट भेजता है. साथ ही, एक प्रॉमिस दिखाता है, जो location
कुंजी से किसी ऑब्जेक्ट में बदल जाता है या reason
कुंजी वाले किसी ऑब्जेक्ट को अस्वीकार कर देता है. Universal Analytics या Google Analytics 4 डेस्टिनेशन, इवेंट डेटा में मौजूद मेज़रमेंट आईडी पर आधारित होता है.
अगर location
फ़ील्ड मौजूद है, तो उसे location
हेडर पर सेट किया जाता है.
उदाहरण
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();
}, (err) => {
setResponseStatus(500);
data.gtmOnFailure();
});
सिंटैक्स
sendEventToGoogleAnalytics(event);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
event |
Object | यूनिफ़ाइड स्कीमा फ़ॉर्मैट में इवेंट. |
इनसे जुड़ी अनुमतियां
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
|
Object | अनुरोध के ज़रूरी विकल्प नहीं हैं. (नीचे विकल्प देखें.) |
विकल्प
विकल्प | टाइप | ब्यौरा |
---|---|---|
headers |
स्ट्रिंग | अतिरिक्त अनुरोध के हेडर. |
timeout
|
नंबर | अनुरोध रद्द किए जाने से पहले, मिलीसेकंड में टाइम आउट. डिफ़ॉल्ट वैल्यू 15000 होती है. |
authorization
|
Object | ज़रूरी नहीं getGoogleAuth , जिस पर googleapis.com को अनुरोध करते समय ऑथराइज़ेशन हेडर शामिल किए जा सकते हैं. |
इनसे जुड़ी अनुमतियां
sendHttpRequest
बताए गए यूआरएल पर एचटीटीपी अनुरोध करता है और ऐसा प्रॉमिस देता है जो अनुरोध पूरा होने या उसका समय खत्म होने पर रिस्पॉन्स के साथ पूरा हो जाता है.
हल किया गया नतीजा एक ऑब्जेक्ट है, जिसमें तीन कुंजियां होती हैं: 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
|
Object | अनुरोध के ज़रूरी विकल्प नहीं हैं. (नीचे विकल्प देखें.) |
body |
स्ट्रिंग | अनुरोध का मुख्य हिस्सा ज़रूरी नहीं है. |
विकल्प
विकल्प | टाइप | ब्यौरा |
---|---|---|
headers |
स्ट्रिंग | अतिरिक्त अनुरोध के हेडर. |
method |
Object | अनुरोध का तरीका. डिफ़ॉल्ट वैल्यू GET होती है. |
timeout
|
नंबर | अनुरोध रद्द किए जाने से पहले, मिलीसेकंड में टाइम आउट. डिफ़ॉल्ट वैल्यू 15000 होती है. |
authorization
|
Object | ज़रूरी नहीं getGoogleAuth , जिस पर googleapis.com को अनुरोध करते समय ऑथराइज़ेशन हेडर शामिल किए जा सकते हैं. |
इनसे जुड़ी अनुमतियां
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 |
Object | वैकल्पिक कुकी एट्रिब्यूट:domain, expires, fallbackDomain,httpOnly, max- उम्र, पाथ, secure, औरsameSite. (नीचे विकल्प देखें.) |
noEncode |
boolean |
सही होने पर, कुकी की वैल्यू को कोड में नहीं बदला जाएगा. डिफ़ॉल्ट
false .
|
डोमेन: वह होस्ट जिस पर कुकी भेजी जाएगी. अगर खास वैल्यू 'ऑटो' पर सेट है, तो नीचे दी गई रणनीति का इस्तेमाल करके होस्ट की गिनती अपने-आप हो जाएगी:
- अगर मौजूद हो, तो
Forwarded
हेडर का eTLD+1. - अगर मौजूद हो, तो
X-Forwarded-Host
हेडर का eTLD+1. Host
हेडर में से eTLD+1.
- अगर मौजूद हो, तो
समयसीमा खत्म हो जाती है: कुकी की ज़्यादा से ज़्यादा लाइफ़. यह यूटीसी फ़ॉर्मैट वाली तारीख की स्ट्रिंग होनी चाहिए, जैसे कि "शनिवार, 26 अक्टूबर, 1985 08:21:00 जीएमटी". अगर
expires
औरmax-age
, दोनों को सेट किया गया है, तोmax-age
को प्राथमिकता दी जाएगी.httpOnly:
true
होने पर, JavaScript को कुकी ऐक्सेस करने से रोकता है.max-age: कुकी की समयसीमा खत्म होने में लगने वाले सेकंड की संख्या. शून्य या नेगेटिव नंबर, कुकी की समयसीमा तुरंत खत्म कर देगा. अगर
expires
औरmax-age
, दोनों सेट हैं, तोmax-age
को प्राथमिकता दी जाएगी.पाथ: एक पाथ जो अनुरोध किए गए यूआरएल में मौजूद होना चाहिए. अगर ऐसा नहीं किया जाता है, तो ब्राउज़र कुकी हेडर नहीं भेजेगा.
सुरक्षित: अगर
true
पर सेट है, तो कुकी को सर्वर पर सिर्फ़ तब भेजा जाता है, जबhttps:
एंडपॉइंट से कोई अनुरोध किया जाता है.sameSite: यह दावा करता है कि क्रॉस-ऑरिजिन अनुरोधों के साथ कोई कुकी नहीं भेजी जानी चाहिए.
'strict'
,'lax'
या'none'
होना चाहिए.
इनसे जुड़ी अनुमतियां
setPixelResponse
रिस्पॉन्स के मुख्य हिस्से को 1x1 GIF पर सेट करता है, कॉन्टेंट-टाइप हेडर को '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 तय नहीं है | हेडर की वैल्यू. अगर यह शून्य या तय नहीं है, तो यह, दिए गए जवाब से नाम वाले हेडर को हटा देता है. |
इनसे जुड़ी अनुमतियां
access_response
अनुमति की ज़रूरत है. अनुमति को कम से कम इन चीज़ों को ऐक्सेस देने के लिए कॉन्फ़िगर किया जाना चाहिए:
headers
setResponseStatus
यह रिस्पॉन्स का एचटीटीपी स्टेटस कोड सेट करता है.
ध्यान दें कि क्लाइंट को जवाब देने के लिए, returnResponse को कॉल करना ज़रूरी है.
सिंटैक्स
setResponseStatus(statusCode);
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
statusCode |
नंबर | दिखाया जाने वाला एचटीटीपी स्टेटस कोड. |
इनसे जुड़ी अनुमतियां
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 |
फ़ंक्शन |
मिलने वाले डाइजेस्ट के साथ कॉल किया जाता है, जिसे base64 में कोड में बदला गया है. ऐसा तब तक किया जाता है, जब तक कि
options ऑब्जेक्ट कोई अलग आउटपुट एन्कोडिंग तय नहीं करता.
|
options |
Object |
आउटपुट एन्कोडिंग की जानकारी देने के लिए, ज़रूरी नहीं विकल्प ऑब्जेक्ट. अगर
बताया गया है, तो ऑब्जेक्ट में outputEncoding कुंजी
होनी चाहिए, जिसकी वैल्यू base64 या hex में से किसी एक के तौर पर होनी चाहिए.
|
इनसे जुड़ी अनुमतियां
कोई नहीं.
sha256Sync
यह फ़ंक्शन, base64 की मदद से कोड में बदले गए इनपुट के SHA-256 डाइजेस्ट को कैलकुलेट करता है और दिखाता है.
ऐसा तब तक होता है, जब तक 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 |
Object |
आउटपुट एन्कोडिंग की जानकारी देने के लिए, ज़रूरी नहीं विकल्प ऑब्जेक्ट. अगर
बताया गया है, तो ऑब्जेक्ट में 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
एपीआई की मदद से बनाए गए रेगुलर एक्सप्रेशन के मुकाबले, स्ट्रिंग की जांच करता है. अगर रेगुलर एक्सप्रेशन मैच करता है,
तो 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
|
Object | एपीआई कॉन्फ़िगरेशन ज़रूरी नहीं है. (नीचे विकल्प देखें.) |
विकल्प
विकल्प | टाइप | ब्यौरा | कम से कम वर्शन |
---|---|---|---|
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 टेबल में डेटा लिखा जा सकता है. यह ऐसा प्रॉमिस दिखाता है जो सही तरीके से शामिल होने या गड़बड़ी होने पर अस्वीकार कर दिया जाता है.
इंसर्शन के सफल होने पर, प्रॉमिस बिना किसी आर्ग्युमेंट के रिज़ॉल्व हो जाता है.
जब इंसर्शन विफल हो जाता है, तब प्रॉमिस गड़बड़ी की वजह वाले ऑब्जेक्ट की सूची के साथ अस्वीकार कर दिया जाता है. साथ ही, कोई गड़बड़ी होने पर शायद एक पंक्ति ऑब्जेक्ट दिखाया जाता है. यह मुमकिन है कि अनुरोध के एक हिस्से का सही तरीके से पूरा हो जाए, जबकि दूसरे हिस्सों को नहीं. इस मामले में, प्रॉमिस को अस्वीकार कर दिया जाता है. इसमें पंक्ति ऑब्जेक्ट वाली हर लाइन के लिए, गड़बड़ियों की सूची दी गई है. इससे यह पता लगाने में मदद मिलती है कि कौनसी लाइनें शामिल की गई थीं (नीचे गड़बड़ी के उदाहरण देखें). ज़्यादा जानकारी के लिए, गड़बड़ी के मैसेज से जुड़े BigQuery के दस्तावेज़ देखें.
सिंटैक्स
BigQuery.insert(connectionInfo, rows[, options]);
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
connectionInfo |
Object |
BigQuery टेबल से कनेक्ट करने के लिए ज़रूरी जानकारी के बारे में बताता है. इसमें एक वैकल्पिक पैरामीटर और दो ज़रूरी पैरामीटर होते हैं:
|
rows |
कलेक्शन | टेबल में शामिल की जाने वाली लाइनें. |
options |
Object | अनुरोध के वैकल्पिक विकल्प. इसके लिए, ये विकल्प इस्तेमाल किए जा सकते हैं: 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 दस्तावेज़ का डेटा पढ़ता है और ऐसा प्रॉमिस दिखाता है जो दो कुंजियों वाले ऑब्जेक्ट में बदल जाता है:
id
और data
. अगर दस्तावेज़ मौजूद नहीं है, तो प्रॉमिस को ऐसे ऑब्जेक्ट के साथ अस्वीकार कर दिया जाता है जिसमें not_found
के बराबर reason
कुंजी होती है.
सिंटैक्स
Firestore.read(path[, options]);
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
path |
स्ट्रिंग | दस्तावेज़ या कलेक्शन का पाथ. '/' से शुरू या खत्म नहीं होना चाहिए. |
options |
Object | अनुरोध के ज़रूरी विकल्प नहीं हैं. इसके लिए ये विकल्प इस्तेमाल किए जा सकते हैं: projectId, disableCache, और transaction. अनजान विकल्प वाली कुंजियों को अनदेखा कर दिया जाता है. (नीचे विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
projectId |
स्ट्रिंग | Optional. Google Cloud Platform प्रोजेक्ट आईडी. अगर इसे शामिल नहीं किया जाता है, तो
projectId को एनवायरमेंट वैरिएबल
GOOGLE_CLOUD_PROJECT से लिया जाता है. हालांकि, इसके लिए ज़रूरी है कि प्रोजेक्ट आईडी के लिए
access_firestore
अनुमति की सेटिंग को * या
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 |
Object | दस्तावेज़ में लिखी जाने वाली वैल्यू. अगर मर्ज करने का विकल्प सेट है, तो एपीआई, इनपुट से मिली कुंजियों को दस्तावेज़ में मर्ज कर देगा. |
options |
Object | अनुरोध के ज़रूरी विकल्प नहीं हैं. इन विकल्पों का इस्तेमाल किया जा सकता है: projectId, मर्ज, और transaction. विकल्प वाली अनजान कुंजियों को अनदेखा कर दिया जाता है. (नीचे विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
projectId |
स्ट्रिंग | Optional. Google Cloud Platform प्रोजेक्ट आईडी. अगर इसे शामिल नहीं किया जाता है, तो
projectId को एनवायरमेंट वैरिएबल
GOOGLE_CLOUD_PROJECT से लिया जाता है. हालांकि, इसके लिए ज़रूरी है कि प्रोजेक्ट आईडी के लिए
access_firestore
अनुमति की सेटिंग को * या
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. E.g.:
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. क्वेरी का नतीजा बनाने के लिए, शर्तों को AND जोड़ा जाता है. कृपया काम करने वाले क्वेरी ऑपरेटर की सूची के लिए, Firestore के क्वेरी ऑपरेटर देखें. |
options |
Object | अनुरोध के ज़रूरी विकल्प नहीं हैं. इसके लिए ये विकल्प इस्तेमाल किए जा सकते हैं: projectId, disablecache, limit, और transaction. अनजान विकल्प वाली कुंजियों को अनदेखा कर दिया जाता है. (नीचे विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
projectId |
स्ट्रिंग | Optional. Google Cloud Platform प्रोजेक्ट आईडी. अगर इसे शामिल नहीं किया जाता है, तो
projectId को एनवायरमेंट वैरिएबल
GOOGLE_CLOUD_PROJECT से लिया जाता है. हालांकि, इसके लिए ज़रूरी है कि प्रोजेक्ट आईडी के लिए
access_firestore
अनुमति की सेटिंग को * या
GOOGLE_CLOUD_PROJECT पर सेट किया गया हो. अगर सर्वर कंटेनर,
Google Cloud पर चल रहा है, तो GOOGLE_CLOUD_PROJECT को पहले से ही
Google Cloud प्रोजेक्ट के आईडी पर सेट कर दिया जाएगा. |
disableCache |
boolean | Optional. तय करता है कि कैश मेमोरी को बंद करना है या नहीं. डेटा को कैश मेमोरी में सेव करने की सुविधा डिफ़ॉल्ट रूप से चालू रहती है. इससे अनुरोध की अवधि तक नतीजे कैश मेमोरी में सेव होते रहते हैं. |
limit |
नंबर | 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 |
Object | अनुरोध के ज़रूरी विकल्प नहीं हैं. projectId ही विकल्प के तौर पर काम करता है. विकल्प वाली अनजान कुंजियों को अनदेखा कर दिया जाता है. (नीचे विकल्प देखें.) |
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
projectId |
स्ट्रिंग | Optional. Google Cloud Platform प्रोजेक्ट आईडी. अगर इसे शामिल नहीं किया जाता है, तो
projectId को एनवायरमेंट वैरिएबल
GOOGLE_CLOUD_PROJECT से लिया जाता है. हालांकि, इसके लिए ज़रूरी है कि प्रोजेक्ट आईडी के लिए
access_firestore
अनुमति की सेटिंग को * या
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 |
Object | भेजने के लिए मैसेज. अगर मैसेज कोई ऑब्जेक्ट नहीं है, तो एपीआई कुछ नहीं करेगा. |
इनसे जुड़ी अनुमतियां
use_message
अनुमति की ज़रूरत है. अनुमति को कम से कम इस तरह से कॉन्फ़िगर
होना चाहिए:
listen_and_send
याsend
केUsage
वाला मैसेज टाइप.
Object
यह फ़ंक्शन ऐसा ऑब्जेक्ट दिखाता है जो Object
तरीके उपलब्ध कराता है.
keys()
वाला तरीका, स्टैंडर्ड लाइब्रेरी Object.keys() का व्यवहार बताता है. यह किसी दिए गए ऑब्जेक्ट की गिनने लायक प्रॉपर्टी के नामों का कलेक्शन उसी क्रम में दिखाता है जिस क्रम में for...in...
लूप करता है. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे और एक ऑब्जेक्ट बना दिया जाएगा.
values()
वाला तरीका, स्टैंडर्ड लाइब्रेरी Object.values() का व्यवहार बताता है. यह किसी दिए गए ऑब्जेक्ट की गिनने लायक प्रॉपर्टी की वैल्यू का अरे उसी क्रम में दिखाता है जिस क्रम में for...in...
लूप करता है. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे किसी ऑब्जेक्ट में बदल दिया जाएगा.
entries()
वाला तरीका, स्टैंडर्ड लाइब्रेरी Object.entries()
व्यवहार देता है. यह किसी दिए गए ऑब्जेक्ट की गणितीय प्रॉपर्टी का अरे दिखाता है
[key, value]
उसी क्रम में पेयर होता है जिस क्रम में for...in...
लूप होगा. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे एक ऑब्जेक्ट बना दिया जाएगा.
freeze()
वाला तरीका, स्टैंडर्ड लाइब्रेरी Object.freeze() का व्यवहार देता है. फ़्रीज़ किए गए ऑब्जेक्ट को अब बदला नहीं जा सकता; किसी ऑब्जेक्ट को फ़्रीज़ करने से
नई प्रॉपर्टी उसमें जोड़ी नहीं जा सकतीं, मौजूदा प्रॉपर्टी हटाई नहीं जा सकतीं,
और मौजूदा प्रॉपर्टी की वैल्यू में बदलाव नहीं हो सकता. freeze()
उसी ऑब्जेक्ट को दिखाता है जिसमें पास किया गया था. प्रिमिटिव या शून्य तर्क को फ़्रीज़ किया गया ऑब्जेक्ट माना जाएगा और उसे वापस
दिया जाएगा.
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 | कोई भी | वह ऑब्जेक्ट जिसकी कुंजियों की गिनती करनी है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे किसी ऑब्जेक्ट से जोड़ दिया जाएगा. |
Object.values
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | कोई भी | वह ऑब्जेक्ट जिसकी वैल्यू की गिनती करनी है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे किसी ऑब्जेक्ट से जोड़ दिया जाएगा. |
Object.entries
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | कोई भी | वह ऑब्जेक्ट जिसके कुंजी/वैल्यू के जोड़े की गिनती करनी है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे किसी ऑब्जेक्ट से जोड़ दिया जाएगा. |
Object.freeze
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | कोई भी | ऑब्जेक्ट को फ़्रीज़ किया जाना है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे फ़्रीज़ किया गया ऑब्जेक्ट माना जाएगा. |
Object.delete
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
objectInput | कोई भी | वह ऑब्जेक्ट जिसकी कुंजी को मिटाना है. |
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
ऐसा ऑब्जेक्ट दिखाता है जो प्रॉमिस के साथ इंटरैक्ट करने के तरीके उपलब्ध कराता है.
प्रॉमिस, फ़ंक्शनल तौर पर JavaScript प्रॉमिस के बराबर होती है. हर इंस्टेंस में तीन तरीके होते हैं जो प्रॉमिस दिखाते हैं. इसकी मदद से, किसी प्रॉमिस के पूरा होने पर, आगे की कार्रवाई की जा सकती है:
.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 |
फ़ंक्शन | दो फ़ंक्शन की मदद से शुरू किया गया फ़ंक्शन -- रिज़ॉल्व और अस्वीकार करें. इसके लिए, मिला प्रॉमिस, उससे जुड़े पैरामीटर को शुरू करने पर प्रॉमिस समाधान हो जाएगा या अस्वीकार हो जाएगा. अगर रिज़ॉल्वर कोई फ़ंक्शन नहीं है, तो गड़बड़ी दिखाता है. |
उदाहरण
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 |
कोई भी | बेहतर जांच में इस्तेमाल किया जाने वाला मान. |
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 |
कोई भी | एपीआई के लिए दी जाने वाली वैल्यू या एपीआई की जगह कॉल किया गया फ़ंक्शन. अगर returnValue एक फ़ंक्शन है, तो उस फ़ंक्शन को Sandboxed API की जगह कॉल किया जाता है. अगर returnValue , फ़ंक्शन के अलावा कुछ और है, तो Sandboxed API की जगह वह वैल्यू दिखाई जाती है. |
उदाहरण
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
runCode
दिए गए इनपुट डेटा ऑब्जेक्ट के मौजूदा टेस्ट एनवायरमेंट में, टेंप्लेट के लिए कोड यानी कोड टैब का कॉन्टेंट चलाता है.
सिंटैक्स
runCode(data)
पैरामीटर
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
data |
Object | टेस्ट में इस्तेमाल किया जाने वाला डेटा ऑब्जेक्ट. |
रिटर्न वैल्यू
वैरिएबल टेंप्लेट के लिए वैरिएबल की वैल्यू दिखाता है. अन्य सभी तरह के टेंप्लेट के लिए,
undefined
दिखाता है.
उदाहरण
runCode({field1: 123, field2: 'value'});