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

API หลัก

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

const myAPI = require('myAPI');

addConsentListener

ลงทะเบียนฟังก์ชัน 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 ของ Google ฟังก์ชันที่จะเรียกใช้เมื่อมีการเปลี่ยนแปลงสถานะของประเภทความยินยอมที่ระบุ

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

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

สิทธิ์ที่เกี่ยวข้อง

สิทธิ์ access_consent พร้อมสิทธิ์อ่านสำหรับประเภทความยินยอม


addEventCallback

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

ไวยากรณ์

addEventCallback(callback)

พารามิเตอร์

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

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

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

ตัวอย่าง

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

สิทธิ์ที่เกี่ยวข้อง

read_event_metadata


aliasInWindow

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

ไวยากรณ์

aliasInWindow(toPath, fromPath)

พารามิเตอร์

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

ตัวอย่าง

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

สิทธิ์ที่เกี่ยวข้อง

ต้องมี access_globals สำหรับทั้ง toPath และ fromPath ขณะที่ toPath ต้องมีสิทธิ์เขียน fromPath ต้องมีสิทธิ์อ่าน


callInWindow

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

ไวยากรณ์

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

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

เปิดใช้ access_globals ที่มีสิทธิ์ execute แล้ว


callLater

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

ไวยากรณ์

callLater(function)

พารามิเตอร์

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

copyFromDataLayer

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

ไวยากรณ์

copyFromDataLayer(key[, dataLayerVersion])

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

read_data_layer


copyFromWindow

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

ไวยากรณ์

copyFromWindow(key)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

access_globals


createArgumentsQueue

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

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

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

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

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

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

ไวยากรณ์

createArgumentsQueue(fnKey, arrayKey)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

access_globals


createQueue

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

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

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

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

ไวยากรณ์

createQueue(arrayKey)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

access_globals


decodeUri

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

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

const decode = require('decodeUri');

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

ไวยากรณ์

decodeUri(encoded_uri)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


decodeUriComponent

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

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

const decode = require('decodeUriComponent');

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

ไวยากรณ์

decodeUriComponent(encoded_uri_component)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


encodeUri

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

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

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

ไวยากรณ์

encodeUri(uri)

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
uri สตริง URI ที่สมบูรณ์

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


encodeUriComponent

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

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

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

ไวยากรณ์

encodeUriComponent(str)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


fromBase64

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

ไวยากรณ์

fromBase64(base64EncodedString)

พารามิเตอร์

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

ตัวอย่าง

const fromBase64 = require('fromBase64');

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


generateRandom

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

ไวยากรณ์

generateRandom(min, max)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


getContainerVersion

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

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

ตัวอย่าง

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

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

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

ไวยากรณ์

getContainerVersion();

สิทธิ์ที่เกี่ยวข้อง

read_container_data


getCookieValues

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

ไวยากรณ์

getCookieValues(name[, decode])

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

get_cookies


getQueryParameters

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

ไวยากรณ์

getQueryParameters(queryKey[, retrieveAll])

พารามิเตอร์

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

ตัวอย่างเช่น หาก 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 ของผู้อ้างอิงที่ระบุ แสดงผลค่าแรกจาก queryKey หรืออาร์เรย์ของค่าจาก queryKey

ไวยากรณ์

getReferrerQueryParameters(queryKey[, retrieveAll])

พารามิเตอร์

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

ตัวอย่างเช่น หาก 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

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

ไวยากรณ์

getTimestamp();

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


getTimestampMillis

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

ไวยากรณ์

getTimestampMillis();

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


getType

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

ไวยากรณ์

getType(data.someField)

Notes

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

ค่าอินพุต ผลลัพธ์
undefined "ไม่ระบุ"
null "null"
true 'boolean'
12 "number"
'string' "string"
{ a: 3 } "ออบเจ็กต์"
[ 1, 3 ] "อาร์เรย์"
(x) => x + 1 "ฟังก์ชัน"

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


getUrl

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

ไวยากรณ์

getUrl(component)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

get_url


gtagSet

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

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

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

ไวยากรณ์

injectHiddenIframe(url, onSuccess)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

inject_hidden_iframe


injectScript

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

ไวยากรณ์

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

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

inject_script


isConsentGranted

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

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

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

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

const isConsentGranted = require('isConsentGranted');

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

ไวยากรณ์

isConsentGranted(consentType)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

สิทธิ์ access_consent พร้อมสิทธิ์อ่านสำหรับประเภทความยินยอม


JSON

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

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

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

ไวยากรณ์

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

พารามิเตอร์

JSON.parse

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

JSON.stringify

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

ตัวอย่าง

const JSON = require('JSON');

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

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

localStorage

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

ไวยากรณ์

const localStorage = require('localStorage');

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

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

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

สิทธิ์ที่เกี่ยวข้อง

access_local_storage

ตัวอย่าง

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

logToConsole

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

ไวยากรณ์

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

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

logging


makeInteger

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

ไวยากรณ์

makeInteger(value)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


makeNumber

แปลงค่าที่ระบุเป็น number

ไวยากรณ์

makeNumber(value)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


makeString

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

ไวยากรณ์

makeString(value)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


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() ของไลบรารีมาตรฐาน โดยจะแสดงผลอาร์เรย์ของพร็อพเพอร์ตี้ที่แจกแจงได้ของออบเจ็กต์ที่ระบุ [key, value] ในลำดับเดียวกันกับที่ลูป for...in... จะแสดง หากค่าอินพุตไม่ใช่ออบเจ็กต์ ระบบจะบังคับให้เป็นออบเจ็กต์

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

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

  • keyToDelete ไม่สามารถเป็นสตริงที่คั่นด้วยจุดซึ่งระบุคีย์ที่ฝังอยู่
  • ไม่สามารถใช้ delete() เพื่อลบองค์ประกอบออกจากอาร์เรย์
  • ไม่สามารถใช้ delete() เพื่อนำพร็อพเพอร์ตี้ใดๆ ออกจากขอบเขตรวม

ไวยากรณ์

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

พารามิเตอร์

Object.keys

พารามิเตอร์ ประเภท คำอธิบาย
objectInput ทั้งหมด ออบเจ็กต์ที่มีคีย์ในการแจกแจง หากอินพุตไม่ใช่ออบเจ็กต์ ระบบจะบังคับให้อินพุตเป็นออบเจ็กต์

Object.values

พารามิเตอร์ ประเภท คำอธิบาย
objectInput ทั้งหมด ออบเจ็กต์ที่มีค่าที่แจกแจง หากอินพุตไม่ใช่ออบเจ็กต์ ระบบจะบังคับให้เป็นออบเจ็กต์

Object.entries

พารามิเตอร์ ประเภท คำอธิบาย
objectInput ทั้งหมด ออบเจ็กต์ที่มีคู่คีย์/ค่าที่ต้องการแจกแจง หากอินพุตไม่ใช่ออบเจ็กต์ ระบบจะบังคับให้เป็นออบเจ็กต์

Object.freeze

พารามิเตอร์ ประเภท คำอธิบาย
objectInput ทั้งหมด วัตถุที่ต้องการตรึง หากอินพุตไม่ใช่วัตถุ ระบบจะถือว่าเป็นวัตถุที่ตรึงไว้

Object.delete

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

ตัวอย่าง

const Object = require('Object');

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

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

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

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

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

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 ทั้งหมด อาร์กิวเมนต์ของฟังก์ชันจะแตกต่างกันไปตามสิทธิ์ที่ค้นหา โปรดดูอาร์กิวเมนต์ของฟังก์ชันด้านล่าง

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

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

พารามิเตอร์

ไม่มี

สิทธิ์ที่เกี่ยวข้อง

read_character_set


readTitle

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

ไวยากรณ์

readTitle()

พารามิเตอร์

ไม่มี

สิทธิ์ที่เกี่ยวข้อง

read_title


require

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

ไวยากรณ์

require(name)

พารามิเตอร์

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

ตัวอย่าง

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


sendPixel

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

ไวยากรณ์

sendPixel(url, onSuccess, onFailure)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

send_pixel


setCookie

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

ไวยากรณ์

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

พารามิเตอร์

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

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

สิทธิ์ที่เกี่ยวข้อง

set_cookies


setDefaultConsentState

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

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

const setDefaultConsentState = require('setDefaultConsentState');

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

ไวยากรณ์

setDefaultConsentState(consentSettings)

พารามิเตอร์

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

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

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

สิทธิ์ที่เกี่ยวข้อง

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


setInWindow

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

ไวยากรณ์

setInWindow(key, value, overrideExisting)

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

access_globals


sha256

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

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

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

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

ไวยากรณ์

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

พารามิเตอร์

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

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


templateStorage

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

ไวยากรณ์

const templateStorage = require('templateStorage');

templateStorage.getItem(key);

templateStorage.setItem(key, value);

templateStorage.removeItem(key);

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

สิทธิ์ที่เกี่ยวข้อง

access_template_storage

ตัวอย่าง

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

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

templateStorage.setItem('alreadyRan', true);

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

toBase64

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

ไวยากรณ์

toBase64(input)

พารามิเตอร์

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

ตัวอย่าง

const toBase64 = require('toBase64');

const base64Hello = toBase64('hello');

สิทธิ์ที่เกี่ยวข้อง

ไม่มี


updateConsentState

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

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

const updateConsentState = require('updateConsentState');

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

ไวยากรณ์

updateConsentState(consentSettings)

พารามิเตอร์

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

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

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

สิทธิ์ที่เกี่ยวข้อง

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


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 ทั้งหมด ค่าที่จะใช้ในการตรวจสอบอย่างคล่องแคล่ว
opt_message สตริง ข้อความเสริมที่จะพิมพ์หากการยืนยันล้มเหลว

ตัวจับคู่

ตัวจับคู่ คำอธิบาย
isUndefined() ยืนยันว่าเรื่องคือ undefined
isDefined() ยืนยันว่าหัวข้อไม่ใช่ undefined
isNull() ยืนยันว่าเรื่องคือ null
isNotNull() ยืนยันว่าหัวข้อไม่ใช่ null
isFalse() ยืนยันว่าเรื่องคือ false
isTrue() ยืนยันว่าเรื่องคือ true
isFalsy() ยืนยันว่าหัวข้อนั้นไม่ถูกต้อง ค่าที่ไม่ถูกต้องคือ undefined, null, false, NaN, 0 และ '' (สตริงว่างเปล่า)
isTruthy() ยืนยันว่าเนื้อหาตรงตามความจริง ค่าที่ไม่ถูกต้องคือ undefined, null, false, NaN, 0 และ '' (สตริงว่างเปล่า)
isNaN() ยืนยันว่าวัตถุเป็นค่า NaN
isNotNaN() ยืนยันว่าวัตถุเป็นค่าใดๆ ที่ไม่ใช่ NaN
isInfinity() ยืนยันว่าวัตถุเป็นค่าอนันต์ที่เป็นบวกหรือลบ
isNotInfinity() ยืนยันว่าวัตถุเป็นค่าใดๆ ที่นอกเหนือจากค่าอนันต์ที่เป็นบวกหรือลบ
isEqualTo(expected) ยืนยันว่าวัตถุเท่ากับค่าที่ระบุ นี่คือการเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบวนรอบ
isNotEqualTo(expected) ยืนยันว่าวัตถุไม่เท่ากับค่าที่ระบุ นี่คือการเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบวนรอบ
isAnyOf(...expected) ยืนยันว่าวัตถุเท่ากับค่าที่ระบุค่าใดค่าหนึ่ง นี่คือการเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบวนรอบ
isNoneOf(...expected) ยืนยันว่าวัตถุไม่เท่ากับค่าใดๆ ที่ระบุ นี่คือการเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบวนซ้ำ
isStrictlyEqualTo(expected) ยืนยันว่าวัตถุตรงกับค่าที่ระบุอย่างเคร่งครัด (===)
isNotStrictlyEqualTo(expected) ยืนยันว่าวัตถุไม่เท่ากัน (!==) กับค่าที่ระบุ
isGreaterThan(expected) ยืนยันว่าวัตถุมากกว่า (>) ค่าที่กำหนดในการเปรียบเทียบตามลำดับ
isGreaterThanOrEqualTo(expected) ยืนยันว่าวัตถุมากกว่าหรือเท่ากับ (>=) ค่าที่ระบุในการเปรียบเทียบตามลำดับ
isLessThan(expected) ยืนยันว่าวัตถุน้อยกว่า (<) ค่าที่กำหนดในการเปรียบเทียบตามลำดับ
isLessThanOrEqualTo(expected) ยืนยันว่าวัตถุดังกล่าวน้อยกว่าหรือเท่ากับ (<=) ค่าที่กำหนดในการเปรียบเทียบตามลำดับ
contains(...expected) ยืนยันว่าเรื่องเป็นอาร์เรย์หรือสตริงที่มีค่าที่ระบุทั้งหมดโดยเรียงลำดับอย่างไรก็ได้ นี่คือการเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบวนรอบ
doesNotContain(...expected) ยืนยันว่าเรื่องเป็นอาร์เรย์หรือสตริงที่ไม่มีค่าที่ระบุ นี่คือการเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบวนรอบ
containsExactly(...expected) ยืนยันว่าหัวเรื่องเป็นอาร์เรย์ที่มีค่าที่ระบุทั้งหมด โดยเรียงลำดับอย่างไรก็ได้ และไม่มีค่าอื่นๆ นี่คือการเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบวนรอบ
doesNotContainExactly(...expected) ยืนยันว่าเรื่องเป็นอาร์เรย์ที่มีชุดค่าที่แตกต่างจากค่าที่ระบุ โดยเรียงลำดับอย่างไรก็ได้ นี่คือการเปรียบเทียบค่า ไม่ใช่การเปรียบเทียบข้อมูลอ้างอิง ระบบจะเปรียบเทียบเนื้อหาของออบเจ็กต์และอาร์เรย์แบบวนรอบ
hasLength(expected) ยืนยันว่าหัวเรื่องเป็นอาร์เรย์หรือสตริงที่มีความยาวตามที่กำหนด การยืนยันจะล้มเหลวเสมอหากค่าไม่ใช่อาร์เรย์หรือสตริง
isEmpty() ยืนยันว่าเรื่องเป็นอาร์เรย์หรือสตริงที่ว่างเปล่า (length = 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 ที่แซนด์บ็อกซ์ได้ API จำลองปลอดภัยที่จะใช้ในโค้ดของเทมเพลต แต่จะไม่สามารถใช้งานได้เมื่อไม่ได้อยู่ในโหมดทดสอบ ระบบจะรีเซ็ตการจำลองก่อนทำการทดสอบแต่ละครั้ง

ไวยากรณ์

mock(apiName, returnValue);

พารามิเตอร์

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

ตัวอย่าง

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

runCode

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

ไวยากรณ์

runCode(data)

พารามิเตอร์

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

ผลลัพธ์

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

ตัวอย่าง

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