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);
});
สิทธิ์ที่เชื่อมโยง
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 | 
สิทธิ์ที่เชื่อมโยง
copyFromWindow
คัดลอกตัวแปรจากออบเจ็กต์ window หากค่าใน window แมปกับประเภทที่รองรับใน JavaScript ที่แซนด์บ็อกซ์โดยตรงไม่ได้ ระบบจะแสดง undefined ประเภททั้ง 8 ที่รองรับใน JavaScript ที่แซนด์บ็อกซ์ ได้แก่ null,
undefined, boolean, number, string, Array, Object และ function
แสดงผลค่าที่ดึงข้อมูล (และบังคับ)
ไวยากรณ์
copyFromWindow(key)
พารามิเตอร์
| พารามิเตอร์ | ประเภท | คำอธิบาย | 
|---|---|---|
| key | สตริง | คีย์ใน windowเพื่อคัดลอกค่า | 
สิทธิ์ที่เชื่อมโยง
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'ระบบจะแสดง
      ข้อยกเว้น | 
สิทธิ์ที่เชื่อมโยง
createQueue
สร้างอาร์เรย์ใน window (หากยังไม่มี) และแสดงผลฟังก์ชันที่จะส่งค่าไปยังอาร์เรย์นั้น
ฟังก์ชันนี้ต้องมีการตั้งค่าการอ่านและการเขียนสำหรับ arrayKey ในสิทธิ์ access_globals
ตัวอย่างเช่น
const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});
ไวยากรณ์
createQueue(arrayKey)
พารามิเตอร์
| พารามิเตอร์ | ประเภท | คำอธิบาย | 
|---|---|---|
| arrayKey | สตริง | คีย์ใน windowที่ตั้งค่าอาร์เรย์ หากยังไม่มี อาร์กิวเมนต์นี้รองรับรูปแบบการอ้างอิงแบบจุดมาตรฐาน หากไม่มีเส้นทางของคีย์
      ระบบจะส่งข้อยกเว้น เช่น หากarrayKeyเป็น'one.two'และไม่มี
      ออบเจ็กต์ส่วนกลางชื่อ'one'ระบบจะแสดง
      ข้อยกเว้น | 
สิทธิ์ที่เชื่อมโยง
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();
สิทธิ์ที่เชื่อมโยง
getCookieValues
แสดงผลค่าของคุกกี้ทั้งหมดที่มีชื่อที่ระบุ
ไวยากรณ์
getCookieValues(name[, decode])
พารามิเตอร์
| พารามิเตอร์ | ประเภท | คำอธิบาย | 
|---|---|---|
| name | สตริง | ชื่อของคุกกี้ | 
| decode | บูลีน | ควบคุมว่าจะถอดรหัสค่าคุกกี้ด้วย
        JavaScript decodeURIComponent()หรือไม่ ค่าเริ่มต้นคือtrue | 
สิทธิ์ที่เชื่อมโยง
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,portpath,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,portpath,query,extensionfragmentหากคอมโพเนนต์เป็นundefinednullหรือไม่ตรงกับคอมโพเนนต์ใดคอมโพเนนต์หนึ่ง ระบบจะแสดงค่าhrefทั้งหมด | 
สิทธิ์ที่เชื่อมโยง
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 | ฟังก์ชัน | เรียกใช้เมื่อเฟรมโหลดสำเร็จ | 
สิทธิ์ที่เชื่อมโยง
injectScript
เพิ่มแท็กสคริปต์ลงในหน้าเว็บเพื่อโหลด URL ที่ระบุแบบไม่พร้อมกัน Callback จะได้รับเป็นอินสแตนซ์ฟังก์ชันและจะรวมอยู่ในฟังก์ชัน JavaScript ที่เรียกผ่านไปยังฟังก์ชันเหล่านั้น
ไวยากรณ์
injectScript(url, onSuccess, onFailure[, cacheToken])
พารามิเตอร์
| พารามิเตอร์ | ประเภท | คำอธิบาย | 
|---|---|---|
| url | สตริง | ที่อยู่ของสคริปต์ที่จะแทรก | 
| onSuccess | ฟังก์ชัน | เรียกใช้เมื่อโหลดสคริปต์สำเร็จ | 
| onFailure | ฟังก์ชัน | เรียกใช้เมื่อโหลดสคริปต์ไม่สำเร็จ | 
| cacheToken | สตริง | สตริงที่ไม่บังคับซึ่งใช้เพื่อระบุว่าควรแคช URL ที่ระบุ หากระบุค่านี้ ระบบจะสร้างองค์ประกอบสคริปต์เพียงรายการเดียวเพื่อขอ JavaScript การพยายามโหลดเพิ่มเติมจะส่งผลให้
        ระบบจัดคิวเมธอด onSuccessและonFailureที่ระบุ
        จนกว่าสคริปต์จะโหลด | 
สิทธิ์ที่เชื่อมโยง
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);
สิทธิ์ที่เชื่อมโยง
ตัวอย่าง
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 | อาร์กิวเมนต์ | 
สิทธิ์ที่เชื่อมโยง
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ที่เฉพาะเจาะจง | 
สิทธิ์ที่เชื่อมโยง
ตัวอย่าง
const readAnalyticsStorage = require('readAnalyticsStorage');
const analyticsStorageData = readAnalyticsStorage();
sendOfflineEvent(analyticsStorageData.client_id, "tutorial_begin");
readCharacterSet
แสดงผลค่าของ document.characterSet
ไวยากรณ์
readCharacterSet()
พารามิเตอร์
ไม่มี
สิทธิ์ที่เชื่อมโยง
readTitle
แสดงผลค่าของ document.title
ไวยากรณ์
readTitle()
พารามิเตอร์
ไม่มี
สิทธิ์ที่เชื่อมโยง
require
นำเข้าฟังก์ชันในตัวตามชื่อ แสดงผลฟังก์ชันหรือออบเจ็กต์ ที่เรียกใช้จากโปรแกรมได้ แสดงผล undefined เมื่อเบราว์เซอร์ ไม่รองรับฟังก์ชันในตัว
ไวยากรณ์
require(name)
พารามิเตอร์
| พารามิเตอร์ | ประเภท | คำอธิบาย | 
|---|---|---|
| name | สตริง | ชื่อของฟังก์ชันที่จะนำเข้า | 
ตัวอย่าง
const getUrl = require('getUrl');
const url = getUrl();
สิทธิ์ที่เชื่อมโยง
ไม่มี
sendPixel
ส่งคำขอ GET ไปยังปลายทาง URL ที่ระบุ
ไวยากรณ์
sendPixel(url, onSuccess, onFailure)
พารามิเตอร์
| พารามิเตอร์ | ประเภท | คำอธิบาย | 
|---|---|---|
| url | สตริง | ตำแหน่งที่จะส่งพิกเซล | 
| onSuccess | ฟังก์ชัน | เรียกใช้เมื่อพิกเซลโหลดสำเร็จ หมายเหตุ: แม้ว่าคำขอจะส่งสำเร็จ แต่เบราว์เซอร์อาจกำหนดให้ต้องมีการตอบกลับเป็นรูปภาพที่ถูกต้องจึงจะเรียกใช้ onSuccess ได้ | 
| onFailure | ฟังก์ชัน | เรียกใช้เมื่อโหลดพิกเซลไม่สำเร็จ หมายเหตุ: แม้ว่าคำขอจะส่งสำเร็จ แต่ onFailure อาจทำงานหากเซิร์ฟเวอร์ไม่ส่งการตอบกลับรูปภาพที่ถูกต้อง | 
สิทธิ์ที่เชื่อมโยง
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.cookieUser-agent จะตั้งค่าเริ่มต้น เส้นทางของคุกกี้เป็นเส้นทางของตำแหน่งเอกสารปัจจุบัน
- Max-Age: ตั้งค่าโดย options['max-age']หากมี
- หมดอายุ: ตั้งค่าโดย options['expires'](หากมี) หากมีอยู่ สตริงนี้ต้องเป็นสตริงวันที่ที่จัดรูปแบบ UTCDate.toUTCString()ใช้จัดรูปแบบ aDateสำหรับพารามิเตอร์นี้ได้
- ปลอดภัย: ตั้งค่าโดย options['secure']หากมี
- SameSite: ตั้งค่าโดย options['samesite']หากมี
สิทธิ์ที่เชื่อมโยง
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ไม่ว่าจะมีค่าในนั้นหรือไม่ก็ตาม | 
สิทธิ์ที่เชื่อมโยง
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();
สิทธิ์ที่เชื่อมโยง
ตัวอย่าง
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'});