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 , 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 ทั้งหมด
|
สิทธิ์ที่เชื่อมโยง
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
: สตริงที่แสดงรหัสการวัดของ ปลายทาง Analyticssession_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.cookie
User-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'});