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

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


addEventCallback

यह कुकी, एक कॉलबैक फ़ंक्शन रजिस्टर करती है. इस फ़ंक्शन को इवेंट के खत्म होने पर शुरू किया जाएगा. इवेंट के सभी टैग के एक्ज़ीक्यूट होने पर, कॉलबैक शुरू हो जाएगा. कॉलबैक को दो वैल्यू पास की जाती हैं: फ़ंक्शन को शुरू करने वाले कंटेनर का आईडी और एक ऑब्जेक्ट, जिसमें इवेंट के बारे में जानकारी होती है.

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

सिंटैक्स

const addEventCallback = require('addEventCallback');

addEventCallback((containerId, eventData) => {
  // Take some action based on the event data.
});

पैरामीटर

पैरामीटर टाइप ब्यौरा
callback function इवेंट के खत्म होने पर कॉल किया जाने वाला फ़ंक्शन.

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 function कॉल करने के लिए फ़ंक्शन.

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

कोई नहीं.


claimRequest

अनुरोध का दावा करने के लिए, इस एपीआई का इस्तेमाल क्लाइंट में करें. अनुरोध का दावा किए जाने के बाद, कंटेनर में अन्य क्लाइंट नहीं चलते.

अगर इस एपीआई को किसी टैग या वैरिएबल में कॉल किया जाता है, तो यह एक अपवाद दिखाता है. अगर इस एपीआई को क्लाइंट के वापस आने के बाद कॉल किया जाता है, तो यह एक अपवाद दिखाता है. उदाहरण के लिए, अगर इसे callLater या runContainer onComplete फ़ंक्शन जैसे एसिंक्रोनस कॉलबैक में कॉल किया जाता है.

क्लाइंट को runContainer एपीआई को कॉल करने से पहले, इस एपीआई का इस्तेमाल करके अनुरोध पर दावा करना चाहिए.

उदाहरण

const claimRequest = require('claimRequest');

claimRequest();

सिंटैक्स

claimRequest();

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

कोई नहीं.


computeEffectiveTldPlusOne

यह फ़ंक्शन, दिए गए डोमेन या यूआरएल का इफ़ेक्टिव टॉप-लेवल डोमेन + 1 (ईटीएलडी+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` (छोटे-बड़े अक्षरों को अनदेखा करें) का इस्तेमाल किया जा सकता है. अन्य सभी वर्णों को अनदेखा कर दिया जाता है.

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

कोई नहीं.

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

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

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

उदाहरण

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 स्क्रिप्ट के पहले से तय किए गए सेट से किसी संसाधन को वापस लाता है. साथ ही, स्क्रिप्ट और उससे जुड़े कैश मेमोरी में सेव किए गए मेटाडेटा के साथ प्रॉमिस दिखाता है.

प्रॉमिस, दो कुंजियां वाले ऑब्जेक्ट में रिज़ॉल्व होगा: 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) स्क्रिप्ट फ़ेच करता है.

विकल्प, https://www.googletagmanager.com/gtm.js से Google Tag Manager स्क्रिप्ट फ़ेच करता है.'GTM'
options object अनुरोध के लिए उपलब्ध वैकल्पिक विकल्प. यहां दिए गए विकल्पों का इस्तेमाल किया जा सकता है.

विकल्प

विकल्प टाइप ब्यौरा
id स्ट्रिंग यह 'GTAG' पर लागू होता है. इसमें gtag मेज़रमेंट आईडी और 'GTM' में वेब कंटेनर आईडी (जैसे, GTM-XXXX).
debug any अगर सही है, तो मेज़रमेंट स्क्रिप्ट के डीबग वर्शन का अनुरोध करता है और उसे दिखाता है.
timeout number अनुरोध के लिए टाइम आउट की अवधि, मिलीसेकंड में. पॉज़िटिव वैल्यू नहीं होने पर, उन्हें अनदेखा कर दिया जाता है. अगर अनुरोध का समय खत्म हो जाता है, तो स्क्रिप्ट वैल्यू के लिए undefined और मेटाडेटा ऑब्जेक्ट के लिए {} के साथ कॉलबैक शुरू किया जाएगा.

पहचान में न आने वाली विकल्प कुंजियों को अनदेखा कर दिया जाता है.

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

इसके लिए, send_http की अनुमति ज़रूरी है. अनुमति को इस तरह कॉन्फ़िगर किया जाना चाहिए कि कम से कम इन चीज़ों का ऐक्सेस दिया जा सके:

  • Google Domains को अनुमति दें

getRemoteAddress

यह फ़ंक्शन, आईपी पते का स्ट्रिंग वर्शन दिखाता है. यह वह आईपी पता होता है जहां से अनुरोध किया गया था. जैसे, IPv4 के लिए 12.345.67.890 या IPv6 के लिए 2001:0db8:85a3:0:0:8a2e:0370:7334. यह अनुरोध के हेडर, जैसे कि Forwarded और X-Forwarded-For को पढ़कर ऐसा करता है. ध्यान दें: यह एपीआई, अनुरोध करने वाले आईपी पते का पता लगाने की पूरी कोशिश करता है. हालांकि, यह इस बात की गारंटी नहीं दे सकता कि नतीजा सटीक होगा.

सिंटैक्स

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

यह फ़ंक्शन, क्वेरी स्ट्रिंग पैरामीटर के नाम की डिकोड की गई वैल्यू को string के तौर पर दिखाता है. अगर पैरामीटर मौजूद नहीं है, तो 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() फ़ंक्शन से मिले number को दिखाता है. यह संख्या, Unix epoch के बाद से अब तक के समय को मिलीसेकंड में दिखाती है.

सिंटैक्स

getTimestamp();

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

कोई नहीं.


getTimestampMillis

यह फ़ंक्शन, Date.now() फ़ंक्शन से मिले number को दिखाता है. यह संख्या, Unix epoch के बाद से अब तक के समय को मिलीसेकंड में दिखाती है.

सिंटैक्स

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 object ज़रूरी नहीं एपीआई कॉन्फ़िगरेशन. (नीचे दिए गए विकल्प देखें.)

विकल्प

विकल्प टाइप ब्यौरा
outputEncoding स्ट्रिंग इससे, जवाब के लिए एन्कोडिंग फ़ॉर्मैट तय किया जाता है. hex, base64 या base64url फ़ॉर्मैट इस्तेमाल किए जा सकते हैं. अगर इसकी वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट रूप से इसकी वैल्यू base64url होती है.

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

use_custom_private_keys

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

1.0.0


isRequestMpv1

अगर आने वाला अनुरोध, मेज़रमेंट प्रोटोकॉल V1 का अनुरोध है, तो रिस्पॉन्स के तौर पर true मिलता है. अगर अनुरोध मेज़रमेंट प्रोटोकॉल V1 का नहीं है, तो रिस्पॉन्स के तौर पर false मिलता है.

उदाहरण

const isRequestMpv1 = require('isRequestMpv1');

if (isRequestMpv1()) {
  // Handle Measurement Protocol V1 request.
  const events = extractEventsFromMpv1();
}

सिंटैक्स

isRequestMpv1();

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

कोई नहीं.


isRequestMpv2

अगर आने वाला अनुरोध, मेज़रमेंट प्रोटोकॉल V2 का अनुरोध है, तो रिस्पॉन्स के तौर पर true मिलता है. अगर अनुरोध मेज़रमेंट प्रोटोकॉल V2 का नहीं है, तो रिस्पॉन्स के तौर पर false मिलता है.

उदाहरण

const isRequestMpv2 = require('isRequestMpv2');

if (isRequestMpv2()) {
  // Handle Measurement Protocol V2 request.
  const events = extractEventsFromMpv2();
}

सिंटैक्स

isRequestMpv2();

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

कोई नहीं.


logToConsole

यह अपने आर्ग्युमेंट को कंसोल में लॉग करता है.

ये लॉग, Google Cloud Console में लॉग एक्सप्लोरर में दिखते हैं. इस एपीआई से बनाई गई लॉग एंट्री देखने के लिए, Logs Explorer में 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'
}

यह एक Object दिखाता है: इसमें की-वैल्यू पेयर के बदले गए 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 object इवेंट पैरामीटर.
onComplete function यह एक कॉलबैक फ़ंक्शन है, जिसे सभी टैग ट्रिगर होने के बाद शुरू किया जाता है.
onStart function यह एक कॉलबैक है, जिसे टैग के ट्रिगर होने से ठीक पहले शुरू किया जाता है.

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

run_container


sendEventToGoogleAnalytics

यह फ़ंक्शन, कॉमन इवेंट डेटा का इस्तेमाल करके, Google Analytics को एक इवेंट भेजता है. साथ ही, यह एक प्रॉमिस दिखाता है. यह प्रॉमिस, location कुंजी वाले ऑब्जेक्ट में बदल जाता है या reason कुंजी वाले ऑब्जेक्ट में बदल जाता है. Google Analytics 4, इवेंट डेटा में मौजूद मेज़रमेंट आईडी पर आधारित होता है.

अगर location हेडर मौजूद है, तो 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 object यूनीफ़ाइड स्कीमा फ़ॉर्मैट में इवेंट.

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

इसके लिए, send_http की अनुमति ज़रूरी है. अनुमति को इस तरह कॉन्फ़िगर किया जाना चाहिए कि कम से कम इन चीज़ों का ऐक्सेस दिया जा सके:

  • Google Domains को अनुमति दें

sendHttpGet

यह फ़ंक्शन, बताए गए यूआरएल पर एचटीटीपी GET अनुरोध करता है. साथ ही, यह एक प्रॉमिस दिखाता है. यह प्रॉमिस, अनुरोध पूरा होने या समयसीमा खत्म होने के बाद नतीजे के साथ रिज़ॉल्व होता है.

हल किया गया नतीजा एक ऐसा ऑब्जेक्ट होता है जिसमें तीन कुंजियां होती हैं: 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 number अनुरोध को रद्द करने से पहले का टाइम आउट, मिलीसेकंड में. डिफ़ॉल्ट रूप से, यह 15000 पर सेट होता है.
authorization object ज़रूरी नहीं है कि getGoogleAuth को कॉल करने पर, ऑथराइज़ेशन ऑब्जेक्ट शामिल किया जाए. इसका इस्तेमाल, googleapis.com को अनुरोध भेजते समय ऑथराइज़ेशन हेडर शामिल करने के लिए किया जाता है.

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

send_http


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 number अनुरोध को रद्द करने से पहले का टाइम आउट, मिलीसेकंड में. डिफ़ॉल्ट रूप से, यह 15000 पर सेट होता है.
authorization object ज़रूरी नहीं है कि getGoogleAuth को कॉल करने पर, ऑथराइज़ेशन ऑब्जेक्ट शामिल किया जाए. इसका इस्तेमाल, googleapis.com को अनुरोध भेजते समय ऑथराइज़ेशन हेडर शामिल करने के लिए किया जाता है.

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

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 object कुकी के वैकल्पिक एट्रिब्यूट:domain, expires, fallbackDomain,httpOnly, max- age, path, secure, andsameSite. (नीचे दिए गए विकल्प देखें.)
noEncode boolean अगर यह सही है, तो कुकी की वैल्यू को कोड में नहीं बदला जाएगा. डिफ़ॉल्ट रूप से, यह false पर सेट होता है.

विकल्प

  • domain: वह होस्ट जहां कुकी को भेजा जाएगा. अगर खास वैल्यू 'ऑटो' पर सेट है, तो होस्ट का आकलन अपने-आप इस रणनीति का इस्तेमाल करके किया जाएगा:

    • अगर Forwarded हेडर मौजूद है, तो उसका eTLD+1.
    • अगर X-Forwarded-Host हेडर मौजूद है, तो उसका eTLD+1.
    • Host हेडर का eTLD+1.
  • expires: कुकी की ज़्यादा से ज़्यादा लाइफ़टाइम. यह यूटीसी फ़ॉर्मैट में तारीख की स्ट्रिंग होनी चाहिए. जैसे, "Sat, 26 Oct 1985 08:21:00 GMT". अगर expires और max-age, दोनों सेट हैं, तो max-age को प्राथमिकता दी जाती है.

  • httpOnly: अगर true है, तो JavaScript को कुकी ऐक्सेस करने से रोकता है.

  • max-age: कुकी के खत्म होने तक के सेकंड की संख्या. शून्य या नेगेटिव संख्या डालने पर, कुकी तुरंत खत्म हो जाएगी. अगर expires और max-age, दोनों सेट हैं, तो max-age को प्राथमिकता दी जाती है.

  • path: यह एक ऐसा पाथ होता है जो अनुरोध किए गए यूआरएल में मौजूद होना चाहिए. ऐसा न होने पर, ब्राउज़र Cookie हेडर नहीं भेजेगा.

  • 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 हेडर की वैल्यू. अगर यह शून्य या तय नहीं किया गया है, तो इससे उस रिस्पॉन्स से नाम वाला हेडर हट जाता है जिसे वापस भेजा जाएगा.

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

इसके लिए, 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 function इस फ़ंक्शन को, base64 में कोड किए गए डाइजेस्ट के साथ कॉल किया जाता है. हालांकि, अगर options ऑब्जेक्ट किसी अन्य आउटपुट एन्कोडिंग के बारे में बताता है, तो ऐसा नहीं किया जाता.
options object आउटपुट एन्कोडिंग तय करने के लिए, वैकल्पिक विकल्प ऑब्जेक्ट. अगर इसे तय किया गया है, तो ऑब्जेक्ट में 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 object आउटपुट एन्कोडिंग तय करने के लिए, वैकल्पिक विकल्प ऑब्जेक्ट. अगर इसे तय किया गया है, तो ऑब्जेक्ट में outputEncoding कुंजी होनी चाहिए. इसकी वैल्यू base64 या hex में से कोई एक होनी चाहिए.

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

कोई नहीं.


templateDataStorage

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

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

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

access_bigquery


Firestore

यह एक ऐसा ऑब्जेक्ट दिखाता है जो Firestore फ़ंक्शन उपलब्ध कराता है.

यह एपीआई सिर्फ़ नेटिव मोड में Firestore के साथ काम करता है. यह Datastore मोड में Firestore के साथ काम नहीं करता. साथ ही, एपीआई सिर्फ़ डिफ़ॉल्ट डेटाबेस का इस्तेमाल करने की सुविधा देता है.

Firestore.read

Firestore.read फ़ंक्शन, Firestore दस्तावेज़ से डेटा पढ़ता है. साथ ही, यह एक प्रॉमिस दिखाता है. यह प्रॉमिस, दो कुंजियां वाले ऑब्जेक्ट में बदल जाता है: id और data. अगर दस्तावेज़ मौजूद नहीं है, तो प्रॉमिस को खारिज कर दिया जाता है. साथ ही, reason कुंजी वाला एक ऑब्जेक्ट मिलता है, जिसकी वैल्यू not_found होती है.

सिंटैक्स

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, merge, और 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. उदाहरण: [[‘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 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 function यह एक कॉलबैक है, जिसे स्ट्रिंग लेन-देन आईडी के साथ शुरू किया जाता है. लेन-देन आईडी को read/write/query API कॉल में पास किया जा सकता है. इस कॉलबैक फ़ंक्शन को प्रॉमिस ज़रूर दिखाना चाहिए. कॉल बैक की सुविधा, तीन बार तक काम कर सकती है. इसके बाद, यह काम नहीं करेगी.
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 के गड़बड़ी कोड शामिल हो सकते हैं. हालांकि, इनके अलावा और भी कोड शामिल हो सकते हैं.

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

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

  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 function लागू होने वाले मैसेज टाइप का कोई मैसेज भेजे जाने पर, इस कॉलबैक को चलाया जाता है. अगर कॉलबैक कोई फ़ंक्शन नहीं है, तो एपीआई कुछ नहीं करेगा.

उदाहरण

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() तरीके से, स्टैंडर्ड लाइब्रेरी के delete operator का इस्तेमाल किया जा सकता है. यह ऑब्जेक्ट से दी गई कुंजी को हटाता है. हालांकि, अगर ऑब्जेक्ट फ़्रीज़ किया गया है, तो ऐसा नहीं किया जा सकता. स्टैंडर्ड लाइब्रेरी के डिलीट ऑपरेटर की तरह, यह 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

यह एक ऐसा ऑब्जेक्ट दिखाता है जो प्रॉमिस के साथ इंटरैक्ट करने के तरीके उपलब्ध कराता है.

प्रॉमिस, 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 function यह एक ऐसा फ़ंक्शन है जिसे दो फ़ंक्शन के साथ लागू किया जाता है -- रिज़ॉल्व और अस्वीकार. जब इससे जुड़ा पैरामीटर शुरू किया जाएगा, तब यह प्रॉमिस पूरा होगा या अस्वीकार कर दिया जाएगा. अगर रिज़ॉल्वर कोई फ़ंक्शन नहीं है, तो गड़बड़ी दिखाता है.

उदाहरण

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 API को 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 कोई फ़ंक्शन है, तो Sandboxed API की जगह उस फ़ंक्शन को कॉल किया जाता है. अगर returnValue कोई फ़ंक्शन नहीं है, तो Sandboxed API की जगह उस वैल्यू को दिखाया जाता है.

उदाहरण

mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
    onSuccess();
});

mockObject

mockObject एपीआई की मदद से, सैंडबॉक्स किए गए उन एपीआई के व्यवहार को बदला जा सकता है जो ऑब्जेक्ट दिखाते हैं. इस एपीआई का इस्तेमाल टेंप्लेट कोड में सुरक्षित तरीके से किया जा सकता है. हालांकि, यह सिर्फ़ टेस्ट मोड में काम करता है. हर टेस्ट को चलाने से पहले, मॉक को रीसेट किया जाता है.

सिंटैक्स

mockObject(apiName, objectMock);

पैरामीटर

पैरामीटर टाइप ब्यौरा
apiName स्ट्रिंग जिस एपीआई को मॉक करना है उसका नाम; यह वही स्ट्रिंग है जिसे require() को पास किया गया था
objectMock object एपीआई या एपीआई की जगह कॉल किए गए फ़ंक्शन के लिए, वैल्यू को वापस लाने का तरीका. यह एक ऑब्जेक्ट होना चाहिए.

उदाहरण

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 object टेस्ट में इस्तेमाल किया जाने वाला डेटा ऑब्जेक्ट.

रिटर्न वैल्यू

वैरिएबल टेंप्लेट के लिए, वैरिएबल की वैल्यू दिखाता है. साथ ही, अन्य सभी टेंप्लेट टाइप के लिए undefined दिखाता है.

उदाहरण

runCode({field1: 123, field2: 'value'});