Core API
API เหล่านี้ทํางานร่วมกับ JavaScript ที่อยู่ในแซนด์บ็อกซ์เพื่อสร้างเทมเพลตที่กําหนดเองใน Google Tag Manager ระบบจะเพิ่ม API แต่ละรายการด้วยคำสั่ง require()
เช่น
const myAPI = require('myAPI');
addConsentListener
ลงทะเบียนฟังก์ชัน 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 |
function | ฟังก์ชันที่จะทํางานเมื่อสถานะของประเภทความยินยอมที่ระบุมีการเปลี่ยนแปลง |
เมื่อเรียกใช้ Listener ระบบจะส่งประเภทความยินยอมที่กำลังเปลี่ยนแปลงและค่าใหม่ของประเภทความยินยอมนั้น
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
consentType |
สตริง | ประเภทความยินยอมที่มีการเปลี่ยนแปลง |
granted |
บูลีน | บูลีนที่มีค่าเป็นจริงหากมีการเปลี่ยนแปลงประเภทความยินยอมที่ระบุเป็น "ให้ความยินยอมแล้ว" |
สิทธิ์ที่เชื่อมโยง
สิทธิ์ access_consent
พร้อมสิทธิ์การอ่านสําหรับประเภทความยินยอม
addEventCallback
addEventCallback
API ช่วยให้คุณลงทะเบียนฟังก์ชัน Callback ที่จะเรียกใช้เมื่อเหตุการณ์สิ้นสุด ระบบจะเรียกใช้การเรียกกลับเมื่อแท็กทั้งหมดสําหรับเหตุการณ์ทํางานแล้ว หรือเมื่อหมดเวลาของเหตุการณ์ในหน้าเว็บ
ฟังก์ชันการเรียกกลับจะได้รับค่า 2 ค่า ได้แก่ รหัสของคอนเทนเนอร์ที่เรียกใช้ฟังก์ชัน และออบเจ็กต์ที่มีข้อมูลเกี่ยวกับเหตุการณ์
ไวยากรณ์
addEventCallback(callback)
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
callback |
function | ฟังก์ชันที่จะเรียกใช้เมื่อสิ้นสุดเหตุการณ์ |
ออบเจ็กต์ 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 |
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 |
บูลีน | ควบคุมว่าจะถอดรหัสค่าคุกกี้ด้วย
decodeURIComponent() ของ JavaScript หรือไม่ ค่าเริ่มต้นคือ
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 ที่มาแทน URL ปัจจุบัน แสดงผลพารามิเตอร์แรกหรือทั้งหมดสําหรับ queryKey
ของ Referrer ที่ระบุ แสดงผลค่าแรกจาก 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 ที่มา และแสดงสตริงที่แสดง URL ที่มาบางส่วน หากไม่ระบุคอมโพเนนต์ ระบบจะแสดงผล 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
จะแยกความแตกต่างระหว่าง array
กับ object
ต่างจาก typeof
ไวยากรณ์
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 ไปยังชั้นข้อมูลเพื่อประมวลผลโดยเร็วที่สุดหลังจากเหตุการณ์ปัจจุบันและแท็กที่ทริกเกอร์เสร็จสิ้นการประมวลผลแล้ว (หรือถึงเวลาหมดเวลาการประมวลผลแท็ก) ระบบรับประกันว่าจะมีการประมวลผลการอัปเดตในคอนเทนเนอร์นี้ก่อนรายการใดๆ ที่รออยู่ในคิวของเลเยอร์ข้อมูล
เช่น หากเรียกใช้โดยแท็กที่เริ่มทํางานในการเริ่มต้นขอความยินยอม ระบบจะใช้การอัปเดตก่อนที่จะประมวลผลเหตุการณ์การเริ่มต้น ตัวอย่างคือการตั้งค่า ads_data_redaction
เป็น true
หรือ false
หรือ url_passthrough
มีการตั้งค่าเป็น true
หรือ false
ตัวอย่างเช่น
const gtagSet = require('gtagSet');
gtagSet({
'ads_data_redaction': true,
'url_passthrough': true,
});
ไวยากรณ์
gtagSet(object)
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
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 ที่เรียกใช้ Callback
ไวยากรณ์
injectHiddenIframe(url, onSuccess)
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
url |
สตริง | URL ที่จะใช้เป็นค่าของแอตทริบิวต์ src ของ iframe |
onSuccess |
function | เรียกใช้เมื่อเฟรมโหลดสําเร็จ |
สิทธิ์ที่เชื่อมโยง
injectScript
เพิ่มแท็กสคริปต์ลงในหน้าเว็บเพื่อโหลด URL ที่ระบุแบบไม่พร้อมกัน ฟังก์ชัน Callback จะแสดงเป็นอินสแตนซ์ของฟังก์ชัน และรวมอยู่ในฟังก์ชัน JavaScript ที่เรียกใช้
ไวยากรณ์
injectScript(url, onSuccess, onFailure[, cacheToken])
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
url |
สตริง | ที่อยู่ของสคริปต์ที่จะแทรก |
onSuccess |
function | เรียกใช้เมื่อโหลดสคริปต์สําเร็จ |
onFailure |
function | เรียกใช้เมื่อโหลดสคริปต์ไม่สำเร็จ |
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() ในไลบรารีมาตรฐาน โดยจะแสดงผลอาร์เรย์ของชื่อพร็อพเพอร์ตี้ที่นับได้ของออบเจ็กต์หนึ่งๆ ในลําดับเดียวกับที่ลูป for...in...
จะแสดง หากค่าอินพุตไม่ใช่ออบเจ็กต์ ระบบจะบังคับให้ค่าเป็นออบเจ็กต์
เมธอด values()
มีลักษณะการทํางานของ Object.values() ในไลบรารีมาตรฐาน โดยจะแสดงผลอาร์เรย์ของค่าพร็อพเพอร์ตี้ที่เอนกประสงค์ของออบเจ็กต์หนึ่งๆ ในลําดับเดียวกับที่ลูป for...in...
จะแสดง หากค่าอินพุตไม่ใช่ออบเจ็กต์ ระบบจะบังคับให้ค่าเป็นออบเจ็กต์
เมธอด entries()
มีลักษณะการทํางานของ Object.entries() ในไลบรารีมาตรฐาน โดยจะแสดงผลอาร์เรย์ของคู่พร็อพเพอร์ตี้ที่นับได้ของออบเจ็กต์หนึ่งๆ ในลําดับเดียวกับที่ลูป for...in...
จะแสดง[key, value]
หากค่าอินพุตไม่ใช่ออบเจ็กต์ ระบบจะบังคับให้ค่าเป็นออบเจ็กต์
เมธอด freeze()
มีลักษณะการทำงาน Object.freeze() ของไลบรารีมาตรฐาน ออบเจ็กต์ที่หยุดทำงานจะเปลี่ยนแปลงไม่ได้อีกต่อไป การหยุดทำงานของออบเจ็กต์จะป้องกันไม่ให้มีการเพิ่มพร็อพเพอร์ตี้ใหม่ ลบพร็อพเพอร์ตี้ที่มีอยู่ และเปลี่ยนแปลงค่าของพร็อพเพอร์ตี้ที่มีอยู่ freeze()
จะแสดงผลออบเจ็กต์เดียวกันกับที่ส่งเข้ามา ระบบจะถือว่าอาร์กิวเมนต์พื้นฐานหรือ Null เป็นออบเจ็กต์ที่หยุดทำงานและจะแสดงผล
เมธอด delete()
มีลักษณะการทํางานของโอเปอเรเตอร์ delete ของไลบรารีมาตรฐาน ซึ่งจะนําคีย์ที่ระบุออกจากออบเจ็กต์ เว้นแต่ว่าออบเจ็กต์จะหยุดไว้
เช่นเดียวกับโอเปอเรเตอร์ delete ของไลบรารีมาตรฐาน ฟังก์ชันนี้จะแสดงผล true
หากค่าอินพุตแรก (objectInput
) เป็นออบเจ็กต์ที่ไม่ได้ตรึงไว้ แม้ว่าค่าอินพุตที่ 2 (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
: พารามิเตอร์ที่ 2 ควรเป็นสตริง URL
writeGlobals
, readGlobals
: พารามิเตอร์ที่ 2 ควรเป็นคีย์ที่จะเขียนหรืออ่าน
readUrl
: ไม่จำเป็นต้องใช้อาร์กิวเมนต์เพิ่มเติมเพื่อสอบถามว่าอ่าน URL ทั้งหมดได้หรือไม่ หากต้องการสอบถามว่าอ่านคอมโพเนนต์หนึ่งๆ ได้หรือไม่ ให้ส่งชื่อคอมโพเนนต์เป็นอาร์กิวเมนต์ที่ 2 ดังนี้
if (queryPermission('readUrl','port')) {
// read the port
}
หากต้องการตรวจสอบว่าอ่านคีย์การค้นหาที่เฉพาะเจาะจงได้หรือไม่ ให้ส่งคีย์การค้นหาเป็นพารามิเตอร์ที่ 3 ดังนี้
if (queryPermission('readUrl','query','key')) {
getUrlComponent(...);
}
สิทธิ์ที่เชื่อมโยง
ไม่มี
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 |
function | เรียกใช้เมื่อโหลดพิกเซลสําเร็จ หมายเหตุ: แม้ว่าจะส่งคําขอสําเร็จแล้ว แต่เบราว์เซอร์อาจต้องการการตอบกลับรูปภาพที่ถูกต้องเพื่อเรียกใช้ onSuccess |
onFailure |
function | เรียกใช้เมื่อพิกเซลโหลดไม่สําเร็จ หมายเหตุ: แม้ว่าจะส่งคําขอสําเร็จแล้ว onFailure อาจทํางานหากเซิร์ฟเวอร์ไม่แสดงการตอบกลับรูปภาพที่ถูกต้อง |
สิทธิ์ที่เชื่อมโยง
setCookie
ตั้งค่าหรือลบคุกกี้ด้วยชื่อ ค่า และตัวเลือกที่ระบุ
ไวยากรณ์
setCookie(name, value[, options, encode])
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
name |
สตริง | ชื่อของคุกกี้ |
value |
สตริง | ค่าของคุกกี้ |
options |
object | ระบุแอตทริบิวต์โดเมน, เส้นทาง, หมดอายุ, 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()
ใช้เพื่อจัดรูปแบบDate
สำหรับพารามิเตอร์นี้ได้ - ปลอดภัย: ตั้งค่าโดย
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 |
object | ออบเจ็กต์ที่กําหนดสถานะเริ่มต้นสําหรับประเภทความยินยอมที่ระบุ |
ออบเจ็กต์ 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 |
function | เรียกใช้ด้วยข้อมูลสรุปที่ได้ซึ่งเข้ารหัสใน Base64 เว้นแต่ออบเจ็กต์ options จะระบุการเข้ารหัสเอาต์พุตอื่น |
onFailure |
function | เรียกใช้หากเกิดข้อผิดพลาดขณะคํานวณข้อมูลสรุป หรือหากเบราว์เซอร์ไม่รองรับ sha256 โดยค่าเริ่มต้น ระบบจะเรียกใช้การเรียกกลับด้วยออบเจ็กต์ที่มีชื่อของข้อผิดพลาดและข้อความ |
options |
object | ออบเจ็กต์ตัวเลือกไม่บังคับสำหรับระบุการเข้ารหัสเอาต์พุต หากระบุ ออบเจ็กต์ควรมีคีย์ 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 |
object | ออบเจ็กต์ที่อัปเดตสถานะสำหรับประเภทความยินยอมที่ระบุ |
ออบเจ็กต์ consentSettings
คือการแมปสตริงประเภทความยินยอมที่กำหนดเองกับ 'granted'
หรือ 'denied'
โดยรองรับค่าต่อไปนี้
ชื่อคีย์ | ประเภท | คำอธิบาย |
---|---|---|
consentType |
สตริง | ค่าสำหรับความยินยอมแต่ละประเภทสามารถตั้งค่าเป็น "อนุญาต" หรือ "ปฏิเสธ" ค่าอื่นๆ นอกเหนือจาก "granted" จะถือว่า "denied" การตั้งค่าเป็น "ไม่ระบุ" จะไม่ส่งผลต่อค่าก่อนหน้า |
สิทธิ์ที่เชื่อมโยง
สิทธิ์ access_consent
ที่มีสิทธิ์การเขียนสำหรับความยินยอมทุกประเภทในออบเจ็กต์ consentSettings
Test API
API เหล่านี้ทํางานร่วมกับการทดสอบ JavaScript ในแซนด์บ็อกซ์เพื่อสร้างการทดสอบเทมเพลตที่กําหนดเองใน Google Tag Manager API การทดสอบเหล่านี้ไม่จำเป็นต้องมีrequire()
คำสั่ง ดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบเทมเพลตที่กำหนดเอง
assertApi
แสดงผลออบเจ็กต์ตัวจับคู่ที่สามารถใช้เพื่อยืนยันเกี่ยวกับ 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 |
สตริง | ข้อความที่ไม่บังคับที่จะพิมพ์หากการยืนยันไม่สำเร็จ |
ตัวจับคู่
โปรแกรมจับคู่ | คำอธิบาย |
---|---|
isUndefined() |
ยืนยันว่าเรื่องคือ undefined |
isDefined() |
ยืนยันว่าเรื่องไม่ใช่ undefined |
isNull() |
ยืนยันว่าเรื่องคือ null |
isNotNull() |
ยืนยันว่าเรื่องไม่ใช่ null |
isFalse() |
ยืนยันว่าเรื่องคือ false |
isTrue() |
ยืนยันว่าเรื่องคือ true |
isFalsy() |
ยืนยันว่าเรื่องนั้นเป็นเท็จ ค่าที่เป็นเท็จคือ undefined , null , false , NaN , 0 และ '' (สตริงว่าง) |
isTruthy() |
ยืนยันว่าเรื่องเป็นจริง ค่าที่เป็นเท็จคือ undefined , null , false , NaN , 0 และ '' (สตริงว่าง) |
isNaN() |
ยืนยันว่าเรื่องเป็นค่า NaN |
isNotNaN() |
ยืนยันว่าเรื่องเป็นค่าใดก็ได้ที่ไม่ใช่ NaN |
isInfinity() |
ยืนยันว่าเรื่องเป็นค่าบวกหรือค่าลบ Infinity |
isNotInfinity() |
ยืนยันว่าเรื่องเป็นค่าใดก็ได้ที่ไม่ใช่บวกหรือลบ หรือ Infinity |
isEqualTo(expected) |
ยืนยันว่าเรื่องเท่ากับค่าที่ระบุ การดำเนินการนี้เป็นการคํานวณค่า ไม่ใช่การคํานวณข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบซ้ำ |
isNotEqualTo(expected) |
ยืนยันว่าเรื่องไม่เท่ากับค่าที่ระบุ นี่เป็นเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบซ้ำ |
isAnyOf(...expected) |
ยืนยันว่าเรื่องเท่ากับค่าใดค่าหนึ่งที่กำหนด นี่เป็นเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบซ้ำ |
isNoneOf(...expected) |
ยืนยันว่าเรื่องไม่เท่ากับค่าที่ระบุ การเปรียบเทียบนี้เป็นแบบค่า ไม่ใช่แบบการเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบซ้ำ |
isStrictlyEqualTo(expected) |
ยืนยันว่าเรื่อง (=== ) เท่ากับค่าที่ระบุอย่างเคร่งครัด |
isNotStrictlyEqualTo(expected) |
ยืนยันว่าเรื่องไม่เท่ากับ (!== ) ค่าที่ระบุอย่างเคร่งครัด |
isGreaterThan(expected) |
ยืนยันว่าเรื่องมากกว่า (> ) ค่าที่ระบุในการเปรียบเทียบแบบจัดลำดับ |
isGreaterThanOrEqualTo(expected) |
ยืนยันว่าเรื่องมากกว่าหรือเท่ากับ (>= ) ค่าที่ระบุในการเปรียบเทียบแบบจัดลำดับ |
isLessThan(expected) |
ยืนยันว่าเรื่องน้อยกว่า (< ) ค่าที่ระบุในการเปรียบเทียบแบบเรียงลำดับ |
isLessThanOrEqualTo(expected) |
ยืนยันว่าเรื่องมีค่าน้อยกว่าหรือเท่ากับ (<= )
ค่าที่ระบุในการเปรียบเทียบแบบจัดลำดับ |
contains(...expected) |
ยืนยันว่าเรื่องเป็นอาร์เรย์หรือสตริงที่มีค่าที่ระบุทั้งหมดตามลำดับใดก็ได้ การเปรียบเทียบนี้เป็นแบบค่า ไม่ใช่แบบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบย้อนกลับ |
doesNotContain(...expected) |
ยืนยันว่าเรื่องเป็นอาร์เรย์หรือสตริงที่ไม่มีค่าที่ระบุ การเปรียบเทียบนี้เป็นแบบค่า ไม่ใช่แบบการเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบซ้ำ |
containsExactly(...expected) |
ยืนยันว่าเรื่องเป็นอาร์เรย์ที่มีค่าที่ระบุทั้งหมดตามลำดับใดก็ได้และไม่มีค่าอื่นๆ การเปรียบเทียบนี้เป็นแบบค่า ไม่ใช่แบบการเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบย้อนกลับ |
doesNotContainExactly(...expected) |
ยืนยันว่าเรื่องเป็นอาร์เรย์ที่มีชุดค่าที่แตกต่างจากค่าที่ระบุในลำดับใดก็ได้ การเปรียบเทียบนี้เป็นแบบค่า ไม่ใช่แบบการเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบซ้ำ |
hasLength(expected) |
ยืนยันว่าเรื่องเป็นอาร์เรย์หรือสตริงที่มีความยาวที่ระบุ การยืนยันจะดำเนินการไม่สําเร็จเสมอหากค่าไม่ใช่อาร์เรย์หรือสตริง |
isEmpty() |
ยืนยันว่าเรื่องเป็นอาร์เรย์หรือสตริงที่ว่างเปล่า (ความยาว = 0) การยืนยันจะดำเนินการไม่สําเร็จเสมอหากค่าไม่ใช่อาร์เรย์หรือสตริง |
isNotEmpty() |
ยืนยันว่าเรื่องเป็นอาร์เรย์หรือสตริงที่ไม่ใช่สตริงว่าง (ความยาว > 0) การยืนยันจะดำเนินการไม่สำเร็จเสมอหากค่าไม่ใช่อาร์เรย์หรือสตริง |
isArray() |
ยืนยันว่าประเภทของเรื่องเป็นอาร์เรย์ |
isBoolean() |
ยืนยันว่าประเภทของเรื่องเป็นบูลีน |
isFunction() |
ยืนยันว่าประเภทของเรื่องคือฟังก์ชัน |
isNumber() |
ยืนยันว่าประเภทของเรื่องเป็นตัวเลข |
isObject() |
ยืนยันว่าประเภทของเรื่องคือออบเจ็กต์ |
isString() |
ยืนยันว่าประเภทของเรื่องคือสตริง |
ตัวอย่าง
assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();
fail
ทดสอบปัจจุบันไม่สําเร็จทันทีและพิมพ์ข้อความที่ระบุไว้ (หากระบุ)
ไวยากรณ์
fail(opt_message);
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
opt_message |
สตริง | ข้อความแสดงข้อผิดพลาดแบบไม่บังคับ |
ตัวอย่าง
fail('This test has failed.');
mock
mock
API ช่วยให้คุณลบล้างลักษณะการทํางานของ API ใน Sandbox ได้ Mock API ใช้งานได้อย่างปลอดภัยในโค้ดเทมเพลต แต่จะทํางานได้เฉพาะในโหมดทดสอบเท่านั้น
ระบบจะรีเซ็ตการจำลองก่อนทำการทดสอบแต่ละครั้ง
ไวยากรณ์
mock(apiName, returnValue);
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
apiName |
สตริง | ชื่อของ API ที่จะจำลอง ซึ่งจะเป็นสตริงเดียวกับที่ส่งไปยัง require() |
returnValue |
any | ค่าที่จะแสดงผลสำหรับ API หรือฟังก์ชันที่เรียกแทน API หาก returnValue เป็นฟังก์ชัน ระบบจะเรียกใช้ฟังก์ชันนั้นแทน API ที่อยู่ในแซนด์บ็อกซ์ หาก returnValue ไม่ใช่ฟังก์ชัน ระบบจะแสดงผลค่านั้นแทน API ที่อยู่ในแซนด์บ็อกซ์ |
ตัวอย่าง
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
mockObject
API ช่วยให้คุณลบล้างลักษณะการทํางานของ API ในแซนด์บ็อกซ์ที่แสดงผลออบเจ็กต์ API นี้ใช้งานได้อย่างปลอดภัยในโค้ดเทมเพลต แต่จะใช้งานได้ในโหมดทดสอบเท่านั้น ระบบจะรีเซ็ตการจำลองก่อนทำการทดสอบแต่ละครั้ง
ไวยากรณ์
mockObject(apiName, objectMock);
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
apiName |
สตริง | ชื่อของ API ที่จะจำลอง ซึ่งจะเป็นสตริงเดียวกับที่ส่งไปยัง require() |
objectMock |
object | ค่าที่จะแสดงผลสำหรับ API หรือฟังก์ชันที่เรียกแทน API ต้องเป็นออบเจ็กต์ |
ตัวอย่าง
const storage = {};
mockObject('localStorage', {
setItem: (key, value) => {storage[key] = value;},
getItem: (key) => storage[key],
});
runCode
เรียกใช้โค้ดของเทมเพลต ซึ่งก็คือเนื้อหาของแท็บโค้ดในสภาพแวดล้อมการทดสอบปัจจุบันด้วยออบเจ็กต์ข้อมูลอินพุตที่ระบุ
ไวยากรณ์
runCode(data)
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
data |
object | ออบเจ็กต์ข้อมูลที่จะใช้ในการทดสอบ |
ผลลัพธ์
แสดงค่าของตัวแปรสำหรับเทมเพลตตัวแปร และแสดง undefined
สำหรับเทมเพลตประเภทอื่นๆ ทั้งหมด
ตัวอย่าง
runCode({field1: 123, field2: 'value'});