Quyền đối với mẫu tuỳ chỉnh

Tài liệu này trình bày các quyền đối với mẫu tuỳ chỉnh trên web.


Mỗi quyền là:

  • Được các API yêu cầu kiểm tra.
  • Tự động phát hiện trong JavaScript trong hộp cát, dựa trên các API được sử dụng. Điều này xảy ra khi bạn chỉnh sửa trong trình chỉnh sửa mẫu tuỳ chỉnh (để có vòng phản hồi nhanh) và khi biên dịch mã (để xác thực rằng các quyền chính xác được thực thi).
  • Có thể chỉnh sửa trong trình chỉnh sửa mẫu tuỳ chỉnh để quyền này trở nên cụ thể hơn.
  • Có thể truy vấn trong JavaScript trong hộp cát thông qua API queryPermission.

access_globals

Tên hiển thị: Truy cập vào các biến toàn cục

Mô tả: Cho phép truy cập vào một biến toàn cục (có thể bao gồm các API nhạy cảm).

Cấu hình: Danh sách các khoá có thể truy cập. Mỗi khoá là một đường dẫn được phân tách bằng dấu chấm. Ví dụ: foo.bar Mã thông báo đầu tiên trong mỗi đường dẫn không được là khoá được xác định trước trên phạm vi toàn cầu của trình duyệt cũng như không được là từ khoá JavaScript. Có các hộp đánh dấu đọc, ghi và thực thi điều chỉnh quyền truy cập.

Bắt buộc theo: setInWindow, copyFromWindow, callInWindow, createQueue, createArgumentsQueue

Chữ ký truy vấn: queryPermission('access_globals', 'read', <key to read from>) hoặc queryPermission('access_globals', 'write', <key to write to>) hoặc queryPermission('access_globals', 'readwrite', <key to read and write>) hoặc queryPermission('access_globals', 'execute', <key of function to execute>)

Lưu ý: Kiểm soát xem một mẫu tuỳ chỉnh có thể đọc và/hoặc ghi vào các giá trị toàn cục hay không.

Mã ví dụ

const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
  const dataLayerPush = createQueue('dataLayer');
}

access_local_storage

Tên hiển thị: Truy cập vào bộ nhớ trên thiết bị

Mô tả: Cho phép truy cập vào các khoá được chỉ định trong bộ nhớ cục bộ.

Cấu hình: Danh sách các khoá bộ nhớ cục bộ có thể truy cập. Đây là một mảng khoá đơn giản, không có ký tự đại diện. Có các hộp đánh dấu đọc và ghi điều chỉnh quyền truy cập.

Bắt buộc theo: localStorage

Chữ ký truy vấn: queryPermission('access_local_storage', 'read', <key to read from>) hoặc queryPermission('access_local_storage', 'write', <key to write to>) hoặc queryPermission('access_local_storage', 'readwrite', <key to read and write>)

Mã ví dụ

const queryPermission = require('queryPermission');
const localStorage = require('localStorage');
const key = 'my_key';
if (queryPermission('access_local_storage', 'read', key)) {
  const value = localStorage.getItem(key);
}

access_template_storage

Tên hiển thị: Truy cập vào bộ nhớ mẫu

Mô tả: Cho phép truy cập vào bộ nhớ tạm thời cho các mẫu có thể tồn tại trong suốt thời gian hoạt động của trang.

Cấu hình: Không có

Bắt buộc theo: templateStorage

Chữ ký truy vấn: queryPermission('access_template_storage')

Mã ví dụ

const queryPermission = require('queryPermission');
const templateStorage = require('templateStorage');
const key = 'my_key';
if (queryPermission('access_template_storage')) {
  const value = templateStorage.getItem(key);
}

get_cookies

Tên hiển thị: Đọc(các) giá trị cookie

Mô tả: Đọc các giá trị của cookie có tên được chỉ định.

Cấu hình: Danh sách tên của các cookie được phép đọc.

Bắt buộc theo: getCookieValues

Chữ ký truy vấn: queryPermission('get_cookies', <name>)

Lưu ý: Quy định xem có thể đọc cookie hay không, tuỳ thuộc vào tên của cookie.

Mã ví dụ

const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
  cookieValues = getCookieValues(cookieName);
}

get_referrer

Tên hiển thị: Đọc URL liên kết giới thiệu

Mô tả: Cho phép quyền đọc đối với các phần được thu hẹp của tệp giới thiệu.

Cấu hình: Các boolean sau đây sẽ quản lý phần nào của liên kết giới thiệu có thể được đọc. Bạn chỉ có thể đọc một phần nhất định của tệp giới thiệu nếu phần tương ứng là true. Phương thức gọi có thể gọi getReferrerUrl mà không cần chỉ định thành phần để lấy URL đầy đủ của trình giới thiệu nếu tất cả các boolean này được đặt thành true. Nếu bạn không đặt giá trị, giá trị mặc định sẽ là all. Nếu bạn đặt một giá trị, thì giá trị đó phải là một mảng các thành phần, trong đó mỗi thành phần là một trong những thành phần sau: protocol, host, port, path, query hoặc extension.

queryKeys: Nếu bạn chọn truy vấn, thì tác giả mẫu có thể hạn chế thêm tập hợp khoá truy vấn mà họ có thể đọc. Đây là một mảng khoá đơn giản, không có ký tự đại diện.

Bắt buộc theo: getReferrerUrl, getReferrerQueryParameters

Chữ ký truy vấn: queryPermission('get_referrer', <url_component>)

Mã ví dụ

const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
  referrer = getReferrerUrl('queryParams');
}

get_url

Tên hiển thị: Đọc URL

Nội dung mô tả: Trả về một phần hoặc toàn bộ URL của trang hiện tại.

Cấu hình: Các boolean sau đây sẽ quản lý phần nào của URL có thể được đọc. Bạn chỉ có thể đọc một phần nhất định của URL nếu phần tương ứng là đúng. Phương thức gọi có thể gọi getUrl mà không cần chỉ định thành phần để lấy toàn bộ URL nếu và chỉ khi tất cả các boolean này được đặt thành true. Nếu bạn không đặt giá trị nào, giá trị mặc định sẽ là all. Nếu bạn đặt một giá trị, thì giá trị đó phải là một mảng các thành phần, trong đó mỗi thành phần là một trong những thành phần sau: protocol, host, port, path, query, extension hoặc fragment.

queryKeys: Nếu bạn chọn truy vấn, thì tác giả mẫu có thể hạn chế thêm tập hợp khoá truy vấn mà họ có thể đọc. Đây là một mảng khoá đơn giản, không có ký tự đại diện.

Bắt buộc theo: getUrl

Chữ ký truy vấn: queryPermission('get_url', <optional url component>, <optional query key>)

Nếu được cung cấp, thành phần URL phải là một trong các thành phần 'protocol', 'host', 'port', 'path', 'query', 'extension', 'fragment'. Nếu bị bỏ qua, truy vấn quyền sẽ là yêu cầu truy cập vào toàn bộ URL.

Nếu được cung cấp, khoá truy vấn phải là đối số chuỗi truy vấn mà mã mẫu muốn đọc.

Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đọc từ vị trí hiện tại hay không. Cho phép giới hạn ở một phần cụ thể của vị trí.

Mã ví dụ

const queryPermission = require('queryPermission');
const getUrl = require('getUrl');
if (queryPermission('get_url', 'query', 'gclid')) {
  const gclid = getUrl('query', false, null, 'gclid');
}

inject_hidden_iframe

Tên hiển thị: Chèn các iframe ẩn

Mô tả: Chèn iframe ẩn bằng một URL cụ thể.

Cấu hình: Danh sách mẫu URL

Bắt buộc theo: injectHiddenIframe

Chữ ký truy vấn: queryPermission('inject_hidden_iframe', <url>)

Lưu ý: Quy định xem một mẫu tuỳ chỉnh có thể chèn iFrame ẩn hay không và từ nguồn gốc nào có thể chèn.

Mã ví dụ

const queryPermission = require('queryPermission');
const injectHiddenIframe = require('injectHiddenIframe');
const url = 'https://www.example.com/iframes';
if (queryPermission('inject_hidden_iframe', url)) {
  injectHiddenIframe(url);
}

inject_script

Tên hiển thị: Chèn tập lệnh

Mô tả: Chèn một tập lệnh vào trang.

Cấu hình: Danh sách mẫu URL

Bắt buộc theo: injectScript

Chữ ký truy vấn: queryPermission('inject_script', <url>)

Lưu ý: Quy định xem một mẫu tuỳ chỉnh có thể chèn JavaScript hay không và từ nguồn gốc nào.

Mã ví dụ

const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
  injectScript(url);
}

ghi nhật ký

Tên hiển thị: Ghi nhật ký vào bảng điều khiển

Mô tả: Ghi nhật ký vào Developer Console và chế độ xem trước của GTM.

Cấu hình: Tuỳ chọn bật tính năng ghi nhật ký trong phiên bản chính thức. Theo mặc định, chỉ bật tính năng ghi nhật ký trong chế độ gỡ lỗi/xem trước. Nếu quyền bị từ chối, logToConsole sẽ không gửi lỗi mà sẽ chặn thông báo nhật ký.

Bắt buộc theo: logToConsole

Chữ ký truy vấn: queryPermission('logging')

Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể ghi nhật ký vào bảng điều khiển dành cho nhà phát triển hay không.

Mã ví dụ

const queryPermission = require('queryPermission');
const logToConsole = require('logToConsole');
// Note that it's fine to call log, since the log call will be ignored if
// logging isn't permitted in the current environment.
logToConsole('diagnostic info');

read_data_layer

Tên hiển thị: Đọc lớp dữ liệu

Mô tả: Đọc dữ liệu từ dataLayer.

Cấu hình: Tập hợp các biểu thức khớp khoá, trong đó một khớp khoá có thể là một loạt tham chiếu có dấu chấm ở đầu, với một ký tự đại diện ở cuối. Biểu thức khớp khoá điều chỉnh những thuộc tính có thể đọc được từ lớp dữ liệu.

Bắt buộc theo: copyFromDataLayer

Chữ ký truy vấn: queryPermission('read_data_layer', <data layer key to read from>)

Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đọc từ lớp dữ liệu hay không.

Mã ví dụ

const queryPermission = require('queryPermission');
const copyFromDataLayer = require('copyFromDataLayer');
const dlKey = 'foo.bar';
if (queryPermission('read_data_layer', dlKey)) {
  const dlContents = copyFromDataLayer(dlKey);
}

read_character_set

Tên hiển thị: Đọc bộ ký tự trong tài liệu

Mô tả: Đọc document.characterSet.

Cấu hình: Không có

Bắt buộc theo: readCharacterSet

Chữ ký truy vấn: queryPermission('read_character_set')

Lưu ý: Quy định xem mẫu tuỳ chỉnh có thể đọc document.characterSet hay không.

Mã ví dụ

const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
  const characterSet = readCharacterSet();
}

read_container_data

Tên hiển thị: Đọc dữ liệu vùng chứa

Mô tả: Đọc dữ liệu về vùng chứa.

Cấu hình: Không có

Bắt buộc theo: getContainerVersion

Chữ ký truy vấn: queryPermission('read_container_data')

Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đọc dữ liệu về vùng chứa hay không.

Mã ví dụ

const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
  version = getContainerVersion();
}

read_event_metadata

Tên hiển thị: Đọc siêu dữ liệu sự kiện

Mô tả: Đọc siêu dữ liệu sự kiện trong Lệnh gọi lại sự kiện

Cấu hình: Không có

Bắt buộc theo: addEventCallback

Chữ ký truy vấn: queryPermission('read_event_metadata')

Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đọc siêu dữ liệu sự kiện trong các lệnh gọi lại hay không.

Mã ví dụ

const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
  addEventCallback((containerId, eventMetadata) => {
    // Read event metadata.
  });
}

read_title

Tên hiển thị: Đọc tựa đề tài liệu

Mô tả: Đọc document.title.

Cấu hình: Không có

Bắt buộc theo: readTitle

Chữ ký truy vấn: queryPermission('read_title')

Lưu ý: Quy định xem một mẫu tuỳ chỉnh có thể đọc document.title hay không.

Mã ví dụ

const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
  const title = readTitle();
}

send_pixel

Tên hiển thị: Gửi pixel

Mô tả: Gửi yêu cầu GET đến một URL đã chỉ định. Không xử lý phản hồi.

Cấu hình: Danh sách mẫu URL được phép.

Bắt buộc theo: sendPixel

Chữ ký truy vấn: queryPermission('send_pixel', <url>)

Lưu ý: Quy định xem một mẫu tuỳ chỉnh có thể gửi yêu cầu GET hay không và gửi đến nguồn gốc nào.

Mã ví dụ

const queryPermission = require('queryPermission');
const sendPixel = require('sendPixel');
const url = 'https://www.example.com?foo=3';
if (queryPermission('send_pixel', url)) {
  sendPixel(url);
}

set_cookies

Tên hiển thị: Đặt cookie

Mô tả: Đặt một cookie có tên và thông số đã chỉ định.

Cấu hình: Bảng tên cookie được phép, mỗi tên có các quy định hạn chế không bắt buộc về tên, miền, đường dẫn, thuộc tính secure và thời gian hết hạn.

Bắt buộc theo: setCookie

Chữ ký truy vấn: queryPermission('set_cookies', <name>, <options>)

Lưu ý: Quy định xem có thể ghi cookie hay không, tuỳ thuộc vào tên cookie, miền, đường dẫn, thuộc tính secure và thời gian hết hạn.

Mã ví dụ

const queryPermission = require('queryPermission');
const setCookie = require('setCookie');
const options = {
  'domain': 'www.example.com',
  'path': '/',
  'max-age': 60*60*24*365,
  'secure': true
};
if (queryPermission('set_cookies', 'info', options)) {
  setCookie('info', 'xyz', options);
}

write_data_layer

Tên hiển thị: Ghi lớp dữ liệu

Mô tả: Ghi dữ liệu vào dataLayer.

Cấu hình: Tập hợp các biểu thức khớp khoá, trong đó một khớp khoá có thể là một loạt tham chiếu dấu chấm ở đầu, với một ký tự đại diện ở cuối. Biểu thức so khớp khoá điều chỉnh những thuộc tính nào có thể ghi vào lớp dữ liệu.

Bắt buộc theo: gtagSet

Chữ ký truy vấn: queryPermission('write_data_layer', <data layer key to write from>)

Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể ghi vào lớp dữ liệu hay không.

Mã ví dụ

const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
  gtagSet({dlKey: 'baz'});
}