맞춤 템플릿 API

핵심 API

이 API는 샌드박스 처리된 JavaScript와 함께 사용되어 Google 태그 관리자에서 맞춤 템플릿을 빌드합니다. 각 API는 require() 문으로 추가됩니다. 예:

const myAPI = require('myAPI');

addConsentListener

지정된 동의 유형의 상태가 변경될 때 실행할 리스너 함수를 등록합니다.

지정된 동의 유형의 상태가 '거부'에서 '동의'로, 또는 '동의'에서 '거부'로 변경될 때마다 지정된 리스너가 호출됩니다. 상태가 없는 동의 유형은 '동의'로 간주되므로 설정되지 않은 동의 유형이 '동의'로 업데이트되는 경우 리스너가 호출되지 않습니다. 리스너 함수는 코드가 적절한 횟수로 실행되도록 합니다.

예:

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 함수 지정된 동의 유형의 상태가 변경될 때 실행할 함수입니다.

리스너가 호출되면 변경되는 동의 유형과 동의 유형의 새로운 값이 전달됩니다.

매개변수 유형 설명
consentType 문자열 변경되는 동의 유형입니다.
granted 불리언 지정된 동의 유형이 '동의'로 변경되는 경우 true인 불리언입니다.

관련 권한

동의 유형에 대한 읽기 액세스 권한이 있는 access_consent 권한


addEventCallback

addEventCallback API를 사용하면 이벤트 종료 시 호출되는 콜백 함수를 등록할 수 있습니다. 콜백은 이벤트의 모든 태그가 실행되었거나 페이지 내 이벤트 시간 제한에 도달한 경우 호출됩니다. 콜백에는 두 개의 값(함수를 호출하는 컨테이너의 ID, 이벤트에 대한 정보가 포함된 객체)이 전달됩니다.

문법

addEventCallback(callback)

매개변수

매개변수 유형 설명
callback 함수 이벤트 종료 시 호출할 함수입니다.

eventData 객체에는 다음 데이터가 포함됩니다.

키 이름 유형 설명
tags 배열 태그 데이터 객체의 배열입니다. 이벤트 중에 실행된 모든 태그는 이 배열에 항목이 있습니다. 태그 데이터 객체에는 태그의 ID(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)을 만들 수 있습니다. fromPath에 있는 window 객체의 값을 toPath에 있는 window 객체의 키에 할당합니다. 성공하면 true, 그렇지 않으면 false를 반환합니다.

문법

aliasInWindow(toPath, fromPath)

매개변수

매개변수 유형 설명
toPath 문자열 복사한 값을 붙여넣어야 하는 window 객체로의 경로로, 점으로 구분됩니다. 마지막 구성요소에까지 이르는 경로의 모든 구성요소가 window 객체에 이미 존재해야 합니다.
fromPath 문자열 복사할 값의 점으로 구분된 window의 경로입니다. 이 값이 없으면 작업이 실패합니다.

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

관련 권한

toPathfromPath 모두에 access_globals가 필요합니다. toPath에는 쓰기 액세스 권한이 필요하고 fromPath에는 읽기 액세스 권한이 필요합니다.


callInWindow

정책에 따라 window 객체 외부의 경로에서 함수를 호출할 수 있습니다. 지정된 인수로 window의 지정된 경로에서 함수를 호출하고 값을 반환합니다. 반환 유형을 샌드박스 처리된 JavaScript에서 지원되는 유형에 직접 매핑할 수 없는 경우 undefined가 반환됩니다. 샌드박스 처리된 JavaScript에서 지원되는 여덟 가지 유형은 null, undefined, boolean, number, string, Array, Object, function입니다. 지정된 경로가 존재하지 않거나 함수를 참조하지 않는 경우 undefined가 반환됩니다.

문법

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

매개변수

매개변수 유형 설명
pathToFunction 문자열 호출할 window의 함수에 대한 경로로, 점으로 구분됩니다.
args * 함수에 전달할 인수입니다.

관련 권한

execute 권한이 사용 설정된 access_globals입니다.


callLater

함수 호출이 비동기식으로 발생하도록 예약합니다. 이 함수는 현재 코드가 반환된 후에 호출됩니다. setTimeout(<function>, 0)과 동일합니다.

문법

callLater(function)

매개변수

매개변수 유형 설명
function 함수 호출할 함수입니다.

copyFromDataLayer

데이터 영역의 키에 현재 할당된 값을 반환합니다. 원시 유형, 함수 또는 객체 리터럴인 경우 지정된 키의 값, 그렇지 않으면 undefined입니다.

문법

copyFromDataLayer(key[, dataLayerVersion])

매개변수

매개변수 유형 설명
key 문자열 'a.b.c' 형식의 키입니다.
dataLayerVersion 숫자 데이터 영역 버전입니다(선택사항). 기본값은 2입니다. 1 값은 사용하지 않는 것이 좋습니다.

관련 권한

read_data_layer


copyFromWindow

window 객체에서 변수를 복사합니다. window의 값을 샌드박스 처리된 자바스크립트에서 지원되는 유형에 직접 매핑할 수 없는 경우 undefined가 반환됩니다. 샌드박스 처리된 자바스크립트에서 지원되는 여덟 가지 유형은 null, undefined, boolean, number, string, Array, Object, function입니다. 가져온 값 및 변환된 값을 반환합니다.

문법

copyFromWindow(key)

매개변수

매개변수 유형 설명
key 문자열 값을 복사할 window의 키입니다.

관련 권한

access_globals


createArgumentsQueue

큐가 필요한 태그 솔루션을 지원하기 위해 인수 객체로 채워진 큐를 만듭니다.

fnKey 인수(createQueue와 동일한 시맨틱스)를 사용하여 전역 범위(예: window)에 함수를 만듭니다. 함수가 생성되면 이 API는 arrayKey 인수를 사용하여 window에 배열을 만듭니다(존재하지 않는 경우).

fnKey에 생성된 함수가 호출되면 인수 객체를 arrayKey에 생성된 배열에 푸시합니다. API의 반환 값은 fnKey에서 생성된 함수입니다.

이 함수에는 access_globals 권한에서 fnKeyarrayKey에 대한 읽기 및 쓰기 설정이 필요합니다.

예:

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에 배열을 만들고(아직 없는 경우) 이 배열에 값을 푸시하는 함수를 반환합니다.

이 함수에는 access_globals 권한에서 arrayKey에 대한 읽기 및 쓰기 설정이 필요합니다.

예:

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 문자열 encodeUri() 또는 다른 방법으로 인코딩된 URI입니다.

관련 권한

없음.


decodeUriComponent

제공된 URI 구성요소에서 인코딩된 문자를 디코딩합니다. 디코딩된 URI 구성요소를 나타내는 문자열을 반환합니다. 잘못된 입력이 제공되면 undefined를 반환합니다.

예:

const decode = require('decodeUriComponent');

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

문법

decodeUriComponent(encoded_uri_component)

매개변수

매개변수 유형 설명
encoded_uri_component 문자열 encodeUriComponent() 또는 다른 방법으로 인코딩된 URI 구성요소입니다.

관련 권한

없음.


encodeUri

특수문자를 이스케이프 처리하여 인코딩된 URI(Uniform Resource Identifier)를 반환합니다. URI로 인코딩되어 제공된 문자열을 나타내는 문자열을 반환합니다. 잘못된 입력(론 서로게이트)이 제공되면 undefined를 반환합니다.

예:

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

문법

encodeUri(uri)

매개변수

매개변수 유형 설명
uri 문자열 전체 URI입니다.

관련 권한

없음.


encodeUriComponent

특수문자를 이스케이프 처리하여 인코딩된 URI(Uniform Resource Identifier)를 반환합니다. 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 불리언 자바스크립트의 decodeURIComponent()로 쿠키 값을 디코딩할지 여부를 지정합니다. 기본값은 true입니다.

관련 권한

get_cookies


getQueryParameters

현재 URL의 queryKey에 대한 첫 번째 또는 모든 매개변수를 반환합니다. 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_urlquery 구성요소를 허용해야 하며 허용된 쿼리 키에 queryKey를 지정하거나 모든 쿼리 키를 허용해야 합니다.


getReferrerQueryParameters

getReferrerQueryParameters API는 현재 URL 대신 리퍼러에서 작동한다는 점을 제외하고 getQueryParameters와 같은 방식으로 작동합니다. 지정된 리퍼러의 queryKey에 대한 첫 번째 또는 모든 매개변수를 반환합니다. queryKey의 첫 번째 값 또는 queryKey의 값 배열을 반환합니다.

문법

getReferrerQueryParameters(queryKey[, retrieveAll])

매개변수

매개변수 유형 설명
queryKey 문자열 쿼리 매개변수에서 읽을 키입니다.
retrieveAll 불리언 모든 값을 가져올지 여부를 나타냅니다.

예를 들어 리퍼러 URL이 https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo인 경우 다음과 같습니다.

  • getReferrerQueryParameters('var') == 'foo'
  • getReferrerQueryParameters('var', false) == 'foo'
  • getReferrerQueryParameters('var', null) == 'foo'
  • getReferrerQueryParameters('var', true) == ['foo', 'foo2', 'foo']

관련 권한

get_referrerquery 구성요소를 허용해야 하며 허용된 쿼리 키에 queryKey를 지정하거나 모든 쿼리 키를 허용해야 합니다.


getReferrerUrl

구성요소 유형이 지정된 경우 API는 리퍼러의 문서 객체를 읽고 리퍼러의 일부를 나타내는 문자열을 반환합니다. 구성요소가 지정되지 않은 경우 전체 리퍼러 URL이 반환됩니다.

문법

getReferrerUrl([component])

매개변수

매개변수 유형 설명
component 문자열 URL에서 반환할 구성요소입니다. protocol, host, port, path, query, extension 중 하나일 수 있습니다. componentundefined, null이거나 이러한 구성요소 중 하나와 일치하지 않으면 전체 URL이 반환됩니다.

관련 권한

get_referrerquery 구성요소를 허용해야 하며 허용된 쿼리 키에 queryKey를 지정하거나 모든 쿼리 키를 허용해야 합니다.


getTimestamp

지원 중단되었습니다. getTimestampMillis를 사용하는 것이 좋습니다.

Unix 에포크 이후 Date.now()에서 반환된 현재 시간(밀리초)을 나타내는 숫자를 반환합니다.

문법

getTimestamp();

관련 권한

없음.


getTimestampMillis

Unix 에포크 이후 Date.now()에서 반환된 현재 시간(밀리초)을 나타내는 숫자를 반환합니다.

문법

getTimestampMillis();

관련 권한

없음.


getType

지정된 값의 유형을 설명하는 문자열을 반환합니다. typeof와 달리 getTypearrayobject를 구분합니다.

문법

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 값이 반환됩니다.

관련 권한

get_url


gtagSet

현재 이벤트 및 현재 이벤트에서 트리거한 태그의 처리가 완료되거나 태그 처리 제한 시간에 도달한 후 최대한 빨리 처리할 수 있도록 gtag 설정 명령어를 데이터 영역에 푸시합니다. 업데이트는 이 컨테이너에서 데이터 영역 목록에 저장된 항목보다 먼저 처리됩니다.

예를 들어 동의 초기화에서 실행된 태그에 의해 호출되는 경우 초기화 이벤트가 처리되기 전에 업데이트가 적용됩니다. ads_data_redactiontrue 또는 false로 설정하거나 url_passthroughtrue 또는 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) 의 경우 'abc'에 대한 쓰기 권한을 확인합니다.

입력 객체에 주기가 있는 경우 같은 객체에 도달하기 전의 키만 확인합니다.


injectHiddenIframe

페이지에 보이지 않는 iframe을 추가합니다.

콜백은 함수 인스턴스로 제공되며 콜백으로 전달되는 자바스크립트 함수로 래핑됩니다.

문법

injectHiddenIframe(url, onSuccess)

매개변수

매개변수 유형 설명
url 문자열 iframe의 src 속성 값으로 사용할 URL입니다.
onSuccess 함수 프레임이 성공적으로 로드된 경우 호출됩니다.

관련 권한

inject_hidden_iframe


injectScript

지정된 URL을 비동기식으로 로드하기 위해 페이지에 스크립트 태그를 추가합니다. 콜백은 함수 인스턴스로 제공되며 콜백으로 전달되는 자바스크립트 함수로 래핑됩니다.

문법

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

매개변수

매개변수 유형 설명
url 문자열 삽입될 스크립트의 주소입니다.
onSuccess 함수 스크립트가 성공적으로 로드된 경우 호출됩니다.
onFailure 함수 스크립트를 로드하지 못한 경우 호출됩니다.
cacheToken 문자열 지정된 URL이 캐시되어야 함을 나타내는 데 사용되는 문자열입니다(선택사항). 이 값이 지정된 경우 자바스크립트를 요청하기 위해 하나의 스크립트 요소만 생성됩니다. 로드하려고 더 시도하면 스크립트가 로드될 때까지 지정된 onSuccessonFailure 메서드가 큐에 추가됩니다.

관련 권한

inject_script


isConsentGranted

지정된 동의 유형이 granted인 경우 true를 반환합니다.

동의 유형이 'granted'로 설정되거나 전혀 설정되지 않은 경우 특정한 동의 유형에 대한 동의는 granted로 간주됩니다. 동의 유형이 다른 값으로 설정된 경우 granted가 아닌 것으로 간주됩니다

태그 설정을 위한 태그 관리자 사용자 인터페이스는 항상 실행할 수 있는 옵션을 제공합니다. 항상 실행 옵션이 사용 설정된 태그에서 이 API를 사용하면 granted로 간주되고 실제 동의 상태에 관계없이 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

지정된 값을 숫자로 변환합니다.

문법

makeNumber(value)

매개변수

매개변수 유형 설명
value 모두 변환할 값입니다.

관련 권한

없음.


makeString

지정된 값을 문자열로 반환합니다.

문법

makeString(value)

매개변수

매개변수 유형 설명
value 모두 변환할 값입니다.

관련 권한

없음.


makeTableMap

열이 두 개인 간단한 표 객체를 Map으로 변환합니다. 열이 두 개인 SIMPLE_TABLE 템플릿 필드를 더 관리하기 쉬운 형식으로 변경하는 데 사용됩니다.

예를 들어 이 함수는 다음 표 객체를

[
  {'key': 'k1', 'value': 'v1'},
  {'key': 'k2', 'value': 'v2'}
]

지도로 변환할 수 있습니다.

{
  'k1': 'v1',
  'k2': 'v2'
}

객체를 반환합니다. 키-값 쌍이 객체에 추가된 경우 Map, 그렇지 않은 경우 null을 반환합니다.

문법

makeTableMap(tableObj, keyColumnName, valueColumnName)

매개변수

매개변수 유형 설명
tableObj 목록 변환할 표 객체입니다. 각 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() 동작을 제공합니다. 이 메서드는 지정된 객체의 자체 enumerable 속성 이름의 배열을 for...in... 루프와 동일한 순서로 반환합니다. 입력 값이 객체가 아니면 입력이 객체로 변환됩니다.

values() 메서드는 표준 라이브러리 Object.values() 동작을 제공합니다. 이 함수는 지정된 객체의 자체 enumerable 속성 값의 배열을 for...in... 루프와 동일한 순서로 반환합니다. 입력 값이 객체가 아니면 입력이 객체로 변환됩니다.

entries() 메서드는 표준 라이브러리 Object.entries() 동작을 제공합니다. 이 메서드는 지정된 객체의 자체 enumerable 속성 [key, value] 쌍의 배열을 for...in... 루프와 동일한 순서로 반환합니다. 입력 값이 객체가 아니면 입력이 객체로 변환됩니다.

freeze() 메서드는 표준 라이브러리 Object.freeze() 동작을 제공합니다. 고정된 객체는 더 이상 변경할 수 없습니다. 객체를 고정하면 객체에 새 속성이 추가되지 않고 기존 속성이 삭제되지 않으며 기존 속성 값이 변경되지 않습니다. freeze()는 전달된 것과 동일한 객체를 반환합니다. 원시 또는 null 인수는 고정된 객체인 것처럼 처리되며 반환됩니다.

delete() 메서드는 표준 라이브러리 삭제 연산자 동작을 제공합니다. 객체가 고정되지 않은 경우 객체에서 지정된 키를 삭제합니다. 표준 라이브러리 delete 연산자와 마찬가지로, 두 번째 입력 값(keyToDelete)이 존재하지 않는 키를 지정하더라도 첫 번째 입력 값(objectInput)이 고정되지 않은 객체인 경우 true를 반환합니다. 그 외 모든 경우에는 false를 반환합니다. 하지만 표준 라이브러리 delete 연산자와는 다음과 같은 점에서 다릅니다.

  • 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는 잘못된 형식의 URL에 대해 undefined를 반환합니다. 올바른 형식을 갖춘 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

허용된 권한 및 좁혀진 권한을 쿼리합니다. 불리언(권한이 부여된 경우 true, 그렇지 않은 경우 false)을 반환합니다.

문법

queryPermission(permission, functionArgs*)

매개변수

매개변수 유형 설명
permission 문자열 권한의 이름입니다.
functionArgs 모두 함수 인수는 쿼리되는 권한에 따라 달라집니다. 아래의 함수 인수를 참고하세요.

함수 인수

sendPixel, injectScript, injectHiddenIframe: 두 번째 매개변수는 URL 문자열이어야 합니다.

writeGlobals, readGlobals: 두 번째 매개변수는 쓰거나 읽는 키여야 합니다.

readUrl: 전체 URL을 읽을 수 있는지 쿼리하기 위한 추가 인수가 필요하지 않습니다. 지정된 구성요소를 읽을 수 있는지 쿼리하려면 구성요소 이름을 두 번째 인수로 전달하세요.

if (queryPermission('readUrl','port')) {
  // read the port
}

특정 쿼리 키를 읽을 수 있는지 확인하려면 쿼리 키를 세 번째 매개변수로 전달하세요.

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

지정된 URL 엔드포인트에 GET 요청을 합니다.

문법

sendPixel(url, onSuccess, onFailure)

매개변수

매개변수 유형 설명
url 문자열 픽셀을 보낼 위치입니다.
onSuccess 함수 픽셀이 로드되는 경우 호출됩니다. 참고: 요청이 성공적으로 전송되더라도 브라우저에서 onSuccess를 실행하려면 유효한 이미지 응답이 필요할 수 있습니다.
onFailure 함수 픽셀을 로드하지 못한 경우 호출됩니다. 참고: 요청이 성공적으로 전송되더라도 서버에서 유효한 이미지 응답을 반환하지 않으면 onFailure가 실행될 수 있습니다.

관련 권한

send_pixel


setCookie

지정된 이름, 값 및 옵션으로 쿠키를 설정하거나 삭제합니다.

문법

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

매개변수

매개변수 유형 설명
name 문자열 쿠키의 이름입니다.
value 문자열 쿠키의 값입니다.
options 객체 Domain, Path, Expires, Max-Age, Secure, SameSite 속성을 지정합니다. 아래 옵션을 참고하세요.
encode 불리언 쿠키 값을 자바스크립트의 encodeURIComponent()로 인코딩할 것인지 여부를 지정합니다. 기본값은 true입니다.

옵션

  • Domain: options['domain'] 속성에 의해 설정됩니다(있는 경우). 문서 위치를 기반으로 가장 광범위한 도메인을 사용하여 쿠키를 작성하려면 이 값을 'auto'로 설정하세요. 이 방법이 실패하면 계속해서 하위 도메인을 좁히려고 시도합니다. 모든 방법이 실패하면 도메인 없이 쿠키를 작성하려고 시도합니다. 값이 설정되지 않으면 도메인이 지정되지 않은 쿠키를 작성하려고 시도합니다. 참고: 도메인이 지정되지 않은 쿠키가 document.cookie에 작성되면 사용자 에이전트가 쿠키 도메인을 현재 문서 위치의 호스트로 기본 설정합니다.
  • Path: options['path']에 의해 설정됩니다(있는 경우). 경로가 지정되지 않은 쿠키가 document.cookie에 작성되면 사용자 에이전트가 쿠키의 경로를 현재 문서 위치의 경로로 기본 설정합니다.
  • Max-Age: options['max-age']에 의해 설정됩니다(있는 경우).
  • Expires: options['expires']에 의해 설정됩니다(있는 경우). 있는 경우 UTC 형식의 날짜 문자열이어야 합니다. Date.toUTCString()을 사용하여 이 매개변수의 Date 형식을 지정할 수 있습니다.
  • Secure: 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 숫자 밀리초 값을 지정하여 데이터가 전송될 때까지의 대기 시간을 관리합니다. 비동기식으로 로드되는 동의 도구와 함께 사용됩니다.

관련 권한

consentSettings 객체의 모든 동의 유형에 대한 쓰기 액세스 권한이 있는 access_consent 권한입니다.


setInWindow

지정된 키에서 window에 지정된 값을 설정합니다. 기본적으로 값이 이미 있으면 이 메서드는 window에 값을 설정하지 않습니다. 기존 값의 존재 여부와 관계없이 window에 값을 설정하려면 overrideExistingtrue로 설정하세요. 불리언(값이 설정된 경우 true, 그렇지 않은 경우 false)을 반환합니다.

문법

setInWindow(key, value, overrideExisting)

매개변수

매개변수 유형 설명
key 문자열 값을 배치할 window의 키입니다.
value * window에서 설정할 값입니다.
overrideExisting 불리언 값의 존재 여부와 관계없이 window에 값을 설정해야 함을 나타내는 플래그입니다.

관련 권한

access_globals


sha256

options 객체가 다른 출력 인코딩을 지정하지 않은 경우 입력의 SHA-256 다이제스트를 계산하고 base64로 인코딩된 다이제스트와 함께 콜백을 호출합니다.

예:

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 함수 options 객체가 다른 출력 인코딩을 지정하지 않는 경우 base64로 인코딩된 결과 다이제스트와 함께 호출됩니다.
onFailure 함수 다이제스트를 계산하는 동안 오류가 발생하거나 브라우저에서 sha256를 기본적으로 지원허지 않는 경우 호출됩니다. 콜백은 오류의 이름이 포함된 객체와 메시지를 사용하여 호출됩니다.
options 객체 출력 인코딩을 지정하기 위한 옵션 객체입니다(선택사항). 지정된 경우 객체에 값이 base64 또는 hexoutputEncoding 키를 포함해야 합니다.

관련 권한

없음.


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 문자열 각 동의 유형의 값은 'granted' 또는 'denied'로 설정할 수 있습니다. 'granted' 이외의 값은 'denied'로 간주됩니다. 값을 'undefined'로 설정해도 이전 값에는 영향을 미치지 않습니다.

관련 권한

consentSettings 객체의 모든 동의 유형에 대한 쓰기 액세스 권한이 있는 access_consent 권한입니다.


테스트 API

이 API는 샌드박스 처리된 자바스크립트 테스트와 함께 사용되어 Google 태그 관리자에서 맞춤 템플릿을 위한 테스트를 빌드합니다. 이러한 테스트 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는 Google의 [Truth] 라이브러리를 모델로 하며, 대상의 값에 대해 유연하게 어설션하는 데 사용할 수 있는 객체를 반환합니다. 어설션이 실패하면 즉시 테스트가 중지되고 실패로 표시됩니다. 하지만 한 테스트에 실패해도 다른 테스트 사례는 영향을 받지 않습니다.

문법

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() 대상이 비어 있는(길이 = 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는 템플릿 코드에서 안전하게 사용할 수 있지만 테스트 모드가 아닌 경우에는 작동하지 않습니다. 모의 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'});