सर्वर साइड टैगिंग एपीआई

इस दस्तावेज़ में, सर्वर-साइड टैगिंग के लिए एपीआई के बारे में बताया गया है.


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.
});

इससे जुड़ी अनुमतियां

read_event_metadata


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` (छोटे-बड़े अक्षरों को अनदेखा करें) का इस्तेमाल किया जा सकता है. बाकी सभी वर्णों को चुपचाप अनदेखा कर दिया जाता है.

इससे जुड़ी अनुमतियां

कोई नहीं.

इमेज का कम से कम वर्शन

2.0.0


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();

इससे जुड़ी अनुमतियां

read_event_data


getClientName

मौजूदा क्लाइंट का नाम दिखाने वाली स्ट्रिंग दिखाता है.

सिंटैक्स

getClientName();

इससे जुड़ी अनुमतियां

read_container_data


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();

इससे जुड़ी अनुमतियां

read_container_data


getCookieValues

यह एक ऐरे दिखाता है, जिसमें दिए गए नाम वाली सभी कुकी की वैल्यू होती हैं.

उदाहरण

const getCookieValues = require('getCookieValues');

const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
  // ...
}

सिंटैक्स

getCookieValues(name[, noDecode]);

पैरामीटर

पैरामीटर टाइप ब्यौरा
name स्ट्रिंग कुकी का नाम.
noDecode boolean अगर true है, तो कुकी वैल्यू को डिकोड किए बिना ही दिखाया जाएगा. डिफ़ॉल्ट रूप से, यह false पर सेट होती है.

इससे जुड़ी अनुमतियां

get_cookies


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);

इससे जुड़ी अनुमतियां

read_event_data


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();

इससे जुड़ी अनुमतियां

read_request


getRequestHeader

नाम वाले अनुरोध हेडर की वैल्यू को स्ट्रिंग के तौर पर दिखाता है. हालांकि, अगर वैल्यू मौजूद नहीं है, तो undefined दिखाता है. अगर हेडर दोहराया जाता है, तो दिखाई गई वैल्यू को ', ' के साथ जोड़ दिया जाता है.

उदाहरण

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

सिंटैक्स

getRequestHeader(headerName);

पैरामीटर

पैरामीटर टाइप ब्यौरा
headerName स्ट्रिंग हेडर का नाम. यह वैल्यू, केस-इनसेंसिटिव होती है.

इससे जुड़ी अनुमतियां

read_request


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();

इससे जुड़ी अनुमतियां

read_request


getRequestQueryParameter

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

उदाहरण

const getRequestQueryParameter = require('getRequestQueryParameter');

const query = getRequestQueryParameter('query');
if (query) {
  // Process query here.
}

सिंटैक्स

getRequestQueryParameter(name);

पैरामीटर

पैरामीटर टाइप ब्यौरा
name स्ट्रिंग क्वेरी पैरामीटर का नाम.

इससे जुड़ी अनुमतियां

read_request


getRequestQueryParameters

आने वाले एचटीटीपी अनुरोध के क्वेरी पैरामीटर को ऑब्जेक्ट के तौर पर दिखाता है. यह ऑब्जेक्ट, क्वेरी पैरामीटर के नामों को उससे जुड़ी वैल्यू या वैल्यू से मैप करता है. पैरामीटर के नाम और वैल्यू को डिकोड किया जाता है.

उदाहरण

const getRequestQueryParameters = require('getRequestQueryParameters');

const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
  // Handle the search query here.
  const maxResults = queryParameters['max_results'];
}

सिंटैक्स

getRequestQueryParameters();

इससे जुड़ी अनुमतियां

read_request


getRequestQueryString

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

उदाहरण

const getRequestQueryString = require('getRequestQueryString');

const queryString = getRequestQueryString();
if (queryString !== '') {
  // Handle the query string.
}

सिंटैक्स

getRequestQueryString();

इससे जुड़ी अनुमतियां

read_request


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 लागू हो जाती है.

इससे जुड़ी अनुमतियां

use_custom_private_keys

इमेज का कम से कम वर्शन

1.0.0


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, ...]);

पैरामीटर

एपीआई एक या एक से ज़्यादा आर्ग्युमेंट लेता है. ज़रूरत पड़ने पर, हर आर्ग्युमेंट को स्ट्रिंग में बदल दिया जाता है और उसे कंसोल में लॉग कर दिया जाता है.

इससे जुड़ी अनुमतियां

logging


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 का उदाहरण देखें.

इससे जुड़ी अनुमतियां

return_response


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 फ़ंक्शन टैग ट्रिगर होने से पहले, तुरंत लागू होने वाला कॉलबैक.

इससे जुड़ी अनुमतियां

run_container


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 को कॉल करने से मिले ऑथराइज़ेशन ऑब्जेक्ट को शामिल करना ज़रूरी नहीं है.

इससे जुड़ी अनुमतियां

send_http


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 को कॉल करने से मिले ऑथराइज़ेशन ऑब्जेक्ट को शामिल करना ज़रूरी नहीं है.

इससे जुड़ी अनुमतियां

send_http


sendPixelFromBrowser

दिए गए यूआरएल को <img> टैग के तौर पर लोड करने के लिए, ब्राउज़र को कमांड भेजता है. यह कमांड प्रोटोकॉल, GA4 के लिए Google टैग और Google Analytics: GA इवेंट वेब टैग में काम करता है. आपको सर्वर कंटेनर का यूआरएल कॉन्फ़िगर करना होगा. ज़्यादा जानकारी के लिए, निर्देश देखें.

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

उदाहरण:

const sendPixelFromBrowser = require('sendPixelFromBrowser');

sendPixelFromBrowser('https://example.com/?id=123');

सिंटैक्स

sendPixelFromBrowser(url)

पैरामीटर

पैरामीटर टाइप ब्यौरा
url स्ट्रिंग ब्राउज़र को भेजा जाने वाला यूआरएल.

इससे जुड़ी अनुमतियां

send_pixel_from_browser


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' होना चाहिए.

इससे जुड़ी अनुमतियां

set_cookie


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);
});

इससे जुड़ी अनुमतियां

access_template_storage


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 टेबल से कनेक्ट करने के लिए ज़रूरी जानकारी तय करता है. इसमें एक वैकल्पिक पैरामीटर और दो ज़रूरी पैरामीटर होते हैं:
  • projectId - Google Cloud Platform का प्रोजेक्ट आईडी, जो ज़रूरी नहीं है. अगर projectId को शामिल नहीं किया जाता है, तो projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से तब तक लिया जाता है, जब तक प्रोजेक्ट आईडी के लिए access_bigquery की अनुमति सेटिंग * या GOOGLE_CLOUD_PROJECT पर सेट रहती है. अगर सर्वर कंटेनर, Google Cloud पर चल रहा है, तो GOOGLE_CLOUD_PROJECT पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट हो जाएगा.
  • datasetId - BigQuery डेटासेट आईडी.
  • tableId - 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);

इससे जुड़ी अनुमतियां

access_bigquery


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 के गड़बड़ी वाले कोड शामिल हो सकते हैं. हालांकि, इनमें और भी वजहें शामिल हो सकती हैं.

इससे जुड़ी अनुमतियां

access_firestore


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 का इस्तेमाल करके (आम तौर पर, टैग की मदद से) उस टाइप का मैसेज भेजा जाता है, तो कॉलबैक सिंक्रोनस तरीके से चलेगा. कॉलबैक दो पैरामीटर के साथ चलाया जाता है:

  1. messageType:string
  2. 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'});