API เทมเพลตที่กำหนดเอง

API หลัก

API เหล่านี้ทำงานร่วมกับ JavaScript แซนด์บ็อกซ์เพื่อสร้างเทมเพลตที่กำหนดเองใน Google Tag Manager โดยจะเพิ่ม API แต่ละรายการพร้อมกับข้อความ require() เช่น

const myAPI = require('myAPI');

addConsentListener

ลงทะเบียนฟังก์ชัน Listener เพื่อเรียกใช้เมื่อสถานะของประเภทความยินยอมที่ระบุ เปลี่ยนแปลง

ระบบจะเรียกใช้ Listener ที่ระบุทุกครั้งที่สถานะของประเภทความยินยอมที่ระบุเปลี่ยนจาก "ปฏิเสธ" เป็น "ให้ความยินยอม" หรือจาก "ให้ความยินยอม" เป็น "ปฏิเสธ" ระบบจะถือว่าประเภทความยินยอมที่ไม่มีสถานะเป็น "ได้รับความยินยอมแล้ว" ดังนั้นระบบจะไม่เรียกใช้ Listener หากมีการอัปเดตประเภทความยินยอมที่ไม่ได้ตั้งค่าเป็น "ได้รับความยินยอมแล้ว" ฟังก์ชัน Listener จะมีหน้าที่ ตรวจสอบว่าโค้ดทำงานตามจำนวนครั้งที่เหมาะสม

ตัวอย่างเช่น

const isConsentGranted = require('isConsentGranted');
const addConsentListener = require('addConsentListener');

if (!isConsentGranted('ad_storage')) {
  let wasCalled = false;
  addConsentListener('ad_storage', (consentType, granted) => {
    if (wasCalled) return;
    wasCalled = true;

    const cookies = getMyCookies();
    sendFullPixel(cookies);
  });
}

ไวยากรณ์

addConsentListener(consentType, listener)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
consentType สตริง ประเภทความยินยอมที่จะใช้ฟังการเปลี่ยนแปลงสถานะ
listener ฟังก์ชัน ฟังก์ชันที่จะเรียกใช้เมื่อสถานะของประเภทความยินยอมที่ระบุ เปลี่ยนแปลง

เมื่อเรียกใช้ Listener ระบบจะส่งประเภทความยินยอมที่กำลังเปลี่ยนแปลงและค่าใหม่ของประเภทความยินยอมนั้น

พารามิเตอร์ ประเภท คำอธิบาย
consentType สตริง ประเภทความยินยอมที่จะเปลี่ยนแปลง
granted บูลีน บูลีนที่เป็นจริงหากมีการเปลี่ยนประเภทความยินยอมที่ระบุ เป็นได้รับความยินยอมแล้ว

สิทธิ์ที่เชื่อมโยง

สิทธิ์ access_consent ที่มีสิทธิ์เข้าถึงแบบอ่านสำหรับประเภทความยินยอม


addEventCallback

API addEventCallback ช่วยให้คุณลงทะเบียนฟังก์ชันเรียกกลับที่จะ เรียกใช้เมื่อเหตุการณ์สิ้นสุด ระบบจะเรียกใช้การเรียกกลับเมื่อแท็กทั้งหมดสำหรับเหตุการณ์ทำงานเสร็จ หรือหากถึงการหมดเวลาของเหตุการณ์ในหน้า ระบบจะส่งค่า 2 ค่าไปยังฟังก์ชันเรียกกลับ ได้แก่ รหัสของคอนเทนเนอร์ที่เรียกใช้ฟังก์ชัน และออบเจ็กต์ที่มีข้อมูลเกี่ยวกับเหตุการณ์

ไวยากรณ์

addEventCallback(callback)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
callback ฟังก์ชัน ฟังก์ชันที่จะเรียกใช้เมื่อสิ้นสุดเหตุการณ์

ออบเจ็กต์ eventData มีข้อมูลต่อไปนี้

ชื่อคีย์ ประเภท คำอธิบาย
tags อาร์เรย์ อาร์เรย์ของออบเจ็กต์ข้อมูลแท็ก แท็กทุกแท็กที่ทริกเกอร์ระหว่างเหตุการณ์ จะมีรายการในอาร์เรย์นี้ ออบเจ็กต์ข้อมูลแท็กประกอบด้วยรหัสของแท็ก (id) สถานะการดำเนินการ (status) และเวลาดำเนินการ (executionTime) นอกจากนี้ ข้อมูลแท็กยังมีข้อมูลเมตาแท็กเพิ่มเติมที่กำหนดค่าไว้ในแท็กด้วย

ตัวอย่าง

addEventCallback(function(ctid, eventData) {
  logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});

สิทธิ์ที่เชื่อมโยง

read_event_metadata


aliasInWindow

aliasInWindow API ช่วยให้คุณสร้างนามแฝงได้ (เช่น window.foo = window.bar) ซึ่งจะช่วยรองรับแท็กบางรายการที่ต้องใช้นามแฝง กำหนดค่าในออบเจ็กต์ window ที่พบใน fromPath ให้กับคีย์ในออบเจ็กต์ window ที่ toPath แสดงผล true หากสำเร็จ หรือ false หากไม่สำเร็จ

ไวยากรณ์

aliasInWindow(toPath, fromPath)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
toPath สตริง เส้นทางที่คั่นด้วยจุดไปยังออบเจ็กต์ window ที่ควรคัดลอกค่า ไป คอมโพเนนต์ทั้งหมดในเส้นทางจนถึงคอมโพเนนต์สุดท้าย ต้องมีอยู่ในออบเจ็กต์ window อยู่แล้ว
fromPath สตริง เส้นทางที่คั่นด้วยจุดไปยัง window ค่าที่จะคัดลอก หากไม่มีค่า การดำเนินการจะล้มเหลว

ตัวอย่าง

aliasInWindow('foo.bar', 'baz.qux')

สิทธิ์ที่เชื่อมโยง

access_globals ต้องใช้กับทั้ง toPath และ fromPath โดย toPath ต้องมีสิทธิ์การเขียน ส่วน fromPath ต้องมีสิทธิ์การอ่าน


callInWindow

ช่วยให้คุณเรียกใช้ฟังก์ชันจากเส้นทางที่อยู่นอกออบเจ็กต์ window ได้ในลักษณะที่ควบคุมด้วยนโยบาย เรียกใช้ฟังก์ชันที่เส้นทางที่ระบุใน window โดยมีอาร์กิวเมนต์ที่ระบุ และแสดงผลค่า หากไม่สามารถแมปประเภทการคืนค่ากับ ประเภทที่รองรับใน JavaScript ที่อยู่ในแซนด์บ็อกซ์ได้โดยตรง ระบบจะแสดงผล undefined ประเภทที่รองรับใน JavaScript ที่อยู่ในแซนด์บ็อกซ์มี 8 ประเภท ได้แก่ null, undefined, boolean, number, string, Array, Object และ function หากไม่มีเส้นทางที่ระบุ หรือไม่ได้อ้างอิงฟังก์ชัน ระบบจะแสดงผล undefined

ไวยากรณ์

callInWindow(pathToFunction, argument [, argument2,... argumentN])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
pathToFunction สตริง เส้นทางที่คั่นด้วยจุดไปยังฟังก์ชันใน window เพื่อ เรียกใช้
args * อาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชัน

สิทธิ์ที่เชื่อมโยง

access_globals โดยเปิดใช้สิทธิ์ execute


callLater

กำหนดเวลาการเรียกฟังก์ชันให้เกิดขึ้นแบบไม่พร้อมกัน ระบบจะเรียกใช้ฟังก์ชัน หลังจากที่โค้ดปัจจุบันแสดงผล ซึ่งเทียบเท่ากับ setTimeout(<function>, 0)

ไวยากรณ์

callLater(function)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
function ฟังก์ชัน ฟังก์ชันที่จะเรียกใช้

copyFromDataLayer

แสดงผลค่าที่กําหนดให้กับคีย์ที่ระบุในชั้นข้อมูลในขณะนี้ ค่าที่พบในคีย์ที่ระบุหากเป็นประเภทพื้นฐาน ฟังก์ชัน หรือออบเจ็กต์ ตามตัวอักษร หรือ undefined ในกรณีอื่นๆ

ไวยากรณ์

copyFromDataLayer(key[, dataLayerVersion])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
key สตริง คีย์ในรูปแบบ "a.b.c"
dataLayerVersion number เวอร์ชันชั้นข้อมูลที่ไม่บังคับ ค่าเริ่มต้นคือ 2 ขอแนะนำเป็นอย่างยิ่งว่าไม่ควร ใช้ค่า 1

สิทธิ์ที่เชื่อมโยง

read_data_layer


copyFromWindow

คัดลอกตัวแปรจากออบเจ็กต์ window หากค่าใน window แมปกับประเภทที่รองรับใน JavaScript ที่แซนด์บ็อกซ์โดยตรงไม่ได้ ระบบจะแสดง undefined ประเภททั้ง 8 ที่รองรับใน JavaScript ที่แซนด์บ็อกซ์ ได้แก่ null, undefined, boolean, number, string, Array, Object และ function แสดงผลค่าที่ดึงข้อมูล (และบังคับ)

ไวยากรณ์

copyFromWindow(key)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
key สตริง คีย์ใน window เพื่อคัดลอกค่า

สิทธิ์ที่เชื่อมโยง

access_globals


createArgumentsQueue

สร้างคิวที่ป้อนข้อมูลด้วยออบเจ็กต์อาร์กิวเมนต์ เพื่อรองรับโซลูชันแท็ก ที่ต้องใช้

สร้างฟังก์ชันในขอบเขตส่วนกลาง (เช่น window) โดยใช้อาร์กิวเมนต์ fnKey (มีความหมายเหมือนกับ createQueue) หลังจากสร้างฟังก์ชันแล้ว API นี้จะ สร้างอาร์เรย์ใน window (หากยังไม่มี) โดยใช้อาร์กิวเมนต์ arrayKey

เมื่อมีการเรียกใช้ฟังก์ชันที่สร้างขึ้นภายใต้ fnKey ฟังก์ชันจะส่งอาร์กิวเมนต์ ออบเจ็กต์ไปยังอาร์เรย์ที่สร้างขึ้นภายใต้ arrayKey ค่าที่ API แสดงผลคือฟังก์ชันที่สร้างขึ้นภายใต้ fnKey

ฟังก์ชันนี้ต้องมีการตั้งค่าการอ่านและการเขียนสำหรับ fnKey และ arrayKey ในสิทธิ์ access_globals

ตัวอย่างเช่น

const gtag = createArgumentsQueue('gtag', 'dataLayer');
gtag('set', {'currency': 'USD'});

ไวยากรณ์

createArgumentsQueue(fnKey, arrayKey)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
fnKey สตริง เส้นทางใน window ที่ตั้งค่าฟังก์ชัน หากยังไม่มี อาร์กิวเมนต์นี้รองรับรูปแบบการอ้างอิงแบบจุดมาตรฐาน หากไม่มีเส้นทางของคีย์ ระบบจะส่งข้อยกเว้น กล่าวคือ หาก fnKey เป็น 'one.two' ระบบจะส่งข้อยกเว้น
arrayKey สตริง เส้นทางใน window ที่ตั้งค่าอาร์เรย์ หากยังไม่มี อาร์กิวเมนต์นี้รองรับรูปแบบการอ้างอิงแบบจุดมาตรฐาน หากไม่มีเส้นทางของคีย์ ระบบจะส่งข้อยกเว้น กล่าวคือ หาก arrayKey เป็น 'one.two' และไม่มี ออบเจ็กต์ส่วนกลางชื่อ 'one' ระบบจะแสดง ข้อยกเว้น

สิทธิ์ที่เชื่อมโยง

access_globals


createQueue

สร้างอาร์เรย์ใน window (หากยังไม่มี) และแสดงผลฟังก์ชันที่จะส่งค่าไปยังอาร์เรย์นั้น

ฟังก์ชันนี้ต้องมีการตั้งค่าการอ่านและการเขียนสำหรับ arrayKey ในสิทธิ์ access_globals

ตัวอย่างเช่น

const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});

ไวยากรณ์

createQueue(arrayKey)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
arrayKey สตริง คีย์ใน window ที่ตั้งค่าอาร์เรย์ หากยังไม่มี อาร์กิวเมนต์นี้รองรับรูปแบบการอ้างอิงแบบจุดมาตรฐาน หากไม่มีเส้นทางของคีย์ ระบบจะส่งข้อยกเว้น เช่น หาก arrayKey เป็น 'one.two' และไม่มี ออบเจ็กต์ส่วนกลางชื่อ 'one' ระบบจะแสดง ข้อยกเว้น

สิทธิ์ที่เชื่อมโยง

access_globals


decodeUri

ถอดรหัสอักขระที่เข้ารหัสใน URI ที่ระบุ แสดงผลสตริงที่ แสดง URI ที่ถอดรหัสแล้ว แสดงผล undefined เมื่อได้รับอินพุตที่ไม่ถูกต้อง

ตัวอย่างเช่น

const decode = require('decodeUri');

const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
  // ...
}

ไวยากรณ์

decodeUri(encoded_uri)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
encoded_uri สตริง URI ที่เข้ารหัสโดย encodeUri() หรือโดยวิธีอื่นๆ

สิทธิ์ที่เชื่อมโยง

ไม่มี


decodeUriComponent

ถอดรหัสอักขระที่เข้ารหัสในคอมโพเนนต์ URI ที่ระบุ แสดงผลสตริงที่แสดงถึงคอมโพเนนต์ URI ที่ถอดรหัสแล้ว แสดงผล undefined เมื่อ ระบุอินพุตที่ไม่ถูกต้อง

ตัวอย่างเช่น

const decode = require('decodeUriComponent');

const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
  // ...
}

ไวยากรณ์

decodeUriComponent(encoded_uri_component)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
encoded_uri_component สตริง คอมโพเนนต์ URI ที่เข้ารหัสโดย encodeUriComponent() หรือโดยวิธีอื่นๆ

สิทธิ์ที่เชื่อมโยง

ไม่มี


encodeUri

แสดงผล Uniform Resource Identifier (URI) ที่เข้ารหัสโดยหลีกเลี่ยงอักขระพิเศษ แสดงผลสตริงที่แสดงสตริงที่ระบุซึ่งเข้ารหัสเป็น URI แสดงผล undefined เมื่อได้รับอินพุตที่ไม่ถูกต้อง (อักขระแทนตัวเดี่ยว)

ตัวอย่างเช่น

sendPixel('https://www.example.com/' + encodeUri(pathInput));

ไวยากรณ์

encodeUri(uri)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
uri สตริง URI แบบเต็ม

สิทธิ์ที่เชื่อมโยง

ไม่มี


encodeUriComponent

แสดงผล Uniform Resource Identifier (URI) ที่เข้ารหัสโดยหลีกเลี่ยงอักขระพิเศษ แสดงผลสตริงที่แสดงสตริงที่ระบุซึ่งเข้ารหัสเป็น URI แสดงผล undefined เมื่อได้รับอินพุตที่ไม่ถูกต้อง (อักขระแทนตัวเดี่ยว)

ตัวอย่างเช่น

sendPixel('https://www.example.com/?' + encodeUriComponent(queryInput));

ไวยากรณ์

encodeUriComponent(str)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
str สตริง คอมโพเนนต์ของ URI

สิทธิ์ที่เชื่อมโยง

ไม่มี


fromBase64

fromBase64 API ช่วยให้คุณถอดรหัสสตริงจากรูปแบบ base64 ได้ แสดงผล undefined เมื่อได้รับอินพุตที่ไม่ถูกต้อง

ไวยากรณ์

fromBase64(base64EncodedString)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
base64EncodedString สตริง สตริงที่เข้ารหัส Base64

ตัวอย่าง

const fromBase64 = require('fromBase64');

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

สิทธิ์ที่เชื่อมโยง

ไม่มี


generateRandom

แสดงผลตัวเลข (จำนวนเต็ม) แบบสุ่มภายในช่วงที่กำหนด

ไวยากรณ์

generateRandom(min, max)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
min number ค่าต่ำสุดที่เป็นไปได้ของจำนวนเต็มที่แสดงผล
max number ค่าสูงสุดที่เป็นไปได้ของจำนวนเต็มที่แสดงผล

สิทธิ์ที่เชื่อมโยง

ไม่มี


getContainerVersion

แสดงผลออบเจ็กต์ที่มีข้อมูลเกี่ยวกับคอนเทนเนอร์ปัจจุบัน ออบเจ็กต์ที่ส่งคืน มีฟิลด์ต่อไปนี้

{
  containerId: string,
  debugMode: boolean,
  environmentName: string,
  environmentMode: boolean,
  previewMode: boolean,
  version: string,
}

ตัวอย่าง

const getContainerVersion = require('getContainerVersion');
const sendPixel = require('sendPixel');

if (query('read_container_data')) {
  const cv = getContainerVersion();

  const pixelUrl = 'https://pixel.com/' +
    '?version=' + cv.version +
    '&envName=' + cv.environmentName +
    '&ctid=' + cv.containerId +
    '&debugMode=' + cv.debugMode +
    '&previewMode=' + cv.previewMode;
  if (query('send_pixel', pixelUrl)) {
    sendPixel(pixelUrl);
  }
}

ไวยากรณ์

getContainerVersion();

สิทธิ์ที่เชื่อมโยง

read_container_data


getCookieValues

แสดงผลค่าของคุกกี้ทั้งหมดที่มีชื่อที่ระบุ

ไวยากรณ์

getCookieValues(name[, decode])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
name สตริง ชื่อของคุกกี้
decode บูลีน ควบคุมว่าจะถอดรหัสค่าคุกกี้ด้วย JavaScript decodeURIComponent() หรือไม่ ค่าเริ่มต้นคือ true

สิทธิ์ที่เชื่อมโยง

get_cookies


getQueryParameters

แสดงพารามิเตอร์แรกหรือทั้งหมดสำหรับ queryKey ของ URL ปัจจุบัน แสดงผลค่าแรกจาก queryKey หรืออาร์เรย์ของค่าจาก queryKey

ไวยากรณ์

getQueryParameters(queryKey[, retrieveAll])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
queryKey สตริง คีย์ที่จะอ่านจากพารามิเตอร์การค้นหา
retrieveAll บูลีน ดูว่าจะดึงค่าทั้งหมดหรือไม่

ตัวอย่างเช่น หาก URL ปัจจุบันคือ https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo

  • getQueryParameters('var') == 'foo'
  • getQueryParameters('var', false) == 'foo'
  • getQueryParameters('var', null) == 'foo'
  • getQueryParameters('var', true) == ['foo', 'foo2', 'foo']

สิทธิ์ที่เชื่อมโยง

get_url ต้องอนุญาตคอมโพเนนต์ query และต้องระบุ queryKey ใน คีย์การค้นหาที่อนุญาต (หรืออนุญาตคีย์การค้นหาใดก็ได้)


getReferrerQueryParameters

getReferrerQueryParameters API ทำงานในลักษณะเดียวกับ getQueryParameters แต่จะทำงานกับผู้เข้าชมแทนที่จะเป็น URL ปัจจุบัน แสดงผลพารามิเตอร์แรกหรือพารามิเตอร์ทั้งหมดสำหรับ queryKey ของผู้แนะนำที่ระบุ แสดงผลค่าแรกจาก queryKey หรืออาร์เรย์ของค่าจาก queryKey

ไวยากรณ์

getReferrerQueryParameters(queryKey[, retrieveAll])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
queryKey สตริง คีย์ที่จะอ่านจากพารามิเตอร์การค้นหา
retrieveAll บูลีน ดูว่าจะดึงค่าทั้งหมดหรือไม่

ตัวอย่างเช่น หาก URL ที่มาคือ https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo จะเกิดสิ่งต่อไปนี้

  • getReferrerQueryParameters('var') == 'foo'
  • getReferrerQueryParameters('var', false) == 'foo'
  • getReferrerQueryParameters('var', null) == 'foo'
  • getReferrerQueryParameters('var', true) == ['foo', 'foo2', 'foo']

สิทธิ์ที่เชื่อมโยง

get_referrer ต้องอนุญาตคอมโพเนนต์ query และต้องระบุ queryKey ในคีย์การค้นหาที่อนุญาต (หรืออนุญาตคีย์การค้นหาใดก็ได้)


getReferrerUrl

เมื่อระบุประเภทคอมโพเนนต์แล้ว API จะอ่านออบเจ็กต์เอกสารสำหรับผู้เข้าชมที่มาและ แสดงผลสตริงที่แสดงส่วนหนึ่งของผู้เข้าชมที่มา หากไม่ได้ระบุคอมโพเนนต์ ระบบจะแสดงผล URL ของผู้เข้าชมทั้งหมด

ไวยากรณ์

getReferrerUrl([component])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
component สตริง คอมโพเนนต์ที่จะแสดงจาก URL อาจมีสถานะใดสถานะหนึ่งดังต่อไปนี้ protocol, host, port path, query, extension หาก component เป็น undefined, null หรือไม่ตรงกับคอมโพเนนต์ใดคอมโพเนนต์หนึ่ง URL ทั้งหมดจะแสดง

สิทธิ์ที่เชื่อมโยง

get_referrer ต้องอนุญาตคอมโพเนนต์ query และต้องระบุ queryKey ในคีย์การค้นหาที่อนุญาต (หรืออนุญาตคีย์การค้นหาใดก็ได้)


getTimestamp

เลิกใช้งานแล้ว แนะนำให้ใช้ getTimestampMillis

แสดงผลตัวเลขที่แสดงเวลาปัจจุบันเป็นมิลลิวินาทีตั้งแต่ Unix epoch ตามที่ Date.now() แสดงผล

ไวยากรณ์

getTimestamp();

สิทธิ์ที่เชื่อมโยง

ไม่มี


getTimestampMillis

แสดงผลตัวเลขที่แสดงเวลาปัจจุบันเป็นมิลลิวินาทีตั้งแต่ Unix epoch ตามที่ Date.now() แสดงผล

ไวยากรณ์

getTimestampMillis();

สิทธิ์ที่เชื่อมโยง

ไม่มี


getType

แสดงผลสตริงที่อธิบายประเภทของค่าที่ระบุ getType แตกต่างจาก typeof ตรงที่สามารถแยกความแตกต่างระหว่าง array กับ object ได้

ไวยากรณ์

getType(data.someField)

หมายเหตุ

ตารางต่อไปนี้แสดงสตริงที่ส่งคืนสำหรับค่าอินพุตแต่ละค่า

ค่าอินพุต ผลลัพธ์
undefined 'undefined'
null 'null'
true 'boolean'
12 'number'
'string' 'string'
{ a: 3 } 'object'
[ 1, 3 ] 'array'
(x) => x + 1 'function'

สิทธิ์ที่เชื่อมโยง

ไม่มี


getUrl

แสดงผลสตริงที่แสดงถึง URL ปัจจุบันทั้งหมดหรือบางส่วน โดยพิจารณาจาก ประเภทคอมโพเนนต์และพารามิเตอร์การกำหนดค่าบางอย่าง

ไวยากรณ์

getUrl(component)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
component สตริง คอมโพเนนต์ที่จะแสดงจาก URL ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้ protocol, host, port path, query, extension fragment หากคอมโพเนนต์เป็น undefined null หรือไม่ตรงกับคอมโพเนนต์ใดคอมโพเนนต์หนึ่ง ระบบจะแสดงค่า href ทั้งหมด

สิทธิ์ที่เชื่อมโยง

get_url


gtagSet

พุชคำสั่ง gtag set ไปยังชั้นข้อมูลเพื่อประมวลผลโดยเร็วที่สุด หลังจากที่เหตุการณ์ปัจจุบันและแท็กที่ทริกเกอร์เสร็จสิ้น การประมวลผล (หรือถึงการหมดเวลาการประมวลผลแท็ก) การอัปเดตจะได้รับการประมวลผลในคอนเทนเนอร์นี้ก่อนรายการที่อยู่ในคิวในคิวของ Data Layer

เช่น หากเรียกใช้โดยแท็กที่เริ่มทํางานในการเริ่มต้นขอความยินยอม ระบบจะใช้การอัปเดตก่อนที่จะประมวลผลเหตุการณ์การเริ่มต้น ตัวอย่าง เช่น ตั้งค่า ads_data_redaction เป็น true หรือ false หรือ url_passthrough ตั้งค่าเป็น true หรือ false

ตัวอย่างเช่น

const gtagSet = require('gtagSet');

gtagSet({
  'ads_data_redaction': true,
  'url_passthrough': true,
});

ไวยากรณ์

gtagSet(object)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
Object ออบเจ็กต์ ออบเจ็กต์ที่อัปเดตสถานะส่วนกลางสำหรับพร็อพเพอร์ตี้ที่มีอยู่

สิทธิ์ที่เชื่อมโยง

write_data_layer จะตรวจสอบสิทธิ์การเขียนของ dataLayer สำหรับคีย์ทั้งหมด ที่ระบุ หากอินพุตไปยัง gtagSet เป็นออบเจ็กต์ธรรมดา API จะตรวจสอบ สิทธิ์เขียนไปยังคีย์ที่ทำให้แบนทั้งหมดภายในออบเจ็กต์นั้น เช่น สำหรับ gtagSet({foo: {bar: 'baz'}}) API จะตรวจสอบสิทธิ์เขียน ไปยัง foo.bar

หากอินพุตไปยัง gtagSet เป็นคีย์และค่าออบเจ็กต์ที่ไม่ใช่ข้อความธรรมดา API จะ ตรวจสอบสิทธิ์เขียนไปยังคีย์นั้น เช่น สำหรับ gtagSet('abc', true) API จะตรวจสอบสิทธิ์เขียนไปยัง 'abc'

โปรดทราบว่าหากมีวงจรในออบเจ็กต์อินพุต ระบบจะตรวจสอบเฉพาะคีย์ก่อนที่จะไปถึงออบเจ็กต์เดียวกัน


injectHiddenIframe

เพิ่ม iframe ที่ซ่อนอยู่ลงในหน้าเว็บ

Callback จะได้รับเป็นอินสแตนซ์ฟังก์ชันและจะรวมอยู่ในฟังก์ชัน JavaScript ที่เรียกผ่านไปยังฟังก์ชันเหล่านั้น

ไวยากรณ์

injectHiddenIframe(url, onSuccess)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
url สตริง URL ที่จะใช้เป็นค่าของแอตทริบิวต์ src ของ iframe
onSuccess ฟังก์ชัน เรียกใช้เมื่อเฟรมโหลดสำเร็จ

สิทธิ์ที่เชื่อมโยง

inject_hidden_iframe


injectScript

เพิ่มแท็กสคริปต์ลงในหน้าเว็บเพื่อโหลด URL ที่ระบุแบบไม่พร้อมกัน Callback จะได้รับเป็นอินสแตนซ์ฟังก์ชันและจะรวมอยู่ในฟังก์ชัน JavaScript ที่เรียกผ่านไปยังฟังก์ชันเหล่านั้น

ไวยากรณ์

injectScript(url, onSuccess, onFailure[, cacheToken])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
url สตริง ที่อยู่ของสคริปต์ที่จะแทรก
onSuccess ฟังก์ชัน เรียกใช้เมื่อโหลดสคริปต์สำเร็จ
onFailure ฟังก์ชัน เรียกใช้เมื่อโหลดสคริปต์ไม่สำเร็จ
cacheToken สตริง สตริงที่ไม่บังคับซึ่งใช้เพื่อระบุว่าควรแคช URL ที่ระบุ หากระบุค่านี้ ระบบจะสร้างองค์ประกอบสคริปต์เพียงรายการเดียวเพื่อขอ JavaScript การพยายามโหลดเพิ่มเติมจะส่งผลให้ ระบบจัดคิวเมธอด onSuccess และ onFailure ที่ระบุ จนกว่าสคริปต์จะโหลด

สิทธิ์ที่เชื่อมโยง

inject_script


isConsentGranted

แสดงผลเป็น "จริง" หากได้รับความยินยอมประเภทที่ระบุ

ระบบจะถือว่าได้รับความยินยอมสำหรับประเภทความยินยอมหนึ่งๆ หากมีการตั้งค่าประเภทความยินยอมเป็น "ได้รับความยินยอมแล้ว" หรือไม่ได้ตั้งค่าเลย หากตั้งค่าประเภทความยินยอมเป็นค่าอื่น ระบบจะถือว่าไม่ได้รับความยินยอม

อินเทอร์เฟซผู้ใช้ Tag Manager สำหรับการตั้งค่าแท็กจะมีตัวเลือกให้เรียกใช้เสมอ หากแท็กที่เปิด "เริ่มทำงานเสมอ" ใช้ API นี้ ระบบจะถือว่าได้รับความยินยอมและจะแสดงผล true ไม่ว่าสถานะความยินยอมที่แท้จริงจะเป็นอย่างไรก็ตาม

ตัวอย่างเช่น

const isConsentGranted = require('isConsentGranted');

if (isConsentGranted('ad_storage')) {
  sendFullPixel();
} else {
  sendPixelWithoutCookies();
}

ไวยากรณ์

isConsentGranted(consentType)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
consentType สตริง ประเภทความยินยอมที่จะตรวจสอบสถานะ

สิทธิ์ที่เชื่อมโยง

สิทธิ์ access_consent ที่มีสิทธิ์เข้าถึงแบบอ่านสำหรับประเภทความยินยอม


JSON

แสดงผลออบเจ็กต์ที่มีฟังก์ชัน JSON

parse() ฟังก์ชันจะแยกวิเคราะห์สตริง JSON เพื่อสร้างค่าหรือออบเจ็กต์ ที่อธิบายโดยสตริง หากแยกวิเคราะห์ค่าไม่ได้ (เช่น JSON ที่มีรูปแบบไม่ถูกต้อง) ฟังก์ชันจะแสดงผล undefined หากค่าอินพุตไม่ใช่สตริง ระบบจะบังคับให้ อินพุตเป็นสตริง

stringify() ฟังก์ชันจะแปลงอินพุตเป็นสตริง JSON หากแยกวิเคราะห์ค่าไม่ได้ (เช่น ออบเจ็กต์มีวงจร) เมธอดจะแสดงผล undefined

ไวยากรณ์

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

พารามิเตอร์

JSON.parse

พารามิเตอร์ ประเภท คำอธิบาย
stringInput any ค่าที่จะแปลง หากค่าไม่ใช่สตริง ระบบจะบังคับให้ข้อมูลนำเข้าเป็นสตริง

JSON.stringify

พารามิเตอร์ ประเภท คำอธิบาย
value any ค่าที่จะแปลง

ตัวอย่าง

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

localStorage

แสดงผลออบเจ็กต์ที่มีเมธอดสำหรับการเข้าถึงที่เก็บข้อมูลในเครื่อง

ไวยากรณ์

const localStorage = require('localStorage');

// Requires read access for the key. Returns null if the key does not exist.
localStorage.getItem(key);

// Requires write access for the key. Returns true if successful.
localStorage.setItem(key, value);

// Requires write access for the key.
localStorage.removeItem(key);

สิทธิ์ที่เชื่อมโยง

access_local_storage

ตัวอย่าง

const localStorage = require('localStorage');
if (localStorage) {
  const value = localStorage.getItem('my_key');
  if (value) {
    const success = localStorage.setItem('my_key', 'new_value');
    if (success) {
      localStorage.removeItem('my_key');
    }
  }
}

logToConsole

บันทึกอาร์กิวเมนต์ไปยังคอนโซลเบราว์เซอร์

ไวยากรณ์

logToConsole(obj1 [, obj2,... objN])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
obj1 [, obj2,... objN] any อาร์กิวเมนต์

สิทธิ์ที่เชื่อมโยง

logging


makeInteger

แปลงค่าที่ระบุเป็นตัวเลข (จำนวนเต็ม)

ไวยากรณ์

makeInteger(value)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
value any ค่าที่จะแปลง

สิทธิ์ที่เชื่อมโยง

ไม่มี


makeNumber

แปลงค่าที่ระบุเป็นตัวเลข

ไวยากรณ์

makeNumber(value)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
value any ค่าที่จะแปลง

สิทธิ์ที่เชื่อมโยง

ไม่มี


makeString

แสดงผลค่าที่ระบุเป็นสตริง

ไวยากรณ์

makeString(value)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
value any ค่าที่จะแปลง

สิทธิ์ที่เชื่อมโยง

ไม่มี


makeTableMap

แปลงออบเจ็กต์ตารางแบบง่ายที่มี 2 คอลัมน์เป็น Map ใช้เพื่อ เปลี่ยนSIMPLE_TABLEฟิลด์เทมเพลตที่มี 2 คอลัมน์เป็นรูปแบบที่จัดการได้ง่ายขึ้น

เช่น ฟังก์ชันนี้อาจแปลงออบเจ็กต์ตารางได้

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

ลงในแผนที่

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

แสดงผลออบเจ็กต์: Map ที่แปลงแล้วหากมีการเพิ่มคู่คีย์-ค่าลงใน ออบเจ็กต์ หรือ null ในกรณีอื่นๆ

ไวยากรณ์

makeTableMap(tableObj, keyColumnName, valueColumnName)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
tableObj List ออบเจ็กต์ตารางที่จะแปลง ซึ่งเป็นรายการของแผนที่ที่แต่ละ Map แสดงถึงแถวในตาราง ชื่อพร็อพเพอร์ตี้แต่ละรายการในออบเจ็กต์แถวคือชื่อคอลัมน์ และค่าพร็อพเพอร์ตี้คือค่าคอลัมน์ในแถว
keyColumnName สตริง ชื่อของคอลัมน์ที่มีค่าจะกลายเป็นคีย์ในMapที่แปลงแล้ว
valueColumnName สตริง ชื่อของคอลัมน์ที่มีค่าจะกลายเป็นค่าในMapที่แปลงแล้ว

สิทธิ์ที่เชื่อมโยง

ไม่มี


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

พารามิเตอร์

ระบบจะแปลงพารามิเตอร์ของฟังก์ชันทางคณิตศาสตร์เป็นตัวเลข

สิทธิ์ที่เชื่อมโยง

ไม่มี


Object

แสดงผลออบเจ็กต์ที่มีObjectเมธอด

keys() เมธอดนี้มีลักษณะการทำงานของ Object.keys() ใน Standard Library โดยจะแสดงผลอาร์เรย์ของชื่อพร็อพเพอร์ตี้ที่แจงนับได้ของออบเจ็กต์ที่กำหนด ตามลำดับเดียวกับที่ลูป 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.

parseUrl

แสดงผลออบเจ็กต์ที่มีส่วนประกอบทั้งหมดของ URL ที่ระบุ คล้ายกับออบเจ็กต์ URL

API นี้จะแสดง undefined สำหรับ URL ที่มีรูปแบบไม่ถูกต้อง สำหรับ URL ที่มีรูปแบบถูกต้อง ฟิลด์ที่ไม่มีในสตริง URL จะมีค่าเป็นสตริงว่าง หรือในกรณีของ 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 สตริง URL แบบเต็มที่จะแยกวิเคราะห์

สิทธิ์ที่เชื่อมโยง

ไม่มี


queryPermission

ค้นหาสิทธิ์ที่อนุญาตและสิทธิ์ที่จำกัด แสดงผล boolean: true หากได้รับ สิทธิ์ หรือ false ในกรณีอื่นๆ

ไวยากรณ์

queryPermission(permission, functionArgs*)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
permission สตริง ชื่อของสิทธิ์
functionArgs any อาร์กิวเมนต์ของฟังก์ชันจะแตกต่างกันไปตามสิทธิ์ที่กำลังค้นหา ดู อาร์กิวเมนต์ของฟังก์ชันด้านล่าง

อาร์กิวเมนต์ของฟังก์ชัน

sendPixel, injectScript, injectHiddenIframe: พารามิเตอร์ที่สอง ควรเป็นสตริง URL

writeGlobals, readGlobals: พารามิเตอร์ที่ 2 ควรเป็นคีย์ที่กำลังเขียนหรืออ่าน

readUrl: ไม่จำเป็นต้องมีอาร์กิวเมนต์เพิ่มเติมเพื่อสอบถามว่าอ่าน URL ทั้งหมดได้หรือไม่ หากต้องการค้นหาว่าอ่านคอมโพเนนต์ที่ระบุได้หรือไม่ ให้ส่งชื่อคอมโพเนนต์เป็นอาร์กิวเมนต์ที่ 2 ดังนี้

if (queryPermission('readUrl','port')) {
  // read the port
}

หากต้องการตรวจสอบว่าคีย์การค้นหาที่เฉพาะเจาะจงอ่านได้หรือไม่ ให้ส่งคีย์การค้นหาเป็น พารามิเตอร์ที่ 3

if (queryPermission('readUrl','query','key')) {
  getUrlComponent(...);
}

สิทธิ์ที่เชื่อมโยง

ไม่มี


readAnalyticsStorage

เรียกข้อมูลที่จัดเก็บไว้สำหรับการวิเคราะห์และแสดงผลออบเจ็กต์ที่มี client_id และ sessions

  • client_id: สตริงที่แสดง Client-ID ที่ใช้สําหรับการวิเคราะห์
  • sessions: อาร์เรย์ของออบเจ็กต์ที่มีข้อมูลเกี่ยวกับเซสชันปัจจุบัน แต่ละออบเจ็กต์ประกอบด้วยข้อมูลต่อไปนี้
    • measurement_id: สตริงที่แสดงรหัสการวัดของ ปลายทาง Analytics
    • session_id: สตริงที่แสดงการประทับเวลาซึ่งระบุเซสชันปัจจุบัน
    • session_number: ตัวเลขที่แสดงจํานวนเซสชันที่ผู้ใช้เริ่มต้นจนถึงเซสชันปัจจุบัน

ไวยากรณ์

const readAnalyticsStorage = require('readAnalyticsStorage');

const cookieOptions = {
  cookie_prefix: "xyz",
  cookie_domain: "google.com",
  cookie_path: "/",
};

readAnalyticsStorage(cookieOptions);

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
cookieOptions ออบเจ็กต์ ตัวเลือกไม่บังคับสำหรับการอ่านคุกกี้ที่มี cookie_prefix, cookie_domain หรือ cookie_path ที่เฉพาะเจาะจง

สิทธิ์ที่เชื่อมโยง

read_analytics_storage

ตัวอย่าง

const readAnalyticsStorage = require('readAnalyticsStorage');

const analyticsStorageData = readAnalyticsStorage();

sendOfflineEvent(analyticsStorageData.client_id, "tutorial_begin");

readCharacterSet

แสดงผลค่าของ document.characterSet

ไวยากรณ์

readCharacterSet()

พารามิเตอร์

ไม่มี

สิทธิ์ที่เชื่อมโยง

read_character_set


readTitle

แสดงผลค่าของ document.title

ไวยากรณ์

readTitle()

พารามิเตอร์

ไม่มี

สิทธิ์ที่เชื่อมโยง

read_title


require

นำเข้าฟังก์ชันในตัวตามชื่อ แสดงผลฟังก์ชันหรือออบเจ็กต์ ที่เรียกใช้จากโปรแกรมได้ แสดงผล undefined เมื่อเบราว์เซอร์ ไม่รองรับฟังก์ชันในตัว

ไวยากรณ์

require(name)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
name สตริง ชื่อของฟังก์ชันที่จะนำเข้า

ตัวอย่าง

const getUrl = require('getUrl');
const url = getUrl();

สิทธิ์ที่เชื่อมโยง

ไม่มี


sendPixel

ส่งคำขอ GET ไปยังปลายทาง URL ที่ระบุ

ไวยากรณ์

sendPixel(url, onSuccess, onFailure)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
url สตริง ตำแหน่งที่จะส่งพิกเซล
onSuccess ฟังก์ชัน เรียกใช้เมื่อพิกเซลโหลดสำเร็จ หมายเหตุ: แม้ว่าคำขอจะส่งสำเร็จ แต่เบราว์เซอร์อาจกำหนดให้ต้องมีการตอบกลับเป็นรูปภาพที่ถูกต้องจึงจะเรียกใช้ onSuccess ได้
onFailure ฟังก์ชัน เรียกใช้เมื่อโหลดพิกเซลไม่สำเร็จ หมายเหตุ: แม้ว่าคำขอจะส่งสำเร็จ แต่ onFailure อาจทำงานหากเซิร์ฟเวอร์ไม่ส่งการตอบกลับรูปภาพที่ถูกต้อง

สิทธิ์ที่เชื่อมโยง

send_pixel


setCookie

ตั้งค่าหรือลบคุกกี้ที่มีชื่อ ค่า และตัวเลือกที่ระบุ

ไวยากรณ์

setCookie(name, value[, options, encode])

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
name สตริง ชื่อของคุกกี้
value สตริง ค่าของคุกกี้
options ออบเจ็กต์ ระบุแอตทริบิวต์ Domain, Path, Expires, Max-Age, Secure และ SameSite (ดูตัวเลือกด้านล่าง)
encode บูลีน ควบคุมว่าจะเข้ารหัสค่าคุกกี้ด้วย encodeURIComponent() ของ JavaScript หรือไม่ ค่าเริ่มต้นคือ true

ตัวเลือก

  • โดเมน: ตั้งค่าโดยพร็อพเพอร์ตี้ options['domain'] หากมี ตั้งค่านี้ เป็น 'auto' เพื่อพยายามเขียนคุกกี้โดยใช้โดเมนที่กว้างที่สุดเท่าที่จะเป็นไปได้ ตามตำแหน่งของเอกสาร หากไม่สำเร็จ ระบบจะลองใช้ โดเมนย่อยที่แคบลงเรื่อยๆ หากทั้งหมดนี้ไม่สำเร็จ ระบบจะพยายามเขียนคุกกี้ โดยไม่มีโดเมน หากไม่ได้ตั้งค่า ระบบจะพยายามเขียนคุกกี้ โดยไม่ระบุโดเมน หมายเหตุ: เมื่อมีการเขียนคุกกี้ที่ไม่ได้ระบุโดเมนลงใน document.cookie ตัวแทนผู้ใช้จะตั้งค่าเริ่มต้นโดเมนของคุกกี้เป็นโฮสต์ของตำแหน่งเอกสารปัจจุบัน
  • เส้นทาง: กำหนดโดย options['path'] หากมี เมื่อมีการเขียนคุกกี้ที่ไม่มีเส้นทาง ที่ระบุไปยัง document.cookie User-agent จะตั้งค่าเริ่มต้น เส้นทางของคุกกี้เป็นเส้นทางของตำแหน่งเอกสารปัจจุบัน
  • Max-Age: ตั้งค่าโดย options['max-age'] หากมี
  • หมดอายุ: ตั้งค่าโดย options['expires'] (หากมี) หากมีอยู่ สตริงนี้ต้องเป็นสตริงวันที่ที่จัดรูปแบบ UTC Date.toUTCString() ใช้จัดรูปแบบ a Date สำหรับพารามิเตอร์นี้ได้
  • ปลอดภัย: ตั้งค่าโดย options['secure'] หากมี
  • SameSite: ตั้งค่าโดย options['samesite'] หากมี

สิทธิ์ที่เชื่อมโยง

set_cookies


setDefaultConsentState

พุชการอัปเดตความยินยอมเริ่มต้นไปยังชั้นข้อมูล เพื่อประมวลผลโดยเร็วที่สุดหลังจากเหตุการณ์ปัจจุบันและแท็กใดก็ตามที่ทริกเกอร์เสร็จสิ้นการประมวลผล (หรือถึงการหมดเวลาการประมวลผลแท็ก) รับประกันได้ว่าระบบจะประมวลผลการอัปเดตในคอนเทนเนอร์นี้ก่อนรายการที่อยู่ในคิวในชั้นข้อมูล ดูข้อมูลเพิ่มเติมเกี่ยวกับความยินยอม

ตัวอย่างเช่น

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'ad_storage': 'denied',
  'analytics_storage': 'granted',
  'third_party_storage': 'denied',
  'region': ['US-CA'],
  'wait_for_update': 500
});

ไวยากรณ์

setDefaultConsentState(consentSettings)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
consentSettings ออบเจ็กต์ ออบเจ็กต์ที่กำหนดสถานะเริ่มต้นสำหรับความยินยอมประเภทที่ระบุ

ออบเจ็กต์ consentSettings คือการแมปสตริงประเภทความยินยอมที่กำหนดเองกับ 'granted' หรือ 'denied' อย่างใดอย่างหนึ่ง โดยรองรับค่าต่อไปนี้

ชื่อคีย์ ประเภท คำอธิบาย
consentType สตริง ค่าสำหรับความยินยอมแต่ละประเภทสามารถตั้งค่าเป็น `'granted'` หรือ `'denied'` ได้ ค่าอื่นๆ นอกเหนือจาก `'granted'` จะถือเป็น `'denied'` การตั้งค่า เป็น `undefined` จะไม่มีผลต่อค่าก่อนหน้า
region อาร์เรย์ อาร์เรย์รหัสภูมิภาคที่ไม่บังคับซึ่งระบุภูมิภาคที่ใช้ การตั้งค่าความยินยอม รหัสภูมิภาคจะแสดงโดยใช้ประเทศ และ/หรือเขตการปกครองย่อยในรูปแบบ ISO 3166-2
wait_for_update number ระบุค่าเป็นมิลลิวินาทีเพื่อควบคุมระยะเวลาในการรอก่อนที่จะส่งข้อมูล ใช้กับเครื่องมือขอความยินยอมที่โหลดแบบไม่พร้อมกัน

สิทธิ์ที่เชื่อมโยง

access_consent ที่มีสิทธิ์เข้าถึงการเขียนสำหรับความยินยอมทุกประเภทในออบเจ็กต์ consentSettings


setInWindow

กำหนดค่าที่ระบุใน window ที่คีย์ที่ระบุ โดยค่าเริ่มต้น วิธีนี้จะไม่ตั้งค่าใน window หากมีค่าอยู่แล้ว ตั้งค่า overrideExisting เป็น true เพื่อตั้งค่าใน window โดยไม่คำนึงถึง ค่าที่มีอยู่ แสดงผล boolean: true หากตั้งค่าสำเร็จ และ false ในกรณีอื่นๆ

ไวยากรณ์

setInWindow(key, value, overrideExisting)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
key สตริง คีย์ใน window ที่จะวางค่า
value * ค่าที่จะตั้งใน window
overrideExisting บูลีน Flag ที่ระบุว่าควรกำหนดค่าใน window ไม่ว่าจะมีค่าในนั้นหรือไม่ก็ตาม

สิทธิ์ที่เชื่อมโยง

access_globals


sha256

คำนวณข้อมูลสรุป SHA-256 ของอินพุตและเรียกใช้การเรียกกลับพร้อมข้อมูลสรุปที่เข้ารหัสใน base64 เว้นแต่optionsออบเจ็กต์จะระบุการเข้ารหัสเอาต์พุตอื่น

ตัวอย่างเช่น

sha256('inputString', (digest) => {
  sendPixel('https://example.com/collect?id=' + digest);
  data.gtmOnSuccess();
}, data.gtmOnFailure);

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

ไวยากรณ์

sha256(input, onSuccess, onFailure = undefined, options = undefined)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
input สตริง สตริงที่จะคำนวณแฮช
onSuccess ฟังก์ชัน เรียกใช้ด้วยข้อมูลสรุปที่ได้ ซึ่งเข้ารหัสใน Base64 เว้นแต่ ออบเจ็กต์ options จะระบุการเข้ารหัสเอาต์พุตอื่น
onFailure ฟังก์ชัน เรียกใช้หากเกิดข้อผิดพลาดขณะคำนวณค่าแฮช หรือหากเบราว์เซอร์ไม่รองรับ sha256 โดยเนทีฟ ระบบจะเรียกใช้การเรียกกลับ พร้อมออบเจ็กต์ที่มีชื่อข้อผิดพลาดและข้อความ
options ออบเจ็กต์ ออบเจ็กต์ตัวเลือกไม่บังคับเพื่อระบุการเข้ารหัสเอาต์พุต หากระบุ ออบเจ็กต์ควรมีคีย์ outputEncoding ที่มีค่าเป็น base64 หรือ hex

สิทธิ์ที่เชื่อมโยง

ไม่มี


templateStorage

แสดงผลออบเจ็กต์ที่มีเมธอดสำหรับการเข้าถึงที่เก็บข้อมูลเทมเพลต ที่เก็บข้อมูลเทมเพลต ช่วยให้แชร์ข้อมูลในการดำเนินการเทมเพลตเดียวได้ ข้อมูล ที่จัดเก็บไว้ในที่เก็บเทมเพลตจะยังคงอยู่ตลอดอายุของหน้าเว็บ

ไวยากรณ์

const templateStorage = require('templateStorage');

templateStorage.getItem(key);

templateStorage.setItem(key, value);

templateStorage.removeItem(key);

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

สิทธิ์ที่เชื่อมโยง

access_template_storage

ตัวอย่าง

const templateStorage = require('templateStorage');
const sendPixel = require('sendPixel');

// Ensure sendPixel is called only once per page.
if (templateStorage.getItem('alreadyRan')) {
  data.gtmOnSuccess();
  return;
}

templateStorage.setItem('alreadyRan', true);

sendPixel(
  data.oncePerPagePixelUrl,
  data.gtmOnSuccess,
  () => {
    templateStorage.setItem('alreadyRan', false);
    data.gtmOnFailure();
  });

toBase64

toBase64 API ช่วยให้คุณเข้ารหัสสตริงเป็นรูปแบบ Base64 ได้

ไวยากรณ์

toBase64(input)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
input สตริง สตริงที่จะเข้ารหัส

ตัวอย่าง

const toBase64 = require('toBase64');

const base64Hello = toBase64('hello');

สิทธิ์ที่เชื่อมโยง

ไม่มี


updateConsentState

ส่งการอัปเดตความยินยอมไปยังชั้นข้อมูลเพื่อประมวลผลโดยเร็วที่สุด หลังจากที่เหตุการณ์ปัจจุบันและแท็กที่ทริกเกอร์เสร็จสิ้นการประมวลผล (หรือ ถึงการหมดเวลาการประมวลผลแท็ก) รับประกันได้ว่าระบบจะประมวลผลการอัปเดตในคอนเทนเนอร์นี้ก่อนรายการที่อยู่ในคิวในชั้นข้อมูล ดูข้อมูลเพิ่มเติม เกี่ยวกับความยินยอม

ตัวอย่างเช่น

const updateConsentState = require('updateConsentState');

updateConsentState({
  'ad_storage': 'granted',
  'analytics_storage': 'denied',
  'third_party_storage': 'granted',
});

ไวยากรณ์

updateConsentState(consentSettings)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
consentSettings ออบเจ็กต์ ออบเจ็กต์ที่อัปเดตสถานะสำหรับประเภทความยินยอมที่ระบุ

ออบเจ็กต์ consentSettings คือการแมปสตริงประเภทความยินยอมที่กำหนดเองกับ 'granted' หรือ 'denied' อย่างใดอย่างหนึ่ง โดยรองรับค่าต่อไปนี้

ชื่อคีย์ ประเภท คำอธิบาย
consentType สตริง คุณตั้งค่าสำหรับความยินยอมแต่ละประเภทเป็น "granted" หรือ "denied" ได้ ค่าอื่นๆ นอกเหนือจาก "granted" จะถือว่าเป็น "denied" การตั้งค่า เป็น "ไม่ระบุ" จะไม่มีผลต่อค่าก่อนหน้า

สิทธิ์ที่เชื่อมโยง

access_consent ที่มีสิทธิ์เข้าถึงการเขียนสำหรับความยินยอมทุกประเภทในออบเจ็กต์ consentSettings


Test API

API เหล่านี้ทำงานร่วมกับการทดสอบ JavaScript ที่แยกจากกันเพื่อสร้างการทดสอบสำหรับเทมเพลตที่กำหนดเองใน Google Tag Manager API สำหรับการทดสอบเหล่านี้ไม่จำเป็นต้องมีrequire() ข้อความ ดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบเทมเพลตที่กำหนดเอง


assertApi

แสดงผลออบเจ็กต์ Matcher ที่ใช้เพื่อยืนยันเกี่ยวกับ API ที่ระบุได้อย่างราบรื่น

ไวยากรณ์

assertApi(apiName)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
apiName สตริง ชื่อของ API ที่จะตรวจสอบ ซึ่งเป็นสตริงเดียวกับที่ส่งไปยัง require()

เครื่องมือจับคู่

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

ตัวอย่าง

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

assertThat

assertThat API ได้รับการออกแบบตามไลบรารี [Truth] ของ Google โดยจะแสดงผลออบเจ็กต์ที่ใช้เพื่อยืนยันค่าของออบเจ็กต์ได้อย่างราบรื่น การยืนยันไม่สำเร็จจะหยุดการทดสอบทันทีและทำเครื่องหมายว่าไม่สำเร็จ อย่างไรก็ตาม การทดสอบหนึ่งไม่สำเร็จจะไม่ส่งผลต่อกรณีทดสอบอื่นๆ

ไวยากรณ์

assertThat(actual, opt_message)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
actual any ค่าที่จะใช้ในการตรวจสอบที่ไหลลื่น
opt_message สตริง ข้อความที่ไม่บังคับที่จะพิมพ์หากการยืนยันไม่สำเร็จ

เครื่องมือจับคู่

Matcher คำอธิบาย
isUndefined() ยืนยันว่าเรื่องคือ undefined
isDefined() ยืนยันว่าเรื่องนี้ไม่ใช่ undefined
isNull() ยืนยันว่าเรื่องคือ null
isNotNull() ยืนยันว่าเรื่องนี้ไม่ใช่ null
isFalse() ยืนยันว่าเรื่องคือ false
isTrue() ยืนยันว่าเรื่องคือ true
isFalsy() ยืนยันว่า Subject เป็นเท็จ ค่าที่ถือว่าเป็นเท็จ ได้แก่ 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() ยืนยันว่าประเภทของ Subject เป็นอาร์เรย์
isBoolean() ยืนยันว่าประเภทของเรื่องเป็นบูลีน
isFunction() ยืนยันว่าประเภทของออบเจ็กต์เป็นฟังก์ชัน
isNumber() ยืนยันว่าประเภทของเรื่องเป็นตัวเลข
isObject() ยืนยันว่าประเภทของ Subject เป็นออบเจ็กต์
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 API ช่วยให้คุณลบล้างลักษณะการทำงานของ Sandboxed API ได้ API จำลอง ใช้ในโค้ดเทมเพลตได้อย่างปลอดภัย แต่จะใช้งานได้ในโหมดทดสอบเท่านั้น ระบบจะรีเซ็ตการจำลองก่อนเรียกใช้การทดสอบแต่ละครั้ง

ไวยากรณ์

mock(apiName, returnValue);

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
apiName สตริง ชื่อของ API ที่จะจำลอง สตริงเดียวกับที่ส่งไปยัง require()
returnValue any ค่าที่จะแสดงผลสำหรับ API หรือฟังก์ชันที่เรียกใช้แทน API หาก returnValue เป็นฟังก์ชัน ระบบจะเรียกใช้ฟังก์ชันนั้นแทน Sandboxed API หาก returnValue เป็นอย่างอื่นที่ไม่ใช่ฟังก์ชัน ระบบจะแสดงค่าดังกล่าวแทน Sandboxed API

ตัวอย่าง

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

mockObject

mockObject API ช่วยให้คุณลบล้างลักษณะการทำงานของ Sandboxed API ที่ แสดงผลออบเจ็กต์ได้ API นี้ใช้ในโค้ดเทมเพลตได้อย่างปลอดภัย แต่จะใช้งานได้ในโหมดทดสอบเท่านั้น ระบบจะรีเซ็ตการจำลองก่อนเรียกใช้การทดสอบแต่ละครั้ง

ไวยากรณ์

mockObject(apiName, objectMock);

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
apiName สตริง ชื่อของ API ที่จะจำลอง สตริงเดียวกับที่ส่งไปยัง require()
objectMock ออบเจ็กต์ ค่าที่จะแสดงผลสำหรับ API หรือฟังก์ชันที่เรียกใช้แทน API ต้องเป็นออบเจ็กต์

ตัวอย่าง

const storage = {};
mockObject('localStorage', {
  setItem: (key, value) => {storage[key] = value;},
  getItem: (key) => storage[key],
});

runCode

เรียกใช้โค้ดสำหรับเทมเพลต ซึ่งก็คือเนื้อหาของแท็บโค้ดใน สภาพแวดล้อมการทดสอบปัจจุบันที่มีออบเจ็กต์ข้อมูลอินพุตที่ระบุ

ไวยากรณ์

runCode(data)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
data ออบเจ็กต์ ออบเจ็กต์ข้อมูลที่จะใช้ในการทดสอบ

ค่าที่ส่งคืน

แสดงค่าของตัวแปรสำหรับเทมเพลตตัวแปร และแสดง undefined สำหรับ เทมเพลตประเภทอื่นๆ ทั้งหมด

ตัวอย่าง

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