-
Notifications
You must be signed in to change notification settings - Fork 69
Expand file tree
/
Copy pathconfig.json
More file actions
60 lines (60 loc) · 3.58 KB
/
config.json
File metadata and controls
60 lines (60 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
{
"plugin_type": "analytics_integration",
"name": "Custom Adobe Analytics [List Var]",
"form_schema": [
{
"default_value": "list1",
"field_type": "dropdown",
"name": "list",
"label": "List Var",
"options": {
"choices": [
{
"value": "list1",
"label": "list1"
},
{
"value": "list2",
"label": "list2"
},
{
"value": "list3",
"label": "list3"
},
{
"value": "list4",
"label": "list4"
},
{
"value": "list5",
"label": "list5"
},
{
"value": "list6",
"label": "list6"
},
{
"value": "list7",
"label": "list7"
},
{
"value": "list8",
"label": "list8"
},
{
"value": "list9",
"label": "list9"
},
{
"value": "list10",
"label": "list10"
}
]
}
}
],
"description": "Track this campaign in Adobe Analytics using a list variable.",
"options": {
"track_layer_decision": "var decisionString = window.optimizely.get('state').getDecisionString({\n campaignId: campaignId,\n shouldCleanString: true\n});\nvar redirectInfo = window.optimizely.get('state').getRedirectInfo();\n\nvar csvToArray = function(csv) {\n return csv.length ? (csv || '').split(/,\\s*/) : [];\n}\n\n// Public Methods\nvar adobeIntegrator = {\n campaignDecisions: [],\n appendToProperty: function(sVariable, listVar, decision) {\n if (typeof sVariable[listVar] === 'undefined') sVariable[listVar] = ''; //default to string format\n \n if (sVariable[listVar].constructor === Array) { // this listVarVar was previously defined as a string\n sVariable[listVar] = sVariable[listVar].concat(decision);\n } \n else { // this listVarVar was previously defined as a string\n sVariable[listVar] = csvToArray(sVariable[listVar]);\n sVariable[listVar].push(decision);\n sVariable[listVar] = sVariable[listVar].join(',');\n }\n },\n populateTrackerClearDecisions: function(sVariable) {\n var _this = this;\n this.campaignDecisions.forEach(function(i) {\n _this.appendToProperty(sVariable, i.listVar, i.decision);\n });\n this.campaignDecisions = [];\n },\n // Accepts \"s\" variable as a param and assigns eVars to object. \n assignCampaigns: function(sVariable) {\n if (!!redirectInfo) sVariable.referrer = redirectInfo.referrer;\n this.populateTrackerClearDecisions(sVariable);\n },\n // Accepts \"s\" variable as a param and assigns eVars to object, then dispatches custom link tracking.\n trackDelayedCampaigns: function(sVariable) {\n var _this = this;\n this.campaignDecisions.forEach(function(i) {\n _this.appendToProperty(sVariable, 'linkTrackVars', i.listVar);\n }); \n this.populateTrackerClearDecisions(sVariable);\n sVariable.tl(true, \"o\", \"OptimizelyLayerDecision\");\n }\n};\n\n// Scopes `campaignArray` to Optimizely object.\nif (!window.optimizely.get(\"custom/adobeIntegrator\")) {\n window.optimizely.push({\n type: \"registerModule\",\n moduleName: \"adobeIntegrator\",\n module: adobeIntegrator\n });\n}\n\n// Failing Audiences returns `null`, failing Traffic Allocation returns `undefined` for decisionString.\nif (!!decisionString) window.optimizely.get(\"custom/adobeIntegrator\").campaignDecisions.push({\n 'listVar': extension.list,\n 'decision': decisionString\n});"
}
}