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

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


addEventCallback

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

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

सिंटैक्स

const addEventCallback = require('addEventCallback');

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

पैरामीटर

पैरामीटर टाइप जानकारी
callback फ़ंक्शन इवेंट के आखिर में शुरू करने के लिए फ़ंक्शन.

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

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

क्लाइंट में:

const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

claimRequest();

const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
  runContainer(evt, /* onComplete= */ (bindToEvent) => {
    bindToEvent(addEventCallback)((containerId, eventData) => {
      logToConsole('Event Number: ' + i);
      eventData.tags.forEach((tag) => {
        logToConsole('Tag ID: ' + tag.id);
        logToConsole('Tag Status: ' + tag.status);
        logToConsole('Tag Execution Time: ' + tag.executionTime);
      });
    });
    if (events.length === ++eventsCompleted) {
      returnResponse();
    }
  });
});

टैग में:

const addEventCallback = require('addEventCallback');

addEventCallback((containerId, eventData) => {
  // This will be called at the end of the current event.
});

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

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

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

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

कोई नहीं.


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

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

विकल्प

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

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

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

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

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

getRemoteAddress

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

सिंटैक्स

getRemoteAddress();

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

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

  • हेडर Forwarded और X-Forwarded-For
  • रिमोट आईपी पता

getRequestBody

अनुरोध के मुख्य हिस्से को स्ट्रिंग के तौर पर दिखाता है. अगर यह मौजूद है, तो यह जवाब undefined के तौर पर दिखता है.

सिंटैक्स

getRequestBody();

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

read_request


getRequestHeader

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

उदाहरण

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

सिंटैक्स

getRequestHeader(headerName);

पैरामीटर

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

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

read_request


getRequestMethod

यह विकल्प, अनुरोध का तरीका दिखाता है, जैसे कि स्ट्रिंग के तौर पर 'GET' या 'POST'.

उदाहरण

const getRequestMethod = require('getRequestMethod');

if (getRequestMethod() === 'POST') {
  // Handle the POST request here.
}

सिंटैक्स

getRequestMethod();

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

कोई नहीं.


getRequestPath

यह क्वेरी स्ट्रिंग के बिना अनुरोध का पाथ दिखाता है. उदाहरण के लिए, अगर यूआरएल '/foo?id=123' है, तो यह '/foo' दिखाता है. पाथ से सर्वर कंटेनर यूआरएल प्रीफ़िक्स को अपने-आप हटा देता है. उदाहरण के लिए, अगर सर्वर कंटेनर का यूआरएल https://example.com/analytics है और अनुरोध का पाथ '/analytics/foo' है, तो यह '/foo' दिखाता है.

उदाहरण

const getRequestPath = require('getRequestPath');

const requestPath = getRequestPath();
if (requestPath === '/') {
  // Handle a request for the root path.
}

सिंटैक्स

getRequestPath();

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

read_request


getRequestQueryParameter

नाम वाली क्वेरी स्ट्रिंग पैरामीटर की डिकोड की गई वैल्यू, 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 को प्राथमिकता दें.

ऐसी संख्या दिखाता है जो Unix Epoch के बाद के मौजूदा समय को मिलीसेकंड में दिखाती है, जिसे Date.now() के आधार पर दिखाया जाता है.

सिंटैक्स

getTimestamp();

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

कोई नहीं.


getTimestampMillis

ऐसी संख्या दिखाता है जो Unix Epoch के बाद के मौजूदा समय को मिलीसेकंड में दिखाती है, जिसे Date.now() के आधार पर दिखाया जाता है.

सिंटैक्स

getTimestampMillis();

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

कोई नहीं.


getType

दिए गए मान के प्रकार के बारे में बताने वाली स्ट्रिंग देता है.

इनपुट प्रकार लौटाया गया मान
स्ट्रिंग 'string'
नंबर 'number'
boolean 'boolean'
शून्य 'null'
तय नहीं है 'undefined'
कलेक्शन 'array'
ऑब्जेक्ट 'object'
फ़ंक्शन 'function'

उदाहरण

const getType = require('getType');

const type = getType(value);
if (type === 'string') {
  // Handle string input.
} else if (type === 'number') {
  // Handle numeric input.
} else {
  logToConsole('Unsupported input type: ', type);
}

सिंटैक्स

getType(value);

पैरामीटर

पैरामीटर टाइप जानकारी
value कोई भी इनपुट मान.

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

कोई नहीं.


hmacSha256

SHA-256 के साथ हैश-आधारित मैसेज ऑथेंटिकेशन कोड (HMAC) का इस्तेमाल करके कोड में बदले गए हस्ताक्षर की गणना करता है. इसे कोड में बदलने के लिए, base64url को डिफ़ॉल्ट तौर पर सेट किया जाता है.

इस एपीआई का इस्तेमाल करने के लिए, सर्वर पर SGTM_CREDENTIALS एनवायरमेंट वैरिएबल को नीचे दिए गए फ़ॉर्मैट में, UTF-8 कोड में बदली गई JSON कुंजी वाली फ़ाइल के पाथ पर सेट करें:

{
  "key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
  "key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
  ...
}

ये वैल्यू, base64 कोड में बदली गई एचएमएसी कुंजियां हैं.

उदाहरण

const hmacSha256 = require('hmacSha256');
const toBase64 = require('toBase64');

const header = toBase64('{"alg":"HS256","typ":"JWT"}', {urlEncoding: true});
const claim = toBase64('{"sub":"1234567890","iat":1698164946}', {urlEncoding: true});
const signature = hmacSha256(header + '.' + claim, 'key1');

const jwt = header + "." + claim + '.' + signature;

सिंटैक्स

hmacSha256(data, keyId, options)

पैरामीटर

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

विकल्प

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

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

use_custom_private_keys

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

1.0.0


isRequestMpv1

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

उदाहरण

const isRequestMpv1 = require('isRequestMpv1');

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

सिंटैक्स

isRequestMpv1();

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

कोई नहीं.


isRequestMpv2

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

उदाहरण

const isRequestMpv2 = require('isRequestMpv2');

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

सिंटैक्स

isRequestMpv2();

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

कोई नहीं.


logToConsole

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

ये लॉग, Google Cloud Console में लॉग एक्सप्लोरर में दिखते हैं. इस एपीआई से बनाई गई लॉग एंट्री देखने के लिए, लॉग एक्सप्लोरर से logName =~ "stdout" क्वेरी चलाएं.

उदाहरण

const logToConsole = require('logToConsole');

const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);

सिंटैक्स

logToConsole(argument1[, argument2, ...]);

पैरामीटर

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

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

logging


makeInteger

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

सिंटैक्स

makeInteger(value);

पैरामीटर

पैरामीटर टाइप जानकारी
value किसी भी तरह का वह वैल्यू जिसे बदलना है.

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

कोई नहीं.


makeNumber

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

सिंटैक्स

makeNumber(value);

पैरामीटर

पैरामीटर टाइप जानकारी
value किसी भी तरह का वह वैल्यू जिसे बदलना है.

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

कोई नहीं.


makeString

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

सिंटैक्स

makeString(value);

पैरामीटर

पैरामीटर टाइप जानकारी
value किसी भी तरह का वह वैल्यू जिसे बदलना है.

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

कोई नहीं.


makeTableMap

यह दो कॉलम वाले किसी सामान्य टेबल ऑब्जेक्ट को Map में बदलता है. इसका इस्तेमाल दो कॉलम वाले SIMPLE_TABLE टेंप्लेट फ़ील्ड को ज़्यादा मैनेज किए जा सकने वाले फ़ॉर्मैट में बदलने के लिए किया जाता है.

उदाहरण के लिए, यह फ़ंक्शन किसी टेबल ऑब्जेक्ट को कन्वर्ट कर सकता है:

[
  {'key': 'k1', 'value': 'v1'},
  {'key': 'k2', 'value': 'v2'}
]

मैप में दिखाने के लिए:

{
  'k1': 'v1',
  'k2': 'v2'
}

ऑब्जेक्ट को दिखाता है: की-वैल्यू पेयर में से बदले गए Map को इसमें जोड़ा गया है या null ऐसा नहीं किया गया है.

सिंटैक्स

makeTableMap(tableObj, keyColumnName, valueColumnName);

पैरामीटर

पैरामीटर टाइप जानकारी
tableObj सूची वह टेबल ऑब्जेक्ट जिसे बदलना है. यह मैप की एक सूची है, जहां हर Map टेबल की एक पंक्ति को दिखाता है. पंक्ति के ऑब्जेक्ट में मौजूद हर प्रॉपर्टी का नाम, कॉलम का नाम होता है और प्रॉपर्टी की वैल्यू, पंक्ति की कॉलम की वैल्यू होती है.
keyColumnName स्ट्रिंग उस कॉलम का नाम जिसकी वैल्यू बदली गई Map में कुंजियां होंगी.
valueColumnName स्ट्रिंग उस कॉलम का नाम जिसकी वैल्यू, बदले गए Map में वैल्यू बन जाएंगी.

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

कोई नहीं.


parseUrl

ऐसा ऑब्जेक्ट दिखाता है जिसमें URL ऑब्जेक्ट की तरह, दिए गए यूआरएल के सभी कॉम्पोनेंट शामिल होते हैं.

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

लौटाए गए ऑब्जेक्ट में ये फ़ील्ड होंगे:

{
  href: string,
  origin: string,
  protocol: string,
  username: string,
  password: string,
  host: string,
  hostname: string,
  port: string,
  pathname: string,
  search: string,
  searchParams: Object<string, (string|Array)>,
  hash: string,
}

उदाहरण

const parseUrl = require('parseUrl');

const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');

सिंटैक्स

parseUrl(url);

पैरामीटर

पैरामीटर टाइप जानकारी
url स्ट्रिंग पूरा यूआरएल, जिसे पार्स किया जाएगा.

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

कोई नहीं.


returnResponse

रिस्पॉन्स में बदलाव करने वाले एपीआई का इस्तेमाल करके, अन्य टेंप्लेट की ओर से पहले सेट किए गए रिस्पॉन्स को फ़्लश करता है. इसमें setCookie, setPixelResponse, setResponseBody, setResponseHeader, और setResponseStatus शामिल हैं. डिफ़ॉल्ट तौर पर, एचटीटीपी स्टेटस कोड 200, खाली बॉडी, और कोई हेडर नहीं होता है.

हमारा सुझाव है कि इस एपीआई का इस्तेमाल क्लाइंट टेंप्लेट से किया जाए.

सिंटैक्स

returnResponse();

उदाहरण

runContainer का उदाहरण देखें.

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

return_response


runContainer

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

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

हमारा सुझाव है कि इस एपीआई का इस्तेमाल क्लाइंट टेंप्लेट से किया जाए.

const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

// Runs the container with a simple pageview event and then returns a response.
runContainer({'event_name': 'pageview'}, () => returnResponse());

सिंटैक्स

runContainer(event, onComplete, onStart);

पैरामीटर

पैरामीटर टाइप जानकारी
event object इवेंट पैरामीटर.
onComplete फ़ंक्शन एक कॉलबैक, जिसे सभी टैग का सक्रियण पूरा होने के बाद शुरू किया जाता है.
onStart फ़ंक्शन एक कॉलबैक, जिसे टैग सक्रिय होने से ठीक पहले शुरू किया जाता है.

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

run_container


sendEventToGoogleAnalytics

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

अगर location फ़ील्ड मौजूद है, तो यह location हेडर पर सेट होता है.

उदाहरण

const sendEventToGoogleAnalytics = require('sendEventToGoogleAnalytics');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');

// Sends an event to Google Analytics and returns failure if the request did not
// succeed. Additionally, if the request resulted in a redirect request, the
// code nominates a redirect response to be returned.
sendEventToGoogleAnalytics(event).then((response) => {
  if (response.location) {
    setResponseHeader('location', response.location);
    setResponseStatus(302);
  } else {
    setResponseStatus(200);
  }
  data.gtmOnSuccess();
}, (err) => {
  setResponseStatus(500);
  data.gtmOnFailure();
});

सिंटैक्स

sendEventToGoogleAnalytics(event);

पैरामीटर

पैरामीटर टाइप जानकारी
event object यूनिफ़ाइड स्कीमा फ़ॉर्मैट में इवेंट.

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

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

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

sendHttpGet

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

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

उदाहरण

const sendHttpGet = require('sendHttpGet');

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

सिंटैक्स

sendHttpGet(url[, options]);

पैरामीटर

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

विकल्प

विकल्प टाइप जानकारी
headers स्ट्रिंग अनुरोध के अतिरिक्त हेडर.
timeout नंबर अनुरोध रद्द होने से पहले, मिलीसेकंड में टाइम आउट. डिफ़ॉल्ट तौर पर, यह 15000 पर सेट होती है.
authorization object 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> टैग के तौर पर लोड किया जा सके. यह कमांड प्रोटोकॉल, 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- उम्र, path, secure, और sameSite. (नीचे विकल्प देखें.)
noEncode boolean अगर सही है, तो कुकी की वैल्यू को कोड में नहीं बदला जाएगा. डिफ़ॉल्ट तौर पर, यह false पर सेट होता है.

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

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

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

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

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

  • सुरक्षित: अगर true पर सेट किया जाता है, तो कुकी को सर्वर को सिर्फ़ तब भेजा जाता है, जब https: एंडपॉइंट से अनुरोध किया जाता है.

  • sameSite: यह पक्का करता है कि क्रॉस-ऑरिजिन अनुरोधों के साथ कुकी नहीं भेजी जानी चाहिए. 'strict', 'lax' या 'none' होना चाहिए.

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

set_cookie


setPixelResponse

रिस्पॉन्स के मुख्य हिस्से को 1x1 GIF पर सेट करता है, कॉन्टेंट टाइप हेडर को 'image/gif' पर सेट करता है. कैशिंग हेडर को इस तरह सेट करता है कि उपयोगकर्ता एजेंट, रिस्पॉन्स को कैश मेमोरी में नहीं रख पाएंगे. साथ ही, रिस्पॉन्स का स्टेटस 200 पर सेट कर देते हैं.

ध्यान दें कि क्लाइंट को जवाब वापस भेजने के लिए returnResponse को कॉल किया जाना चाहिए.

सिंटैक्स

setPixelResponse();

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

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

  • headers - इन कुंजियों की अनुमति ज़रूरी है
    • content-type
    • cache-control
    • expires
    • pragma
  • body
  • status

setResponseBody

जवाब के मुख्य हिस्से को तर्क पर सेट करता है.

ध्यान दें कि क्लाइंट को जवाब वापस भेजने के लिए returnResponse को कॉल किया जाना चाहिए.

सिंटैक्स

setResponseBody(body[, encoding]);

पैरामीटर

पैरामीटर टाइप जानकारी
body स्ट्रिंग जवाब के मुख्य भाग के तौर पर सेट की जाने वाली वैल्यू.
encoding स्ट्रिंग रिस्पॉन्स के मुख्य हिस्से की कैरेक्टर एन्कोडिंग (डिफ़ॉल्ट रूप से यह 'utf8' पर सेट होती है). इस्तेमाल की जा सकने वाली वैल्यू में 'ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'latin1', 'binary', और 'hex' शामिल हैं.

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

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

  • body

setResponseHeader

रिस्पॉन्स में एक हेडर सेट करता है, जो रिस्पॉन्स में दिखता है. अगर इस एपीआई का इस्तेमाल करके, इस नाम वाला हेडर (केस-इनसेंसिटिव) पहले सेट किया गया था, तो बाद वाला कॉल, पिछले कॉलर की सेट की गई वैल्यू को ओवरराइट कर देगा या मिटा देगा.

ध्यान दें कि क्लाइंट को जवाब वापस भेजने के लिए returnResponse को कॉल किया जाना चाहिए.

सिंटैक्स

setResponseHeader(name, value);

पैरामीटर

पैरामीटर टाइप जानकारी
name स्ट्रिंग हेडर का नाम. एचटीटीपी हेडर के नाम केस-इनसेंसिटिव होते हैं. इसलिए, हेडर के नाम को अंग्रेज़ी के छोटे अक्षरों में बदल दिया जाएगा.
value string undefined हेडर की वैल्यू. अगर शून्य या तय नहीं है, तो यह दिए गए रिस्पॉन्स से नाम वाला हेडर हटा देता है.

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

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

  • headers

setResponseStatus

दिखाए जाने वाले रिस्पॉन्स का एचटीटीपी स्टेटस कोड सेट करता है.

ध्यान दें कि क्लाइंट को जवाब वापस भेजने के लिए returnResponse को कॉल किया जाना चाहिए.

सिंटैक्स

setResponseStatus(statusCode);

पैरामीटर

पैरामीटर टाइप जानकारी
statusCode नंबर दिखाया जाने वाला एचटीटीपी स्थिति कोड.

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

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

  • status

sha256

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

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

उदाहरण

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

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

उदाहरण

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

const digestBase64 = sha256Sync('inputString');
const digestHex = sha256Sync('inputString', {outputEncoding: 'hex'});
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestBase64));
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestHex));

सिंटैक्स

sha256Sync(input, options = undefined);

पैरामीटर

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

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

कोई नहीं.


templateDataStorage

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

"templateDataStorage" नाम में मौजूद "डेटा" का मतलब यह है कि इस एपीआई का इस्तेमाल करके, सिर्फ़ सादा, नॉन-फ़ंक्शन डेटा टाइप सेव किया जा सकता है. एपीआई में पास किए गए किसी भी फ़ंक्शन या फ़ंक्शन की जानकारी को null के तौर पर सेव किया जाएगा.

सिंटैक्स

const templateDataStorage = require('templateDataStorage');

// Returns a copy of the value stored for the given key, or null if nothing
// is stored with that key.
templateDataStorage.getItemCopy(key);

// Stores a copy of the value for the given key (or removes the data stored
// for the given key if the input value is null).
templateDataStorage.setItemCopy(key, value);

// Removes the value stored for the given key, if present.
templateDataStorage.removeItem(key);

// Deletes all values stored for the current template.
templateDataStorage.clear();

उदाहरण

const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
const setResponseStatus = require('setResponseStatus');
const templateDataStorage = require('templateDataStorage');

// Check to see if the item is in the cache.
const cachedBody = templateDataStorage.getItemCopy(data.key);
if (cachedBody) {
  setResponseBody(cachedBody);
  data.gtmOnSuccess();
  return;
}

sendHttpGet(data.url).then((result) => {
  if (result.statusCode >= 200 && result.statusCode < 300) {
    setResponseBody(result.body);
    templateDataStorage.setItemCopy(data.key, result.body);
    data.gtmOnSuccess();
  } else {
    data.gtmOnFailure();
  }
  setResponseStatus(result.statusCode);
});

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

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 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 और ignoreUnknownValues. अनजान विकल्प कुंजियों को अनदेखा किया जाता है. (नीचे विकल्प देखें.)

पैरामीटर टाइप जानकारी
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.read

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

सिंटैक्स

Firestore.read(path[, options]);

पैरामीटर टाइप जानकारी
path स्ट्रिंग दस्तावेज़ या कलेक्शन का पाथ. '/' से शुरू या खत्म नहीं होना चाहिए.
options object अनुरोध के ज़रूरी नहीं विकल्प. इस्तेमाल किए जा सकने वाले विकल्प ये हैं: projectId, disablecache, और transaction. अनजान विकल्प वाली कुंजियों को अनदेखा किया जाता है. (नीचे विकल्प देखें.)

पैरामीटर टाइप जानकारी
projectId स्ट्रिंग Optional. Google Cloud Platform प्रोजेक्ट का आईडी. अगर इसे हटाया जाता है, तो projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से फिर से लिया जाता है. हालांकि, इसके लिए ज़रूरी है कि प्रोजेक्ट आईडी के लिए access_firestore अनुमति की सेटिंग * या GOOGLE_CLOUD_PROJECT पर सेट हो. अगर Google Cloud पर सर्वर कंटेनर चल रहा है, तो GOOGLE_CLOUD_PROJECT को पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट किया जाएगा.
disableCache boolean Optional. तय करता है कि कैश मेमोरी को बंद करना है या नहीं. कैश मेमोरी में सेव करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. इससे अनुरोध की अवधि के दौरान नतीजे कैश मेमोरी में सेव रहते हैं.
transaction स्ट्रिंग Optional. Firestore.runTransaction() से मिली वैल्यू. यह वैल्यू, ट्रांज़ैक्शन में इस्तेमाल की जाने वाली कार्रवाई को मार्क करती है.

उदाहरण

const Firestore = require('Firestore');

return Firestore.read('collection/document', {
  projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);

Firestore.write

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

सिंटैक्स

Firestore.write(path, input[, options]);

पैरामीटर

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

पैरामीटर टाइप जानकारी
projectId स्ट्रिंग Optional. Google Cloud Platform प्रोजेक्ट का आईडी. अगर इसे हटाया जाता है, तो projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से फिर से लिया जाता है. हालांकि, इसके लिए ज़रूरी है कि प्रोजेक्ट आईडी के लिए access_firestore अनुमति की सेटिंग * या GOOGLE_CLOUD_PROJECT पर सेट हो. अगर Google Cloud पर सर्वर कंटेनर चल रहा है, तो GOOGLE_CLOUD_PROJECT को पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट किया जाएगा.
merge boolean Optional. अगर इसे true पर सेट किया जाता है, तो इनपुट की कुंजियों को दस्तावेज़ में मर्ज करें. ऐसा न करने पर, यह तरीका पूरे दस्तावेज़ को बदल देगा. डिफ़ॉल्ट तौर पर, यह false पर सेट होता है.
transaction स्ट्रिंग Optional. Firestore.runTransaction() से मिली वैल्यू. यह वैल्यू, ट्रांज़ैक्शन में इस्तेमाल की जाने वाली कार्रवाई को मार्क करती है.

उदाहरण

const Firestore = require('Firestore');

const input = {key1: 'value1', key2: 12345};

Firestore.write('collection/document', input, {
  projectId: 'gcp-cloud-project-id',
  merge: true,
}).then((id) => {
  data.gtmOnSuccess();
}, data.gtmOnFailure);

Firestore.query

Firestore.query फ़ंक्शन दिए गए कलेक्शन के लिए क्वेरी करता है और एक ऐसा प्रॉमिस देता है जो Firestore दस्तावेज़ों के कलेक्शन के बारे में बताता है. ये दस्तावेज़, क्वेरी की शर्तों से मेल खाते हैं. Firestore दस्तावेज़ का ऑब्जेक्ट वही है जो Firestore.read में ऊपर दिया गया है. अगर क्वेरी की शर्तों को पूरा करने वाला कोई भी दस्तावेज़ नहीं है, तो दिया गया प्रॉमिस, खाली अरे में बदल जाएगा.

सिंटैक्स

Firestore.query(collection, queryConditions[, options]);

पैरामीटर टाइप जानकारी
collection स्ट्रिंग कलेक्शन का पाथ. '/' से शुरू या खत्म नहीं होना चाहिए.
queryConditions कलेक्शन क्वेरी की शर्तों का कलेक्शन. हर क्वेरी, कैटगरी के तौर पर तीन वैल्यू के साथ आती है: key, operator, और expectedValue. E.g.: [[‘id’, ‘<’, ‘5’], ['state', ‘==’, ‘CA’]].

क्वेरी का नतीजा बनाने के लिए, शर्तों को एक साथ AND जोड़ा गया है. कृपया काम करने वाले क्वेरी ऑपरेटर की सूची के लिए, Firestore के क्वेरी ऑपरेटर देखें.
options object अनुरोध के ज़रूरी नहीं विकल्प. इस्तेमाल किए जा सकने वाले विकल्प ये हैं: projectId, disablecache, limit, और transaction. अनजान विकल्प वाली कुंजियों को अनदेखा किया जाता है. (नीचे विकल्प देखें.)

पैरामीटर टाइप जानकारी
projectId स्ट्रिंग Optional. Google Cloud Platform प्रोजेक्ट का आईडी. अगर इसे हटाया जाता है, तो projectId को एनवायरमेंट वैरिएबल GOOGLE_CLOUD_PROJECT से फिर से लिया जाता है. हालांकि, इसके लिए ज़रूरी है कि प्रोजेक्ट आईडी के लिए access_firestore अनुमति की सेटिंग * या GOOGLE_CLOUD_PROJECT पर सेट हो. अगर Google Cloud पर सर्वर कंटेनर चल रहा है, तो GOOGLE_CLOUD_PROJECT को पहले से ही Google Cloud प्रोजेक्ट के आईडी पर सेट किया जाएगा.
disableCache boolean Optional. तय करता है कि कैश मेमोरी को बंद करना है या नहीं. कैश मेमोरी में सेव करने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. इससे अनुरोध की अवधि के दौरान नतीजे कैश मेमोरी में सेव रहते हैं.
limit नंबर Optional. यह क्वेरी से मिलने वाले नतीजों की ज़्यादा से ज़्यादा संख्या को बदलता है. यह डिफ़ॉल्ट रूप से 5 पर सेट होता है.
transaction स्ट्रिंग Optional. Firestore.runTransaction() से मिली वैल्यू. यह वैल्यू, ट्रांज़ैक्शन में इस्तेमाल की जाने वाली कार्रवाई को मार्क करती है.

उदाहरण

const Firestore = require('Firestore');

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

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

Firestore.runTransaction

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

सिंटैक्स

Firestore.runTransaction(callback[, options]);

पैरामीटर

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

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

उदाहरण

const Firestore = require('Firestore');

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

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

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

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

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

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

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

access_firestore


JSON

JSON फ़ंक्शन उपलब्ध कराने वाला ऑब्जेक्ट दिखाता है.

parse() फ़ंक्शन, स्ट्रिंग में बताई गई वैल्यू या ऑब्जेक्ट को बनाने के लिए JSON स्ट्रिंग को पार्स करता है. अगर मान को पार्स नहीं किया जा सकता (जैसे कि गलत JSON), तो फ़ंक्शन undefined दिखाएगा. अगर इनपुट वैल्यू कोई स्ट्रिंग नहीं है, तो इनपुट को एक स्ट्रिंग की तरह इस्तेमाल किया जाएगा.

stringify() फ़ंक्शन, इनपुट को JSON स्ट्रिंग में बदलता है. अगर वैल्यू को पार्स नहीं किया जा सकता (जैसे कि ऑब्जेक्ट में एक साइकल है), तो यह तरीका undefined रिटर्न करेगा.

उदाहरण

const JSON = require('JSON');

// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');

// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});

सिंटैक्स

JSON.parse(stringInput);
JSON.stringify(value);

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

कोई नहीं.


Math

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

सिंटैक्स

const Math = require('Math');

// Retrieve the absolute value.
const absolute = Math.abs(-3);

// Round the input down to the nearest integer.
const roundedDown = Math.floor(3.6);

// Round the input up to the nearest integer.
const roundedUp = Math.ceil(2.2);

// Round the input to the nearest integer.
const rounded = Math.round(3.1);

// Return the largest argument.
const biggest = Math.max(1, 3);

// Return the smallest argument.
const smallest = Math.min(3, 5);

// Return the first argument raised to the power of the second argument.
const powerful = Math.pow(3, 1);

// Return the square root of the argument.
const unsquared = Math.sqrt(9);

पैरामीटर

मैथ के फ़ंक्शन के पैरामीटर को संख्याओं में बदल दिया जाता है.

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

कोई नहीं.


Messages

कंटेनर के अलग-अलग हिस्सों के बीच मैसेज भेजने की अनुमति देने के लिए, नीचे दिए गए एपीआई एक साथ काम करते हैं.


addMessageListener

एक खास तरह का मैसेज सुनने वाला फ़ंक्शन जोड़ता है. जब sendMessage API (आम तौर पर, किसी टैग से) का इस्तेमाल करके इस तरह का मैसेज भेजा जाता है, तो कॉलबैक को सिंक्रोनस रूप से चलाया जाएगा. कॉलबैक दो पैरामीटर के साथ चलता है:

  1. messageType:string
  2. message:Object

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

सिंटैक्स

const addMessageListener = require('addMessageListener');

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

पैरामीटर

पैरामीटर टाइप जानकारी
messageType स्ट्रिंग सुनने के लिए मैसेज का टाइप. अगर वैल्यू कोई स्ट्रिंग नहीं है, तो उसे बाध्य करके स्ट्रिंग की जाएगी.
callback फ़ंक्शन लागू होने वाले मैसेज टाइप का मैसेज भेजे जाने पर, कॉलबैक चलाया जाता है. अगर कॉलबैक फ़ंक्शन मौजूद नहीं है, तो एपीआई कुछ नहीं करेगा.

उदाहरण

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

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

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

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

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

  • listen या listen_and_send के Usage के साथ एक मैसेज टाइप.

hasMessageListener

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

सिंटैक्स

const hasMessageListener = require('hasMessageListener');

hasMessageListener('send_pixel');

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

कोई नहीं.


sendMessage

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

सिंटैक्स

const sendMessage = require('sendMessage');

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

पैरामीटर

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

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

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

  • listen_and_send या send के Usage के साथ एक मैसेज टाइप.

Object

Object तरीके उपलब्ध कराने वाला ऑब्जेक्ट दिखाता है.

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

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

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

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

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

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

सिंटैक्स

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

पैरामीटर

Object.keys

पैरामीटर टाइप जानकारी
objectInput कोई भी वह ऑब्जेक्ट जिसकी कुंजियों की गिनती करना है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे किसी ऑब्जेक्ट के तौर पर जोड़ा जाएगा.

Object.values

पैरामीटर टाइप जानकारी
objectInput कोई भी वह ऑब्जेक्ट जिसकी वैल्यू की गिनती करनी है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो इसे ऑब्जेक्ट के तौर पर जोड़ा जाएगा.

Object.entries

पैरामीटर टाइप जानकारी
objectInput कोई भी वह ऑब्जेक्ट जिसकी गिनती करने के लिए, कुंजी/वैल्यू पेयर को जोड़ना होता है. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो उसे किसी ऑब्जेक्ट के साथ जोड़ा जाएगा.

Object.freeze

पैरामीटर टाइप जानकारी
objectInput कोई भी फ़्रीज़ किया जाने वाला ऑब्जेक्ट. अगर इनपुट कोई ऑब्जेक्ट नहीं है, तो इसे फ़्रीज़ किए गए ऑब्जेक्ट के रूप में माना जाएगा.

Object.delete

पैरामीटर टाइप जानकारी
objectInput कोई भी वह ऑब्जेक्ट जिसकी कुंजी को मिटाना है.
keyToDelete स्ट्रिंग मिटाने के लिए, टॉप लेवल की कुंजी.

उदाहरण

const Object = require('Object');

// The keys of an object are enumerated in an array.
const keys = Object.keys({foo: 'bar'});

// The values of an object are enumerated in an array.
const values = Object.values({foo: 'bar'});

// The key/value pairs of an object are enumerated in an array.
const entries = Object.entries({foo: 'bar'});

// The input object is frozen.
const frozen = Object.freeze({foo: 'bar'});

// The key is removed from the input object.
const obj1 = {deleteme: 'value'};
Object.delete(obj1, 'deleteme');
// Only a top-level key can be specified as the key to delete.
const obj2 = {nested: {key: 'value'}};
Object.delete(obj2, 'nested.key'); // This has no effect.
Object.delete(obj2.nested, 'key'); // This deletes the nested key.

Promise

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

प्रॉमिस, JavaScript वादों के बराबर काम करते हैं. हर इंस्टेंस में, प्रॉमिस पाने के तीन तरीके होते हैं. इससे प्रॉमिस के सेट होने पर, आगे की कार्रवाई की जा सकती है:

  • .then() - सुलझे और अस्वीकार किए गए, दोनों मामलों को हैंडल करता है. इसके पैरामीटर के तौर पर, दो कॉलबैक होते हैं: पहला सक्सेस केस के लिए और दूसरा फ़ेलियर के लिए.
  • .catch() - सिर्फ़ अस्वीकार किए गए मामलों के लिए काम करता है. पैरामीटर के तौर पर, एक कॉलबैक को इस्तेमाल करता है.
  • .finally() - इससे कोड को चलाने का तरीका पता चलता है, चाहे प्रॉमिस पूरा हुआ हो या अस्वीकार किया गया हो. एक कॉलबैक को पैरामीटर के तौर पर इस्तेमाल करता है, जिसे बिना किसी तर्क के शुरू किया जाता है.

प्रॉमिस दिखाने वाला वैरिएबल, प्रॉमिस की रिज़ॉल्व की गई वैल्यू के बराबर होता है. इसके अलावा, अगर प्रॉमिस अस्वीकार किया जाता है, तो false होता है.

उदाहरण

promise.then((resolvedValue) => {
    // Handles when promise resolves.
  }, (rejectedValue) => {
    // Handles when promise rejects.
  });
promise.catch((rejectedValue) => {
    // Handles when promise rejects.
  });
promise.finally(() => {
    // Runs regardless of whether or not the previous promise resolves or
    // rejects.
  });

Promise.all

ऐसा प्रॉमिस देता है, जो:

  • सभी इनपुट के हल हो जाने पर रिज़ॉल्व हो जाता है या
  • किसी भी इनपुट के अस्वीकार होने पर अस्वीकार किया जाता है

सिंटैक्स

Promise.all(inputs);

पैरामीटर

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

उदाहरण

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

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

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

कोई नहीं.

Promise.create

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

सिंटैक्स

Promise.create(resolver);

पैरामीटर

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

उदाहरण

const Promise = require('Promise');

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

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

कोई नहीं.

टेस्ट एपीआई

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


assertApi

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

सिंटैक्स

assertApi(apiName)

पैरामीटर

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

मिलते-जुलते वीडियो

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

उदाहरण

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

assertThat

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

सिंटैक्स

assertThat(actual, opt_message)

पैरामीटर

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

मिलते-जुलते वीडियो

मैचर जानकारी
isUndefined() दावा करता है कि विषय undefined है.
isDefined() दावा करता है कि विषय undefined नहीं है.
isNull() दावा करता है कि विषय null है.
isNotNull() दावा करता है कि विषय null नहीं है.
isFalse() दावा करता है कि विषय false है.
isTrue() दावा करता है कि विषय true है.
isFalsy() दावा करता है कि विषय झूठा है. गलत वैल्यू undefined, null, false, NaN, 0, और '' (खाली स्ट्रिंग) हैं.
isTruthy() दावा करता है कि विषय सच है. गलत वैल्यू undefined, null, false, NaN, 0, और '' (खाली स्ट्रिंग) हैं.
isNaN() यह दावा करता है कि सब्जेक्ट, वैल्यू NaN है.
isNotNaN() यह दावा करता है कि विषय, NaN के अलावा किसी भी तरह की वैल्यू है.
isInfinity() दावा करता है कि विषय सकारात्मक या नकारात्मक है.
isNotInfinity() यह दावा करता है कि विषय में पॉज़िटिव या नेगेटिव इनफ़िनिटी के अलावा कोई और वैल्यू भी है.
isEqualTo(expected) यह दावा करता है कि सब्जेक्ट, दी गई वैल्यू के बराबर है. यह सिर्फ़ वैल्यू की तुलना है, न कि पहचान की तुलना. ऑब्जेक्ट और कलेक्शन के कॉन्टेंट की तुलना बार-बार की जाती है.
isNotEqualTo(expected) यह दावा करता है कि सब्जेक्ट, दी गई वैल्यू से मेल नहीं खाता. यह सिर्फ़ वैल्यू की तुलना है, न कि पहचान फ़ाइलों की तुलना. ऑब्जेक्ट और कलेक्शन के कॉन्टेंट की तुलना बार-बार की जाती है.
isAnyOf(...expected) यह दावा करता है कि विषय, दी गई वैल्यू में से एक के बराबर है. यह सिर्फ़ वैल्यू की तुलना है, न कि पहचान फ़ाइलों की तुलना. ऑब्जेक्ट और कलेक्शन के कॉन्टेंट की तुलना बार-बार की जाती है.
isNoneOf(...expected) यह दावा करता है कि सब्जेक्ट, दी गई किसी भी वैल्यू से मेल नहीं खाता. यह सिर्फ़ वैल्यू की तुलना है, न कि पहचान फ़ाइलों की तुलना. ऑब्जेक्ट और कलेक्शन के कॉन्टेंट की तुलना बार-बार की जाती है.
isStrictlyEqualTo(expected) यह दावा करता है कि विषय, दी गई वैल्यू के पूरी तरह से (===) के बराबर है.
isNotStrictlyEqualTo(expected) यह दावा करता है कि विषय, दी गई वैल्यू के लिए पूरी तरह से (!==) के बराबर नहीं है.
isGreaterThan(expected) यह दावा करता है कि विषय, क्रम से की गई तुलना में दी गई वैल्यू (>) से ज़्यादा है.
isGreaterThanOrEqualTo(expected) यह दावा करता है कि विषय, क्रम से की गई तुलना में दी गई वैल्यू (>=) से बड़ा या उसके बराबर है.
isLessThan(expected) यह दावा करता है कि विषय, क्रम से की गई तुलना में दी गई वैल्यू (<) से कम है.
isLessThanOrEqualTo(expected) यह दावा करता है कि विषय, क्रम से की गई तुलना में दी गई वैल्यू (<=) से कम या उसके बराबर है.
contains(...expected) यह दावा करता है कि सब्जेक्ट एक कलेक्शन या स्ट्रिंग है. इसमें दी गई सभी वैल्यू, किसी भी क्रम में शामिल होती हैं. यह सिर्फ़ वैल्यू की तुलना है, न कि पहचान फ़ाइल. ऑब्जेक्ट और कलेक्शन के कॉन्टेंट की तुलना बार-बार की जाती है.
doesNotContain(...expected) यह दावा करता है कि सब्जेक्ट एक कलेक्शन या स्ट्रिंग है. इसमें, दी गई कोई भी वैल्यू नहीं है. यह सिर्फ़ वैल्यू की तुलना है, न कि रेफ़रंस तुलना. ऑब्जेक्ट और सरणियों की सामग्री की तुलना बार-बार की जाती है.
containsExactly(...expected) इस बात का दावा करता है कि सब्जेक्ट एक ऐसा कलेक्शन है जिसमें दी गई सभी वैल्यू किसी भी क्रम में शामिल होती हैं. इसमें कोई अन्य वैल्यू नहीं होती. यह सिर्फ़ वैल्यू की तुलना है, न कि पहचान की तुलना. ऑब्जेक्ट और कलेक्शन के कॉन्टेंट की तुलना बार-बार की जाती है.
doesNotContainExactly(...expected) यह दावा करता है कि सब्जेक्ट एक ऐसा कलेक्शन है जिसमें दी गई वैल्यू से किसी भी क्रम में वैल्यू का अलग सेट होता है. यह सिर्फ़ वैल्यू की तुलना है, न कि पहचान फ़ाइलों की तुलना. ऑब्जेक्ट और कलेक्शन के कॉन्टेंट की तुलना बार-बार की जाती है.
hasLength(expected) यह दावा करता है कि सब्जेक्ट, दी गई लंबाई के साथ एक अरे या स्ट्रिंग है. अगर मान कोई अरे या स्ट्रिंग नहीं है, तो दावा हमेशा फ़ेल हो जाता है.
isEmpty() यह दावा करता है कि सब्जेक्ट कोई अरे या स्ट्रिंग है, जो खाली है (लंबाई = 0). अगर वैल्यू कोई कलेक्शन या स्ट्रिंग नहीं है, तो दावा हमेशा फ़ेल हो जाता है.
isNotEmpty() यह दावा करता है कि सब्जेक्ट एक ऐसा कलेक्शन या स्ट्रिंग है जो खाली नहीं है (लंबाई > 0). अगर वैल्यू कोई कलेक्शन या स्ट्रिंग नहीं है, तो दावा हमेशा फ़ेल हो जाता है.
isArray() इस बात का दावा करता है कि सब्जेक्ट का टाइप एक अरे है.
isBoolean() इस बात का दावा करता है कि विषय का टाइप बूलियन है.
isFunction() इस बात का दावा करता है कि सब्जेक्ट का टाइप, फ़ंक्शन है.
isNumber() इस बात का दावा करता है कि विषय का टाइप संख्या है.
isObject() इस बात का दावा करता है कि सब्जेक्ट का टाइप एक ऑब्जेक्ट है.
isString() इस बात का दावा करता है कि विषय का टाइप, स्ट्रिंग है.

उदाहरण

assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();

fail

मौजूदा जांच में तुरंत सफल नहीं हो पाता और दिए गए मैसेज को प्रिंट कर देता है.

सिंटैक्स

fail(opt_message);

पैरामीटर

पैरामीटर टाइप जानकारी
opt_message स्ट्रिंग गड़बड़ी के मैसेज का वैकल्पिक मैसेज.

उदाहरण

fail('This test has failed.');

mock

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

सिंटैक्स

mock(apiName, returnValue);

पैरामीटर

पैरामीटर टाइप जानकारी
apiName स्ट्रिंग मॉक करने के लिए एपीआई का नाम; वही स्ट्रिंग जो require() को भेजी गई है
returnValue कोई भी एपीआई या एपीआई की जगह इस्तेमाल किए जाने वाले फ़ंक्शन के लिए दी जाने वाली वैल्यू. अगर returnValue एक फ़ंक्शन है, तो उस फ़ंक्शन को Sandboxed API की जगह कॉल किया जाता है. अगर returnValue, फ़ंक्शन के अलावा कोई और वैल्यू है, तो Sandboxed API की जगह वह वैल्यू दिखाई जाती है.

उदाहरण

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

runCode

यह टेंप्लेट के लिए कोड, जैसे कि कोड टैब के कॉन्टेंट को, दिए गए इनपुट डेटा ऑब्जेक्ट के साथ मौजूदा टेस्ट एनवायरमेंट में चलाता है.

सिंटैक्स

runCode(data)

पैरामीटर

पैरामीटर टाइप जानकारी
data object जांच में इस्तेमाल किया जाने वाला डेटा ऑब्जेक्ट.

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

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

उदाहरण

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