Files
gh-henkisdabro-wookstar-cla…/skills/gtm-custom-templates/references/template-examples.md
2025-11-29 18:32:45 +08:00

3.0 KiB

Custom Template Examples

Tag Template Examples

Simple Pixel Tag Template

// Code section
const sendPixel = require('sendPixel');
const encodeUriComponent = require('encodeUriComponent');
const getUrl = require('getUrl');

const pixelUrl = 'https://example.com/pixel?'
  + 'page=' + encodeUriComponent(getUrl())
  + '&event=' + encodeUriComponent(data.eventName);

sendPixel(pixelUrl, data.gtmOnSuccess, data.gtmOnFailure);

HTTP Request Tag Template

// Code section
const sendHttpRequest = require('sendHttpRequest');
const JSON = require('JSON');

const postBody = JSON.stringify({
  event: data.eventName,
  userId: data.userId,
  timestamp: Date.now()
});

const options = {
  headers: {'Content-Type': 'application/json'},
  method: 'POST',
};

sendHttpRequest(data.endpoint, options, postBody)
  .then(data.gtmOnSuccess)
  .catch(data.gtmOnFailure);

Variable Template Examples

// Code section
const getCookieValues = require('getCookieValues');
const cookieName = data.cookieName;
const cookies = getCookieValues(cookieName);

if (cookies.length > 0) {
  return cookies[0];
}

return data.defaultValue;

LocalStorage Variable Template

// Code section
const localStorage = require('localStorage');
const key = data.localStorageKey;

return localStorage.getItem(key) || data.defaultValue;

Custom JavaScript Function Variable

// Code section
const makeTableMap = require('makeTableMap');
const lookupTable = makeTableMap(data.tableInput, 'input', 'output');

const inputValue = data.inputVariable;
return lookupTable[inputValue] || data.defaultValue;

Common Patterns

Error Handling

const sendHttpRequest = require('sendHttpRequest');
const logToConsole = require('logToConsole');

sendHttpRequest(url, options)
  .then(response => {
    logToConsole('Success:', response);
    data.gtmOnSuccess();
  })
  .catch(error => {
    logToConsole('Error:', error);
    data.gtmOnFailure();
  });

Conditional Logic

const getType = require('getType');

if (getType(data.value) === 'undefined') {
  return data.defaultValue;
}

if (data.value > 0) {
  return 'positive';
} else if (data.value < 0) {
  return 'negative';
} else {
  return 'zero';
}

Data Validation

const makeNumber = require('makeNumber');
const makeString = require('makeString');

// Validate and convert input
const numericValue = makeNumber(data.inputValue);

if (numericValue === undefined) {
  logToConsole('Invalid numeric input');
  data.gtmOnFailure();
  return;
}

// Continue with validated value
const result = numericValue * 2;
data.gtmOnSuccess();

Placeholder for Additional Examples

This file will be enhanced with:

  • Server-side client template examples
  • Complex permission configurations
  • Field validation patterns
  • Real-world use cases
  • Community template patterns

Status: ⚠️ To be enhanced with documentation extraction