350 строки
9.3 KiB
Smarty
350 строки
9.3 KiB
Smarty
___TERMS_OF_SERVICE___
|
|
|
|
By creating or modifying this file you agree to Google Tag Manager's Community
|
|
Template Gallery Developer Terms of Service available at
|
|
https://developers.google.com/tag-manager/gallery-tos (or such other URL as
|
|
Google may provide), as modified from time to time.
|
|
|
|
|
|
___INFO___
|
|
|
|
{
|
|
"type": "TAG",
|
|
"id": "cvt_temp_public_id",
|
|
"version": 1,
|
|
"securityGroups": [],
|
|
"displayName": "Microsoft Clarity - Official",
|
|
"categories": ["ANALYTICS", "HEAT_MAP", "SESSION_RECORDING"],
|
|
"brand": {
|
|
"id": "Microsoft",
|
|
"displayName": "Microsoft",
|
|
"thumbnail": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEUAAADyUCJ/ugAApO//uQD///8951e2AAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfkCgUWITsZUDiiAAAAS0lEQVRo3u3MQQ3AIAAEsMuCAGZhCkiwgH9NOLj3Hq2A5q1m8nxVBAKBQCAQCAQCgUAgEPSAP9jVSsapBAKBQCAQCAQCgUAgEPTgAruK0CdlWNSzAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTEwLTA1VDIyOjMzOjU5KzAwOjAwPT1n8QAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0xMC0wNVQyMjozMzo1OSswMDowMExg300AAAAASUVORK5CYII\u003d"
|
|
},
|
|
"description": "Clarity is a user behavior analytics tool, which helps you understand how users are interacting with your website. Supported features include:\nSession Recordings\nHeatmaps\nML Insights",
|
|
"containerContexts": [
|
|
"WEB"
|
|
]
|
|
}
|
|
|
|
|
|
___TEMPLATE_PARAMETERS___
|
|
|
|
[
|
|
{
|
|
"type": "TEXT",
|
|
"name": "projectId",
|
|
"displayName": "Clarity Project Id",
|
|
"simpleValueType": true,
|
|
"help": "Copy your clarity project Id here. You can find it in the project Url from the browser. Example: https://clarity.microsoft.com/projects/view/\"projectId\"/",
|
|
"valueValidators": [
|
|
{
|
|
"type": "NON_EMPTY",
|
|
"errorMessage": "You must provide a clarity project Id"
|
|
},
|
|
{
|
|
"type": "REGEX",
|
|
"args": [
|
|
"[0-9a-z]+"
|
|
],
|
|
"errorMessage": "Incorrect project Id. You can find it in the project Url from the browser. Example: https://clarity.microsoft.com/projects/view/\"projectId\"/"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "GROUP",
|
|
"name": "advanced",
|
|
"displayName": "Custom Options",
|
|
"groupStyle": "ZIPPY_CLOSED",
|
|
"subParams": [
|
|
{
|
|
"type": "GROUP",
|
|
"name": "custom_id",
|
|
"displayName": "Custom Identifiers",
|
|
"groupStyle": "NO_ZIPPY",
|
|
"subParams": [
|
|
{
|
|
"type": "TEXT",
|
|
"name": "userId",
|
|
"displayName": "Custom Id",
|
|
"simpleValueType": true,
|
|
"help": "Custom id such as an email, can help you view the user journey across browsers and devices",
|
|
"valueHint": "user@domain.com"
|
|
},
|
|
{
|
|
"type": "TEXT",
|
|
"name": "sessionId",
|
|
"displayName": "Session Id",
|
|
"simpleValueType": true,
|
|
"help": "Custom session id to help you filter for this session later",
|
|
"enablingConditions": [
|
|
{
|
|
"paramName": "userId",
|
|
"paramValue": "",
|
|
"type": "PRESENT"
|
|
}
|
|
],
|
|
"valueHint": "custom-session-id"
|
|
},
|
|
{
|
|
"type": "TEXT",
|
|
"name": "pageId",
|
|
"displayName": "Page Id",
|
|
"simpleValueType": true,
|
|
"help": "Custom page id to help you filter for this page later",
|
|
"enablingConditions": [
|
|
{
|
|
"paramName": "userId",
|
|
"paramValue": "",
|
|
"type": "PRESENT"
|
|
}
|
|
],
|
|
"valueHint": "custom-page-id"
|
|
},
|
|
{
|
|
"type": "TEXT",
|
|
"name": "friendlyName",
|
|
"displayName": "Friendly Name",
|
|
"simpleValueType": true,
|
|
"help": "Friendly name for the user",
|
|
"enablingConditions": [
|
|
{
|
|
"paramName": "userId",
|
|
"paramValue": "",
|
|
"type": "PRESENT"
|
|
}
|
|
],
|
|
"valueHint": "Mona"
|
|
}
|
|
],
|
|
"help": "Custom Identifiers are informational data values about site visitors",
|
|
"enablingConditions": []
|
|
},
|
|
{
|
|
"type": "SIMPLE_TABLE",
|
|
"name": "custom_tag",
|
|
"displayName": "Custom Tag",
|
|
"simpleTableColumns": [
|
|
{
|
|
"defaultValue": "",
|
|
"displayName": "Key",
|
|
"name": "key",
|
|
"type": "TEXT",
|
|
"valueHint": ""
|
|
},
|
|
{
|
|
"defaultValue": "",
|
|
"displayName": "Value",
|
|
"name": "value",
|
|
"type": "TEXT",
|
|
"valueValidators": [
|
|
{
|
|
"type": "STRING_LENGTH",
|
|
"args": [
|
|
1,
|
|
255
|
|
]
|
|
}
|
|
],
|
|
"valueHint": ""
|
|
}
|
|
],
|
|
"help": "Custom tags are customizable filters that allow you to analyze recordings and heatmaps in different directions",
|
|
"valueValidators": []
|
|
}
|
|
]
|
|
}
|
|
]
|
|
|
|
|
|
___SANDBOXED_JS_FOR_WEB_TEMPLATE___
|
|
|
|
// Require the necessary APIs
|
|
const injectScript = require('injectScript');
|
|
const queryPermission = require('queryPermission');
|
|
const createArgumentsQueue = require('createArgumentsQueue');
|
|
const encodeUri = require('encodeUri');
|
|
//const log = require('logToConsole');
|
|
|
|
// Create clarity const
|
|
const clarity = createArgumentsQueue('clarity', 'clarity.q');
|
|
|
|
const customTags = data.custom_tag || [];
|
|
const friendlyName = data.friendlyName || '';
|
|
const sessionId = data.sessionId || '';
|
|
const pageId = data.pageId || '';
|
|
|
|
// Reconstruct customer clarity script URL
|
|
const url = "https://www.clarity.ms/tag/"+encodeUri(data.projectId)+"?ref=gtm";
|
|
|
|
// Handle Success
|
|
const onCustomerSuccess = () => {
|
|
data.gtmOnSuccess();
|
|
};
|
|
|
|
// Handle Failure
|
|
const onCustomerFailure = () => {
|
|
data.gtmOnFailure();
|
|
};
|
|
|
|
|
|
// If the URL input by the user matches the permissions set for the template,
|
|
// inject the script with the onSuccess and onFailure methods as callbacks.
|
|
if (queryPermission('inject_script', "https://www.clarity.ms")) {
|
|
for(var i=0; i < customTags.length; i++){
|
|
clarity('set', customTags[i].key, customTags[i].value);
|
|
}
|
|
|
|
if(data.userId){
|
|
clarity("identify", data.userId, sessionId, pageId, friendlyName);
|
|
}
|
|
|
|
injectScript(url, onCustomerSuccess, onCustomerFailure);
|
|
|
|
} else {
|
|
data.gtmOnFailure();
|
|
}
|
|
|
|
|
|
___WEB_PERMISSIONS___
|
|
|
|
[
|
|
{
|
|
"instance": {
|
|
"key": {
|
|
"publicId": "inject_script",
|
|
"versionId": "1"
|
|
},
|
|
"param": [
|
|
{
|
|
"key": "urls",
|
|
"value": {
|
|
"type": 2,
|
|
"listItem": [
|
|
{
|
|
"type": 1,
|
|
"string": "https://www.clarity.ms/*"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"clientAnnotations": {
|
|
"isEditedByUser": true
|
|
},
|
|
"isRequired": true
|
|
},
|
|
{
|
|
"instance": {
|
|
"key": {
|
|
"publicId": "access_globals",
|
|
"versionId": "1"
|
|
},
|
|
"param": [
|
|
{
|
|
"key": "keys",
|
|
"value": {
|
|
"type": 2,
|
|
"listItem": [
|
|
{
|
|
"type": 3,
|
|
"mapKey": [
|
|
{
|
|
"type": 1,
|
|
"string": "key"
|
|
},
|
|
{
|
|
"type": 1,
|
|
"string": "read"
|
|
},
|
|
{
|
|
"type": 1,
|
|
"string": "write"
|
|
},
|
|
{
|
|
"type": 1,
|
|
"string": "execute"
|
|
}
|
|
],
|
|
"mapValue": [
|
|
{
|
|
"type": 1,
|
|
"string": "clarity"
|
|
},
|
|
{
|
|
"type": 8,
|
|
"boolean": true
|
|
},
|
|
{
|
|
"type": 8,
|
|
"boolean": true
|
|
},
|
|
{
|
|
"type": 8,
|
|
"boolean": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": 3,
|
|
"mapKey": [
|
|
{
|
|
"type": 1,
|
|
"string": "key"
|
|
},
|
|
{
|
|
"type": 1,
|
|
"string": "read"
|
|
},
|
|
{
|
|
"type": 1,
|
|
"string": "write"
|
|
},
|
|
{
|
|
"type": 1,
|
|
"string": "execute"
|
|
}
|
|
],
|
|
"mapValue": [
|
|
{
|
|
"type": 1,
|
|
"string": "clarity.q"
|
|
},
|
|
{
|
|
"type": 8,
|
|
"boolean": true
|
|
},
|
|
{
|
|
"type": 8,
|
|
"boolean": true
|
|
},
|
|
{
|
|
"type": 8,
|
|
"boolean": true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"clientAnnotations": {
|
|
"isEditedByUser": true
|
|
},
|
|
"isRequired": true
|
|
}
|
|
]
|
|
|
|
|
|
___TESTS___
|
|
|
|
scenarios: []
|
|
|
|
|
|
___NOTES___
|
|
|
|
Created on 2/2/2021, 12:41:15 PM
|
|
|
|
|