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

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


addEventCallback

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

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

सिंटैक्स

const addEventCallback = require('addEventCallback');

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

पैरामीटर

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

eventData ऑब्जेक्ट में यह डेटा शामिल होता है:

कुंजी का नाम टाइप ब्यौरा
tags Array टैग डेटा ऑब्जेक्ट का कलेक्शन. इवेंट के दौरान ट्रिगर हुए हर टैग की जानकारी इस कलेक्शन में मौजूद होगी. टैग डेटा ऑब्जेक्ट में टैग का आईडी (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

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

उदाहरण

const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const isRequestMpv1 = require('isRequestMpv1');

if (isRequestMpv1()) {
  const events = extractEventsFromMpv1();
  for (let i = 0; i < events.length; ++i) {
    const event = events[i];
    // Process event.
  }
}

सिंटैक्स

extractEventsFromMpv1();

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

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

  • body
  • query parameters

extractEventsFromMpv2

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

उदाहरण

const extractEventsFromMpv2 = require('extractEventsFromMpv2');
const isRequestMpv2 = require('isRequestMpv2');

if (isRequestMpv2()) {
  const events = extractEventsFromMpv2();
  for (let i = 0; i < events.length; ++i) {
    const event = events[i];
    // Process event.
  }
}

सिंटैक्स

extractEventsFromMpv2();

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

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

  • body
  • query parameters

fromBase64

base64 कोड में बदली गई स्ट्रिंग को डिकोड करता है. इनपुट अमान्य होने पर, undefined दिखाता है.

सिंटैक्स

fromBase64(base64EncodedString);

पैरामीटर

पैरामीटर टाइप ब्यौरा
base64EncodedString स्ट्रिंग Base64 कोड में बदली गई स्ट्रिंग.

उदाहरण

const fromBase64 = require('fromBase64');

const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
  // ...
}

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

कोई नहीं.


generateRandom

दी गई रेंज में से, बिना किसी क्रम के कोई नंबर (पूर्णांक) दिखाता है.

उदाहरण

const generateRandom = require('generateRandom');

const randomValue = generateRandom(0, 10000000);

सिंटैक्स

generateRandom(min, max);

पैरामीटर

पैरामीटर टाइप ब्यौरा
min नंबर लौटाए गए पूर्णांक की कम से कम संभावित वैल्यू (इसमें शामिल है).
max नंबर वापस किए गए पूर्णांक की ज़्यादा से ज़्यादा संभावित वैल्यू (इसमें शामिल है).

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

कोई नहीं.


getAllEventData

इवेंट डेटा की कॉपी दिखाता है.

सिंटैक्स

getAllEventData();

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

read_event_data


getAnonymizedIpAddress

यह उस आईपी पते की पहचान छिपाने वाली स्ट्रिंग दिखाता है जहां से अनुरोध भेजा गया था.

IPv4 पतों के लिए, आखिरी ऑक्टेट को 0 पर मास्क किया जाता है. उदाहरण के लिए, 198.51.100.42, 198.51.100.0 बन जाता है. IPv6 पतों के लिए, आखिरी 80 बिट को शून्य पर मास्क किया जाता है. साथ ही, पहले 48 बिट को बनाए रखा जाता है. उदाहरण के लिए, 2001:db8:cafe:1234:5678:90ab:cdef:1234, 2001:db8:cafe:: बन जाता है.

अगर आईपी पता अमान्य है या उसे रिज़ॉल्व नहीं किया जा सकता, तो "::" दिखाता है. इसलिए, नतीजे को हमेशा ip_override के तौर पर इस्तेमाल करना सुरक्षित होता है.

उदाहरण

const getAnonymizedIpAddress = require('getAnonymizedIpAddress');

const anonymizedIp = getAnonymizedIpAddress();

सिंटैक्स

getAnonymizedIpAddress();

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

user_ip


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 बूलियन अगर 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 Array 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) स्क्रिप्ट को फ़ेच करता है.

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

विकल्प

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

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

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

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

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

getRemoteAddress

यह अनुरोध के हेडर, जैसे कि Forwarded और X-Forwarded-For को पढ़कर, उस आईपी पते को स्ट्रिंग के तौर पर दिखाता है जहां से अनुरोध किया गया था. उदाहरण के लिए, IPv4 के लिए 12.345.67.890 या IPv6 के लिए 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 को प्राथमिकता दें.

यह एक संख्या दिखाता है, जो Unix epoch के बाद से मौजूदा समय को मिलीसेकंड में दिखाती है. इसे Date.now() से दिखाया जाता है.

सिंटैक्स

getTimestamp();

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

कोई नहीं.


getTimestampMillis

यह एक संख्या दिखाता है, जो Unix epoch के बाद से मौजूदा समय को मिलीसेकंड में दिखाती है. इसे Date.now() से दिखाया जाता है.

सिंटैक्स

getTimestampMillis();

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

कोई नहीं.


getType

यह फ़ंक्शन, दी गई वैल्यू के टाइप के बारे में बताने वाली स्ट्रिंग दिखाता है.

इनपुट का टाइप रिटर्न वैल्यू
स्ट्रिंग 'string'
नंबर 'number'
बूलियन 'boolean'
null 'null'
undefined 'undefined'
Array '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 दिखाता है. ऐसा न होने पर, 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 में Logs Explorer में दिखते हैं. इस एपीआई से बनाई गई लॉग एंट्री देखने के लिए, 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 any type वह वैल्यू जिसे बदलना है.

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

कोई नहीं.


makeNumber

यह दी गई वैल्यू को संख्या में बदलता है.

सिंटैक्स

makeNumber(value);

पैरामीटर

पैरामीटर टाइप ब्यौरा
value any type वह वैल्यू जिसे बदलना है.

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

कोई नहीं.


makeString

दी गई वैल्यू को स्ट्रिंग के तौर पर दिखाता है.

सिंटैक्स

makeString(value);

पैरामीटर

पैरामीटर टाइप ब्यौरा
value any type वह वैल्यू जिसे बदलना है.

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

कोई नहीं.


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

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

run_container


sendEventToGoogleAnalytics

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

अगर 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

यह दिए गए यूआरएल पर एचटीटीपी जीईटी अनुरोध करता है और एक प्रॉमिस दिखाता है. अनुरोध पूरा होने या टाइम आउट होने पर, यह प्रॉमिस नतीजे के साथ रिज़ॉल्व हो जाता है.

नतीजे के तौर पर मिलने वाला ऑब्जेक्ट, तीन कुंजियों वाला होता है: statusCode, headers, और body. अगर अनुरोध पूरा नहीं हो पाता है, तो प्रॉमिस को {reason: 'failed'} के साथ अस्वीकार कर दिया जाएगा. जैसे, अमान्य यूआरएल, होस्ट का कोई रूट न होना, एसएसएल नेगोशिएशन पूरा न होना वगैरह. अगर timeout विकल्प सेट किया गया था और अनुरोध का समय खत्म हो गया, तो प्रॉमिस को अस्वीकार कर दिया जाएगा: {reason: 'timed_out'}

उदाहरण

const sendHttpGet = require('sendHttpGet');

// Returns the response body as the value for a variable.
return sendHttpGet('https://example.com/item/' + data.itemId, {
  headers: {key: 'value'},
  timeout: 500,
}).then((result) => result.body, () => undefined);

सिंटैक्स

sendHttpGet(url[, options]);

पैरामीटर

पैरामीटर टाइप ब्यौरा
url स्ट्रिंग जिस यूआरएल के लिए अनुरोध किया गया.
options object अनुरोध के वैकल्पिक विकल्प. (नीचे दिए गए विकल्प देखें.)

विकल्प

विकल्प टाइप ब्यौरा
headers स्ट्रिंग अनुरोध के अन्य हेडर.
timeout नंबर अनुरोध रद्द होने से पहले, टाइम आउट की अवधि मिलीसेकंड में. डिफ़ॉल्ट रूप से, यह 15000 पर सेट होता है.
authorization object googleapis.com को अनुरोध भेजते समय, ऑथराइज़ेशन हेडर शामिल करने के लिए, getGoogleAuth को किए गए कॉल से मिला वैकल्पिक ऑथराइज़ेशन ऑब्जेक्ट.

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

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

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

send_http


sendPixelFromBrowser

यह अनुमति मिलने पर, ब्राउज़र को दिए गए यूआरएल को <img> टैग के तौर पर लोड करने का निर्देश भेजा जा सकता है. यह कमांड प्रोटोकॉल, Google Analytics के लिए 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, औरsameSite. (नीचे दिए गए विकल्प देखें.)
noEncode बूलियन अगर यह सही है, तो कुकी की वैल्यू को कोड में नहीं बदला जाएगा. डिफ़ॉल्ट रूप से, यह कार्रवाई 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: यह एक ऐसा पाथ है जो अनुरोध किए गए यूआरएल में मौजूद होना चाहिए. ऐसा न होने पर, ब्राउज़र कुकी हेडर नहीं भेजेगा.

  • 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 नंबर एचटीटीपी स्टेटस कोड, जो दिखाया जाएगा.

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

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

  • status

sha256

यह नोड, इनपुट के SHA-256 डाइजेस्ट की कैलकुलेशन करता है और base64 में एन्कोड किए गए डाइजेस्ट के साथ कॉलबैक को शुरू करता है. हालांकि, अगर options ऑब्जेक्ट में कोई दूसरा आउटपुट एन्कोडिंग तय किया गया है, तो यह नोड कॉलबैक को शुरू नहीं करता.

इस एपीआई का सिग्नेचर और व्यवहार, वेब कंटेनर के लिए sha256 एपीआई से मैच करता है. हालांकि, सर्वर कंटेनर में कस्टम टेंप्लेट को आसान कोड के लिए, sha256Sync एपीआई का इस्तेमाल करना चाहिए.

उदाहरण

const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256 = require('sha256');

sha256('inputString', (digest) => {
  sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
});

sha256('inputString', (digest) => {
  sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
}, {outputEncoding: 'hex'});

सिंटैक्स

sha256(input, onSuccess, options = undefined);

पैरामीटर

पैरामीटर टाइप ब्यौरा
input स्ट्रिंग हैश की जाने वाली स्ट्रिंग.
onSuccess फ़ंक्शन इसे base64 में एन्कोड किए गए डाइजेस्ट के साथ कॉल किया जाता है. हालांकि, अगर options ऑब्जेक्ट में आउटपुट एन्कोडिंग के लिए कोई दूसरा तरीका बताया गया है, तो इसे उस तरीके के साथ कॉल किया जाता है.
options object आउटपुट एन्कोडिंग तय करने के लिए, ज़रूरी नहीं विकल्प ऑब्जेक्ट. अगर ऑब्जेक्ट की जानकारी दी गई है, तो उसमें outputEncoding कुंजी होनी चाहिए. साथ ही, उसकी वैल्यू base64 या hex में से कोई एक होनी चाहिए.

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

कोई नहीं.


sha256Sync

यह इनपुट के 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 एपीआई की मदद से बनाए गए रेगुलर एक्सप्रेशन के हिसाब से, स्ट्रिंग की जांच करता है. अगर रेगुलर एक्सप्रेशन मैच होता है, तो true दिखाता है. अगर ऐसा नहीं है, तो false दिखाता है.

ग्लोबल फ़्लैग के साथ बनाया गया रेगुलर एक्सप्रेशन, स्टेटफ़ुल होता है. ज़्यादा जानकारी के लिए, RegExp दस्तावेज़ देखें.

उदाहरण

const createRegex = require('createRegex');
const testRegex = require('testRegex');

const domainRegex = createRegex('\\w+\\.com', 'i');

// createRegex returns null if the regex is invalid or Re2 is not available.
if (domainRegex === null) return;

// Returns true
testRegex(domainRegex, 'example.com/foobar');

सिंटैक्स

testRegex(regex, string);

पैरामीटर

पैरामीटर टाइप ब्यौरा
regex ऑब्जेक्ट जांच के लिए रेगुलर एक्सप्रेशन, जिसे createRegex API से दिखाया गया है.
string स्ट्रिंग जांच करने के लिए टेस्ट स्ट्रिंग.

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

कोई नहीं.


toBase64

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

सिंटैक्स

toBase64(input, options);

पैरामीटर

पैरामीटर टाइप ब्यौरा
input स्ट्रिंग कोड में बदलने के लिए स्ट्रिंग.
options object एपीआई कॉन्फ़िगरेशन ज़रूरी नहीं है. (नीचे दिए गए विकल्प देखें.)

विकल्प

विकल्प टाइप ब्यौरा कम से कम वर्शन
urlEncoding बूलियन अगर यह 'सही है' पर सेट है, तो नतीजे को 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 Array टेबल में शामिल की जाने वाली पंक्तियां.
options object अनुरोध के लिए वैकल्पिक विकल्प. इस्तेमाल किए जा सकने वाले विकल्प ये हैं: ignoreUnknownValues और skipInvalidRows. अनजान विकल्प कुंजियों को अनदेखा कर दिया जाता है. (नीचे दिए गए विकल्प देखें.)

विकल्प

पैरामीटर टाइप ब्यौरा
ignoreUnknownValues बूलियन अगर इसे true पर सेट किया जाता है, तो ऐसी लाइनें स्वीकार की जाती हैं जिनमें स्कीमा से मेल न खाने वाली वैल्यू शामिल होती हैं. अज्ञात वैल्यू को अनदेखा कर दिया जाता है. डिफ़ॉल्ट रूप से, यह false पर सेट होता है.
skipInvalidRows बूलियन अगर इसे 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 दस्तावेज़ से डेटा को रीड करता है और एक प्रॉमिस दिखाता है. यह प्रॉमिस, दो कुंजियों वाले ऑब्जेक्ट में रिज़ॉल्व होता है: 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 बूलियन 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 बूलियन 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 Array क्वेरी की शर्तों का कलेक्शन. हर क्वेरी, तीन वैल्यू वाली कलेक्शन के तौर पर आती है: 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 बूलियन Optional. इससे यह तय होता है कि कैश मेमोरी को बंद करना है या नहीं. कैश मेमोरी में सेव करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. इससे अनुरोध की अवधि के लिए, नतीजों को कैश मेमोरी में सेव किया जाएगा.
limit नंबर Optional. क्वेरी से मिलने वाले नतीजों की ज़्यादा से ज़्यादा संख्या बदलता है. डिफ़ॉल्ट रूप से, यह संख्या 5 पर सेट होती है.
transaction स्ट्रिंग Optional. Firestore.runTransaction() से मिली वैल्यू. यह किसी लेन-देन में इस्तेमाल की जाने वाली कार्रवाई को मार्क करता है.

उदाहरण

const Firestore = require('Firestore');

const queries = const queries = [['id', '==', '5']];

return Firestore.query('collection', queries, {
  projectId: 'gcp-cloud-project-id',
  limit: 1,
}).then((documents) => documents[0].data.key, () => undefined);

Firestore.runTransaction

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

सिंटैक्स

Firestore.runTransaction(callback[, options]);

पैरामीटर

पैरामीटर टाइप ब्यौरा
callback फ़ंक्शन एक कॉलबैक, जिसे स्ट्रिंग लेन-देन आईडी के साथ शुरू किया जाता है. लेन-देन आईडी को रीड/राइट/क्वेरी एपीआई कॉल में पास किया जा सकता है. इस कॉलबैक फ़ंक्शन को ज़रूर कोई कार्रवाई करनी होगी. फ़ेल होने से पहले, कॉलबैक को तीन बार चलाया जा सकता है.
options object अनुरोध के वैकल्पिक विकल्प. सिर्फ़ projectId विकल्प का इस्तेमाल किया जा सकता है. अनजान विकल्प कुंजियों को अनदेखा कर दिया जाता है. (नीचे दिए गए विकल्प देखें.)

विकल्प

पैरामीटर टाइप ब्यौरा
projectId स्ट्रिंग Optional. Google Cloud Platform प्रोजेक्ट आईडी. अगर इसे शामिल नहीं किया जाता है, तो projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से वापस लाया जाता है. ऐसा तब तक होता है, जब तक प्रोजेक्ट आईडी के लिए अनुमति की सेटिंग access_firestore को * या GOOGLE_CLOUD_PROJECT पर सेट किया जाता है. अगर सर्वर कंटेनर Google Cloud पर चल रहा है, तो GOOGLE_CLOUD_PROJECT को पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट कर दिया जाएगा.

उदाहरण

const Firestore = require('Firestore');

const path = 'collection/document';
const projectId = 'gcp-cloud-project-id';

Firestore.runTransaction((transaction) => {
  const transactionOptions = {
    projectId: projectId,
    transaction: transaction,
  };
  // Must return a promise.
  return Firestore.read(path, transactionOptions).then((result) => {
    const newInputCount = result.data.inputCount + 1;
    const input = {key1: 'value1', inputCount: newInputCount};
    return Firestore.write(path, input, transactionOptions);
  });
}, {
  projectId: projectId
}).then((ids) => {
  data.gtmOnSuccess();
}, data.gtmOnFailure);

गड़बड़ी का उदाहरण

Firestore के हर फ़ंक्शन में गड़बड़ियां उपलब्ध हैं. इन्हें एक ऐसे ऑब्जेक्ट के साथ अस्वीकार कर दिया जाएगा जिसमें reason कुंजी शामिल होगी:

Firestore.read(...).then(onSuccess, (error) => {
  if (error.reason === 'unknown') {
    // Handle the unknown error here.
  }
});

गड़बड़ी की वजहों में Firestore REST API गड़बड़ी के कोड शामिल हो सकते हैं. हालांकि, इनके अलावा और भी वजहें हो सकती हैं.

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

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

उदाहरण

const addMessageListener = require('addMessageListener');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

claimRequest();
addMessageListener('send_pixel', (messageType, message) => {
  // This will be run whenever a tag sends a 'send_pixel' message.
});

const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((event, i) => {
  runContainer(events[i], /* onComplete= */ () => {
    if (events.length === ++eventsCompleted) {
      returnResponse();
    }
  }, /* onStart= */ (bindToEvent) => {
    if (i === 0) {
      bindToEvent(addMessageListener)('send_pixel', (messageType, message) => {
        // This will be called whenever a tag for the first event sends a
        // 'send_pixel' message.
      });
    }
  });
});

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

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

  • मैसेज का ऐसा टाइप जिसमें listen या listen_and_send में से Usage शामिल हो.

hasMessageListener

अगर दिए गए मैसेज टाइप के लिए मैसेज लिसनर जोड़ा गया है, तो यह फ़ंक्शन 'सही' दिखाता है. अगर ऐसा नहीं है, तो 'गलत' दिखाता है.

सिंटैक्स

const hasMessageListener = require('hasMessageListener');

hasMessageListener('send_pixel');

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

कोई नहीं.


sendMessage

यह अनुमति मिलने पर, रजिस्टर किए गए लिसनर को तय किए गए टाइप का मैसेज भेजा जा सकता है. इसका इस्तेमाल, कंटेनर को चलाने वाले क्लाइंट को टैग से मैसेज भेजने के लिए किया जा सकता है.

सिंटैक्स

const sendMessage = require('sendMessage');

sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});

पैरामीटर

पैरामीटर टाइप ब्यौरा
messageType स्ट्रिंग भेजे जाने वाले मैसेज का टाइप. अगर वैल्यू कोई स्ट्रिंग नहीं है, तो उसे स्ट्रिंग में बदल दिया जाएगा.
message object भेजा जाने वाला मैसेज. अगर मैसेज कोई ऑब्जेक्ट नहीं है, तो एपीआई कुछ नहीं करेगा.

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

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

  • मैसेज का ऐसा टाइप जिसमें listen_and_send या send में से Usage शामिल हो.

Object

यह एक ऐसा ऑब्जेक्ट दिखाता है जो Object तरीके उपलब्ध कराता है.

keys() मेथड, स्टैंडर्ड लाइब्रेरी Object.keys() का व्यवहार उपलब्ध कराता है. यह किसी ऑब्जेक्ट की प्रॉपर्टी के नामों का कलेक्शन दिखाता है. यह कलेक्शन उसी क्रम में होता है जिस क्रम में for...in... लूप होता है. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा.

values() तरीका, स्टैंडर्ड लाइब्रेरी Object.values() के व्यवहार को उपलब्ध कराता है. यह किसी ऑब्जेक्ट की प्रॉपर्टी वैल्यू का कलेक्शन दिखाता है. यह कलेक्शन उसी क्रम में होता है जिस क्रम में for...in... लूप होता है. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा.

entries() मेथड, स्टैंडर्ड लाइब्रेरी Object.entries() के व्यवहार को उपलब्ध कराता है. यह किसी ऑब्जेक्ट की प्रॉपर्टी के [key, value] पेयर का कलेक्शन दिखाता है. यह कलेक्शन उसी क्रम में होता है जिस क्रम में for...in... लूप होता है. अगर इनपुट वैल्यू कोई ऑब्जेक्ट नहीं है, तो उसे ऑब्जेक्ट में बदल दिया जाएगा.

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

delete() मेथड, स्टैंडर्ड लाइब्रेरी डिलीट ऑपरेटर का व्यवहार उपलब्ध कराता है. यह ऑब्जेक्ट से दी गई कुंजी को हटा देता है. हालांकि, ऐसा तब तक होता है, जब तक ऑब्जेक्ट फ़्रीज़ न हो. स्टैंडर्ड लाइब्रेरी के डिलीट ऑपरेटर की तरह, यह true दिखाता है, अगर पहली इनपुट वैल्यू (objectInput) एक ऐसा ऑब्जेक्ट है जो फ़्रीज़ नहीं है. भले ही, दूसरी इनपुट वैल्यू (keyToDelete) ऐसी कुंजी तय करती हो जो मौजूद नहीं है. अन्य सभी मामलों में, यह false दिखाता है. हालांकि, यह स्टैंडर्ड लाइब्रेरी के डिलीट ऑपरेटर से इन तरीकों से अलग है:

  • keyToDelete, डॉट से अलग की गई ऐसी स्ट्रिंग नहीं हो सकती जो नेस्ट की गई कुंजी के बारे में बताती हो.
  • delete() का इस्तेमाल, किसी कलेक्शन से एलिमेंट हटाने के लिए नहीं किया जा सकता.
  • delete() का इस्तेमाल, ग्लोबल स्कोप से किसी भी प्रॉपर्टी को हटाने के लिए नहीं किया जा सकता.

सिंटैक्स

Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)

पैरामीटर

Object.keys

पैरामीटर टाइप ब्यौरा
objectInput 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 प्रॉमिस की तरह ही काम करते हैं. हर इंस्टेंस में तीन तरीके होते हैं, जो एक Promise दिखाते हैं. इससे Promise के सेटल होने पर, आगे की कार्रवाई की जा सकती है:

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

उदाहरण

const Promise = require('Promise');
const sendHttpGet = require('sendHttpGet');

return Promise.all(['a', sendHttpGet('https://example.com')])
  .then((results) => {
    // results will equal: ['a', {statusCode: 200, headers: {}, body: ''}]
  });

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

कोई नहीं.

Promise.create

यह एक ऐसा प्रॉमिस बनाता है जो JavaScript प्रॉमिस की तरह काम करता है.

सिंटैक्स

Promise.create(resolver);

पैरामीटर

पैरामीटर टाइप ब्यौरा
resolver फ़ंक्शन एक ऐसा फ़ंक्शन जिसे दो फ़ंक्शन के साथ शुरू किया जाता है -- रिज़ॉल्व और रिजेक्ट. इससे मिलने वाला प्रॉमिस, उससे जुड़े पैरामीटर को शुरू करने पर रिज़ॉल्व या रिजेक्ट हो जाएगा. अगर रिज़ॉल्वर कोई फ़ंक्शन नहीं है, तो गड़बड़ी का मैसेज दिखाता है.

उदाहरण

const Promise = require('Promise');

return Promise.create((resolve, reject) => {
  // Do asynchronous work that eventually calls resolve() or reject()
});

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

कोई नहीं.

एपीआई की जांच करना

ये एपीआई, सैंडबॉक्स किए गए JavaScript टेस्ट के साथ काम करते हैं. इससे Google Tag Manager में कस्टम टेंप्लेट के लिए टेस्ट बनाए जा सकते हैं. इन टेस्ट एपीआई के लिए, require() स्टेटमेंट की ज़रूरत नहीं होती. [कस्टम टेंप्लेट टेस्ट के बारे में ज़्यादा जानें].


assertApi

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

सिंटैक्स

assertApi(apiName)

पैरामीटर

पैरामीटर टाइप ब्यौरा
apiName स्ट्रिंग जांच के लिए एपीआई का नाम; वही स्ट्रिंग जो require() को पास की गई है.

मैचर

  • Subject.wasCalled()
  • Subject.wasNotCalled()
  • Subject.wasCalledWith(...expected)
  • Subject.wasNotCalledWith(...expected)

उदाहरण

assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');

assertThat

assertThat एपीआई को Google की [Truth] लाइब्रेरी के आधार पर बनाया गया है. यह एक ऐसा ऑब्जेक्ट दिखाता है जिसका इस्तेमाल, किसी विषय की वैल्यू के बारे में आसानी से दावे करने के लिए किया जा सकता है. असर्शन फ़ेल होने पर, टेस्ट तुरंत रुक जाएगा और उसे फ़ेल के तौर पर मार्क कर दिया जाएगा. हालांकि, एक टेस्ट में फ़ेल होने से अन्य टेस्ट केस पर कोई असर नहीं पड़ेगा.

सिंटैक्स

assertThat(actual, opt_message)

पैरामीटर

पैरामीटर टाइप ब्यौरा
actual any फ़्लूएंट चेक में इस्तेमाल की जाने वाली वैल्यू.
opt_message स्ट्रिंग अगर दावा पूरा नहीं होता है, तो प्रिंट करने के लिए वैकल्पिक मैसेज.

मैचर

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

Return Value

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

उदाहरण

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