factorial-pixel 0.7.8 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +5 -1
- package/.tool-versions +2 -0
- package/CHANGELOG.md +4 -0
- package/__tests__/pixelUrl.spec.js +32 -0
- package/__tests__/requestParameters.spec.js +17 -0
- package/build/app.js +36 -4
- package/coverage/clover.xml +46 -31
- package/coverage/coverage-final.json +3 -3
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/index.js.html +1 -1
- package/coverage/lcov-report/pixelUrl.js.html +54 -12
- package/coverage/lcov-report/requestParameters.js.html +52 -16
- package/coverage/lcov.info +69 -44
- package/package.json +1 -1
package/.eslintrc.js
CHANGED
package/.tool-versions
ADDED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## `0.8.0`
|
|
4
|
+
|
|
5
|
+
Adds support for UTM parameters (utm_source, utm_medium, utm_campaign, utm_content, utm_term). UTM parameters are automatically extracted from the URL and sent to the pixel endpoint with proper URL encoding to handle special characters.
|
|
6
|
+
|
|
3
7
|
## `0.7.8`
|
|
4
8
|
|
|
5
9
|
Adds tracking for FBCLID
|
|
@@ -65,4 +65,36 @@ describe('pixelUrl', () => {
|
|
|
65
65
|
)
|
|
66
66
|
})
|
|
67
67
|
})
|
|
68
|
+
|
|
69
|
+
describe('with UTM parameters', () => {
|
|
70
|
+
it('returns the data with all UTM params', () => {
|
|
71
|
+
html = "<!DOCTYPE html><html lang='en'></html>"
|
|
72
|
+
dom = new JSDOM(html, {
|
|
73
|
+
url: 'https://factorialhr.com/blog?utm_source=google&utm_medium=cpc&utm_campaign=Q1_Brand&utm_content=ad_1&utm_term=hr_software'
|
|
74
|
+
})
|
|
75
|
+
expect(pixelUrl(dom.window.document)).toEqual(
|
|
76
|
+
'/internal/pixel?mc=&referer=&language=en&landing_page=https://factorialhr.com/blog&utm_source=google&utm_medium=cpc&utm_campaign=Q1_Brand&utm_content=ad_1&utm_term=hr_software'
|
|
77
|
+
)
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
it('encodes UTM parameters with special characters', () => {
|
|
81
|
+
html = "<!DOCTYPE html><html lang='en'></html>"
|
|
82
|
+
dom = new JSDOM(html, {
|
|
83
|
+
url: 'https://factorialhr.com/blog?utm_source=google&utm_campaign=Q1%20Brand%20Campaign&utm_content=ad%20%231'
|
|
84
|
+
})
|
|
85
|
+
expect(pixelUrl(dom.window.document)).toEqual(
|
|
86
|
+
'/internal/pixel?mc=&referer=&language=en&landing_page=https://factorialhr.com/blog&utm_source=google&utm_campaign=Q1%2520Brand%2520Campaign&utm_content=ad%2520%25231'
|
|
87
|
+
)
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
it('combines UTMs with gclid', () => {
|
|
91
|
+
html = "<!DOCTYPE html><html lang='en'></html>"
|
|
92
|
+
dom = new JSDOM(html, {
|
|
93
|
+
url: 'https://factorialhr.com/blog?utm_source=google&utm_medium=cpc&utm_campaign=Q1&gclid=test_click_123'
|
|
94
|
+
})
|
|
95
|
+
expect(pixelUrl(dom.window.document)).toEqual(
|
|
96
|
+
'/internal/pixel?mc=&referer=&language=en&landing_page=https://factorialhr.com/blog&gclid=test_click_123&utm_source=google&utm_medium=cpc&utm_campaign=Q1'
|
|
97
|
+
)
|
|
98
|
+
})
|
|
99
|
+
})
|
|
68
100
|
})
|
|
@@ -22,6 +22,11 @@ const domWithFbclid = new JSDOM(html, {
|
|
|
22
22
|
referrer: 'https://google.com?query=cómo hacer nóminas'
|
|
23
23
|
})
|
|
24
24
|
|
|
25
|
+
const domWithUtms = new JSDOM(html, {
|
|
26
|
+
url: 'https://factorialhr.com/team/césar?utm_source=google&utm_medium=cpc&utm_campaign=Q1_Brand&utm_content=ad_variant_1&utm_term=hr_software',
|
|
27
|
+
referrer: 'https://google.com?query=cómo hacer nóminas'
|
|
28
|
+
})
|
|
29
|
+
|
|
25
30
|
describe('requestParameters', () => {
|
|
26
31
|
it('returns the data', () => {
|
|
27
32
|
expect(requestParameters(dom.window.document)).toEqual({
|
|
@@ -53,4 +58,16 @@ describe('requestParameters', () => {
|
|
|
53
58
|
fbclid: '123'
|
|
54
59
|
})
|
|
55
60
|
})
|
|
61
|
+
|
|
62
|
+
it('returns the data with UTM parameters', () => {
|
|
63
|
+
expect(requestParameters(domWithUtms.window.document)).toEqual({
|
|
64
|
+
landingPage: 'https://factorialhr.com/team/c%25C3%25A9sar',
|
|
65
|
+
language: 'en',
|
|
66
|
+
utm_source: 'google',
|
|
67
|
+
utm_medium: 'cpc',
|
|
68
|
+
utm_campaign: 'Q1_Brand',
|
|
69
|
+
utm_content: 'ad_variant_1',
|
|
70
|
+
utm_term: 'hr_software'
|
|
71
|
+
})
|
|
72
|
+
})
|
|
56
73
|
})
|
package/build/app.js
CHANGED
|
@@ -118,12 +118,17 @@ exports.default = function (document) {
|
|
|
118
118
|
var _requestParameters = (0, _requestParameters3.default)(document),
|
|
119
119
|
language = _requestParameters.language,
|
|
120
120
|
landingPage = _requestParameters.landingPage,
|
|
121
|
+
mc = _requestParameters.mc,
|
|
121
122
|
gclid = _requestParameters.gclid,
|
|
122
123
|
aclid = _requestParameters.aclid,
|
|
123
|
-
fbclid = _requestParameters.fbclid
|
|
124
|
+
fbclid = _requestParameters.fbclid,
|
|
125
|
+
utm_source = _requestParameters.utm_source,
|
|
126
|
+
utm_medium = _requestParameters.utm_medium,
|
|
127
|
+
utm_campaign = _requestParameters.utm_campaign,
|
|
128
|
+
utm_content = _requestParameters.utm_content,
|
|
129
|
+
utm_term = _requestParameters.utm_term;
|
|
124
130
|
|
|
125
|
-
var
|
|
126
|
-
var attributes = ['mc=' + (mc ? mc[1] : ''), 'referer=' + encodeURI(document.referrer), 'language=' + language, 'landing_page=' + landingPage];
|
|
131
|
+
var attributes = ['mc=' + (mc || ''), 'referer=' + encodeURI(document.referrer), 'language=' + language, 'landing_page=' + landingPage];
|
|
127
132
|
|
|
128
133
|
if (gclid) {
|
|
129
134
|
attributes.push('gclid=' + gclid);
|
|
@@ -134,6 +139,21 @@ exports.default = function (document) {
|
|
|
134
139
|
if (fbclid) {
|
|
135
140
|
attributes.push('fbclid=' + fbclid);
|
|
136
141
|
}
|
|
142
|
+
if (utm_source) {
|
|
143
|
+
attributes.push('utm_source=' + encodeURIComponent(utm_source));
|
|
144
|
+
}
|
|
145
|
+
if (utm_medium) {
|
|
146
|
+
attributes.push('utm_medium=' + encodeURIComponent(utm_medium));
|
|
147
|
+
}
|
|
148
|
+
if (utm_campaign) {
|
|
149
|
+
attributes.push('utm_campaign=' + encodeURIComponent(utm_campaign));
|
|
150
|
+
}
|
|
151
|
+
if (utm_content) {
|
|
152
|
+
attributes.push('utm_content=' + encodeURIComponent(utm_content));
|
|
153
|
+
}
|
|
154
|
+
if (utm_term) {
|
|
155
|
+
attributes.push('utm_term=' + encodeURIComponent(utm_term));
|
|
156
|
+
}
|
|
137
157
|
|
|
138
158
|
return '/internal/pixel?' + attributes.join('&');
|
|
139
159
|
};
|
|
@@ -175,16 +195,28 @@ function requestParameters(document) {
|
|
|
175
195
|
var search = document.location.search.substring(1);
|
|
176
196
|
var landing = encodeURI(path);
|
|
177
197
|
var locale = document.querySelector('html').lang.split('-')[0];
|
|
198
|
+
var mc = findPropertyInParams(search, 'mc');
|
|
178
199
|
var gclid = findPropertyInParams(search, 'gclid');
|
|
179
200
|
var aclid = findPropertyInParams(search, 'aclid');
|
|
180
201
|
var fbclid = findPropertyInParams(search, 'fbclid');
|
|
202
|
+
var utm_source = findPropertyInParams(search, 'utm_source');
|
|
203
|
+
var utm_medium = findPropertyInParams(search, 'utm_medium');
|
|
204
|
+
var utm_campaign = findPropertyInParams(search, 'utm_campaign');
|
|
205
|
+
var utm_content = findPropertyInParams(search, 'utm_content');
|
|
206
|
+
var utm_term = findPropertyInParams(search, 'utm_term');
|
|
181
207
|
|
|
182
208
|
return {
|
|
183
209
|
language: locale,
|
|
184
210
|
landingPage: landing,
|
|
211
|
+
mc: mc,
|
|
185
212
|
gclid: gclid,
|
|
186
213
|
aclid: aclid,
|
|
187
|
-
fbclid: fbclid
|
|
214
|
+
fbclid: fbclid,
|
|
215
|
+
utm_source: utm_source,
|
|
216
|
+
utm_medium: utm_medium,
|
|
217
|
+
utm_campaign: utm_campaign,
|
|
218
|
+
utm_content: utm_content,
|
|
219
|
+
utm_term: utm_term
|
|
188
220
|
};
|
|
189
221
|
}
|
|
190
222
|
|
package/coverage/clover.xml
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<coverage generated="
|
|
3
|
-
<project timestamp="
|
|
4
|
-
<metrics statements="
|
|
5
|
-
<file name="index.js" path="/Users/
|
|
2
|
+
<coverage generated="1767626490511" clover="3.2.0">
|
|
3
|
+
<project timestamp="1767626490511" name="All files">
|
|
4
|
+
<metrics statements="48" coveredstatements="38" conditionals="27" coveredconditionals="18" methods="5" coveredmethods="4" elements="80" coveredelements="60" complexity="0" loc="48" ncloc="48" packages="1" files="3" classes="3">
|
|
5
|
+
<file name="index.js" path="/Users/joan.silio/code/factorial-pixel/src/index.js">
|
|
6
6
|
<metrics statements="10" coveredstatements="0" conditionals="8" coveredconditionals="0" methods="1" coveredmethods="0"/>
|
|
7
7
|
<line num="1" count="0" type="cond" truecount="0" falsecount="4"/>
|
|
8
8
|
<line num="9" count="0" type="stmt"/>
|
|
@@ -15,34 +15,49 @@
|
|
|
15
15
|
<line num="17" count="0" type="stmt"/>
|
|
16
16
|
<line num="18" count="0" type="stmt"/>
|
|
17
17
|
</file>
|
|
18
|
-
<file name="pixelUrl.js" path="/Users/
|
|
19
|
-
<metrics statements="
|
|
20
|
-
<line num="4" count="
|
|
21
|
-
<line num="7" count="
|
|
22
|
-
<line num="
|
|
23
|
-
<line num="15" count="
|
|
24
|
-
<line num="
|
|
25
|
-
<line num="18" count="
|
|
26
|
-
<line num="
|
|
27
|
-
<line num="21" count="
|
|
28
|
-
<line num="
|
|
29
|
-
<line num="
|
|
18
|
+
<file name="pixelUrl.js" path="/Users/joan.silio/code/factorial-pixel/src/pixelUrl.js">
|
|
19
|
+
<metrics statements="19" coveredstatements="19" conditionals="18" coveredconditionals="18" methods="1" coveredmethods="1"/>
|
|
20
|
+
<line num="4" count="8" type="stmt"/>
|
|
21
|
+
<line num="7" count="8" type="stmt"/>
|
|
22
|
+
<line num="14" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
23
|
+
<line num="15" count="2" type="stmt"/>
|
|
24
|
+
<line num="17" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
25
|
+
<line num="18" count="1" type="stmt"/>
|
|
26
|
+
<line num="20" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
27
|
+
<line num="21" count="1" type="stmt"/>
|
|
28
|
+
<line num="23" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
29
|
+
<line num="24" count="3" type="stmt"/>
|
|
30
|
+
<line num="26" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
31
|
+
<line num="27" count="2" type="stmt"/>
|
|
32
|
+
<line num="29" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
33
|
+
<line num="30" count="3" type="stmt"/>
|
|
34
|
+
<line num="32" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
35
|
+
<line num="33" count="2" type="stmt"/>
|
|
36
|
+
<line num="35" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
37
|
+
<line num="36" count="1" type="stmt"/>
|
|
38
|
+
<line num="39" count="8" type="stmt"/>
|
|
30
39
|
</file>
|
|
31
|
-
<file name="requestParameters.js" path="/Users/
|
|
32
|
-
<metrics statements="
|
|
33
|
-
<line num="2" count="
|
|
34
|
-
<line num="4" count="
|
|
35
|
-
<line num="5" count="
|
|
36
|
-
<line num="7" count="
|
|
37
|
-
<line num="10" count="
|
|
38
|
-
<line num="14" count="
|
|
39
|
-
<line num="15" count="
|
|
40
|
-
<line num="16" count="
|
|
41
|
-
<line num="17" count="
|
|
42
|
-
<line num="18" count="
|
|
43
|
-
<line num="19" count="
|
|
44
|
-
<line num="20" count="
|
|
45
|
-
<line num="
|
|
40
|
+
<file name="requestParameters.js" path="/Users/joan.silio/code/factorial-pixel/src/requestParameters.js">
|
|
41
|
+
<metrics statements="19" coveredstatements="19" conditionals="1" coveredconditionals="0" methods="3" coveredmethods="3"/>
|
|
42
|
+
<line num="2" count="117" type="stmt"/>
|
|
43
|
+
<line num="4" count="117" type="stmt"/>
|
|
44
|
+
<line num="5" count="234" type="stmt"/>
|
|
45
|
+
<line num="7" count="234" type="stmt"/>
|
|
46
|
+
<line num="10" count="117" type="stmt"/>
|
|
47
|
+
<line num="14" count="13" type="stmt"/>
|
|
48
|
+
<line num="15" count="13" type="stmt"/>
|
|
49
|
+
<line num="16" count="13" type="stmt"/>
|
|
50
|
+
<line num="17" count="13" type="stmt"/>
|
|
51
|
+
<line num="18" count="13" type="stmt"/>
|
|
52
|
+
<line num="19" count="13" type="stmt"/>
|
|
53
|
+
<line num="20" count="13" type="stmt"/>
|
|
54
|
+
<line num="21" count="13" type="stmt"/>
|
|
55
|
+
<line num="22" count="13" type="stmt"/>
|
|
56
|
+
<line num="23" count="13" type="stmt"/>
|
|
57
|
+
<line num="24" count="13" type="stmt"/>
|
|
58
|
+
<line num="25" count="13" type="stmt"/>
|
|
59
|
+
<line num="26" count="13" type="stmt"/>
|
|
60
|
+
<line num="28" count="13" type="stmt"/>
|
|
46
61
|
</file>
|
|
47
62
|
</metrics>
|
|
48
63
|
</project>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{"/Users/
|
|
2
|
-
,"/Users/
|
|
3
|
-
,"/Users/
|
|
1
|
+
{"/Users/joan.silio/code/factorial-pixel/src/index.js": {"path":"/Users/joan.silio/code/factorial-pixel/src/index.js","statementMap":{"0":{"start":{"line":1,"column":29},"end":{"line":1,"column":50}},"1":{"start":{"line":1,"column":68},"end":{"line":1,"column":101}},"2":{"start":{"line":1,"column":140},"end":{"line":1,"column":194}},"3":{"start":{"line":9,"column":13},"end":{"line":9,"column":55}},"4":{"start":{"line":10,"column":19},"end":{"line":10,"column":69}},"5":{"start":{"line":11,"column":13},"end":{"line":11,"column":58}},"6":{"start":{"line":13,"column":10},"end":{"line":13,"column":39}},"7":{"start":{"line":14,"column":0},"end":{"line":14,"column":58}},"8":{"start":{"line":15,"column":0},"end":{"line":15,"column":14}},"9":{"start":{"line":16,"column":0},"end":{"line":16,"column":15}},"10":{"start":{"line":17,"column":0},"end":{"line":17,"column":28}},"11":{"start":{"line":18,"column":0},"end":{"line":18,"column":31}}},"fnMap":{"0":{"name":"_interopRequireDefault","decl":{"start":{"line":1,"column":111},"end":{"line":1,"column":133}},"loc":{"start":{"line":1,"column":139},"end":{"line":1,"column":195}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":147},"end":{"line":1,"column":193}},"type":"cond-expr","locations":[{"start":{"line":1,"column":171},"end":{"line":1,"column":174}},{"start":{"line":1,"column":177},"end":{"line":1,"column":193}}],"line":1},"1":{"loc":{"start":{"line":1,"column":147},"end":{"line":1,"column":168}},"type":"binary-expr","locations":[{"start":{"line":1,"column":147},"end":{"line":1,"column":150}},{"start":{"line":1,"column":154},"end":{"line":1,"column":168}}],"line":1},"2":{"loc":{"start":{"line":10,"column":19},"end":{"line":10,"column":69}},"type":"cond-expr","locations":[{"start":{"line":10,"column":28},"end":{"line":10,"column":62}},{"start":{"line":10,"column":65},"end":{"line":10,"column":69}}],"line":10},"3":{"loc":{"start":{"line":11,"column":13},"end":{"line":11,"column":58}},"type":"binary-expr","locations":[{"start":{"line":11,"column":13},"end":{"line":11,"column":25}},{"start":{"line":11,"column":29},"end":{"line":11,"column":58}}],"line":11}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0},"f":{"0":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]}}
|
|
2
|
+
,"/Users/joan.silio/code/factorial-pixel/src/pixelUrl.js": {"path":"/Users/joan.silio/code/factorial-pixel/src/pixelUrl.js","statementMap":{"0":{"start":{"line":4,"column":123},"end":{"line":6,"column":3}},"1":{"start":{"line":7,"column":21},"end":{"line":12,"column":3}},"2":{"start":{"line":14,"column":2},"end":{"line":16,"column":3}},"3":{"start":{"line":15,"column":4},"end":{"line":15,"column":37}},"4":{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},"5":{"start":{"line":18,"column":4},"end":{"line":18,"column":37}},"6":{"start":{"line":20,"column":2},"end":{"line":22,"column":3}},"7":{"start":{"line":21,"column":4},"end":{"line":21,"column":39}},"8":{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},"9":{"start":{"line":24,"column":4},"end":{"line":24,"column":67}},"10":{"start":{"line":26,"column":2},"end":{"line":28,"column":3}},"11":{"start":{"line":27,"column":4},"end":{"line":27,"column":67}},"12":{"start":{"line":29,"column":2},"end":{"line":31,"column":3}},"13":{"start":{"line":30,"column":4},"end":{"line":30,"column":71}},"14":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"15":{"start":{"line":33,"column":4},"end":{"line":33,"column":69}},"16":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"17":{"start":{"line":36,"column":4},"end":{"line":36,"column":63}},"18":{"start":{"line":39,"column":2},"end":{"line":39,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":15},"end":{"line":3,"column":16}},"loc":{"start":{"line":3,"column":27},"end":{"line":40,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":10},"end":{"line":8,"column":18}},"type":"binary-expr","locations":[{"start":{"line":8,"column":10},"end":{"line":8,"column":12}},{"start":{"line":8,"column":16},"end":{"line":8,"column":18}}],"line":8},"1":{"loc":{"start":{"line":14,"column":2},"end":{"line":16,"column":3}},"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":16,"column":3}},{"start":{"line":14,"column":2},"end":{"line":16,"column":3}}],"line":14},"2":{"loc":{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},{"start":{"line":17,"column":2},"end":{"line":19,"column":3}}],"line":17},"3":{"loc":{"start":{"line":20,"column":2},"end":{"line":22,"column":3}},"type":"if","locations":[{"start":{"line":20,"column":2},"end":{"line":22,"column":3}},{"start":{"line":20,"column":2},"end":{"line":22,"column":3}}],"line":20},"4":{"loc":{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},"type":"if","locations":[{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},{"start":{"line":23,"column":2},"end":{"line":25,"column":3}}],"line":23},"5":{"loc":{"start":{"line":26,"column":2},"end":{"line":28,"column":3}},"type":"if","locations":[{"start":{"line":26,"column":2},"end":{"line":28,"column":3}},{"start":{"line":26,"column":2},"end":{"line":28,"column":3}}],"line":26},"6":{"loc":{"start":{"line":29,"column":2},"end":{"line":31,"column":3}},"type":"if","locations":[{"start":{"line":29,"column":2},"end":{"line":31,"column":3}},{"start":{"line":29,"column":2},"end":{"line":31,"column":3}}],"line":29},"7":{"loc":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},{"start":{"line":32,"column":2},"end":{"line":34,"column":3}}],"line":32},"8":{"loc":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},{"start":{"line":35,"column":2},"end":{"line":37,"column":3}}],"line":35}},"s":{"0":8,"1":8,"2":8,"3":2,"4":8,"5":1,"6":8,"7":1,"8":8,"9":3,"10":8,"11":2,"12":8,"13":3,"14":8,"15":2,"16":8,"17":1,"18":8},"f":{"0":8},"b":{"0":[8,7],"1":[2,6],"2":[1,7],"3":[1,7],"4":[3,5],"5":[2,6],"6":[3,5],"7":[2,6],"8":[1,7]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"8b1f35fcda7dff412f23052cc8e9f0e4159cae97"}
|
|
3
|
+
,"/Users/joan.silio/code/factorial-pixel/src/requestParameters.js": {"path":"/Users/joan.silio/code/factorial-pixel/src/requestParameters.js","statementMap":{"0":{"start":{"line":2,"column":14},"end":{"line":2,"column":16}},"1":{"start":{"line":4,"column":2},"end":{"line":8,"column":4}},"2":{"start":{"line":5,"column":25},"end":{"line":5,"column":41}},"3":{"start":{"line":7,"column":4},"end":{"line":7,"column":20}},"4":{"start":{"line":10,"column":2},"end":{"line":10,"column":22}},"5":{"start":{"line":14,"column":15},"end":{"line":14,"column":68}},"6":{"start":{"line":15,"column":17},"end":{"line":15,"column":54}},"7":{"start":{"line":16,"column":18},"end":{"line":16,"column":33}},"8":{"start":{"line":17,"column":17},"end":{"line":17,"column":66}},"9":{"start":{"line":18,"column":13},"end":{"line":18,"column":47}},"10":{"start":{"line":19,"column":16},"end":{"line":19,"column":53}},"11":{"start":{"line":20,"column":16},"end":{"line":20,"column":53}},"12":{"start":{"line":21,"column":17},"end":{"line":21,"column":55}},"13":{"start":{"line":22,"column":21},"end":{"line":22,"column":63}},"14":{"start":{"line":23,"column":21},"end":{"line":23,"column":63}},"15":{"start":{"line":24,"column":23},"end":{"line":24,"column":67}},"16":{"start":{"line":25,"column":22},"end":{"line":25,"column":65}},"17":{"start":{"line":26,"column":19},"end":{"line":26,"column":59}},"18":{"start":{"line":28,"column":2},"end":{"line":40,"column":3}}},"fnMap":{"0":{"name":"findPropertyInParams","decl":{"start":{"line":1,"column":9},"end":{"line":1,"column":29}},"loc":{"start":{"line":1,"column":54},"end":{"line":11,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":28},"end":{"line":4,"column":29}},"loc":{"start":{"line":4,"column":37},"end":{"line":8,"column":3}},"line":4},"2":{"name":"requestParameters","decl":{"start":{"line":13,"column":24},"end":{"line":13,"column":41}},"loc":{"start":{"line":13,"column":53},"end":{"line":41,"column":1}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":31},"end":{"line":1,"column":42}},"type":"default-arg","locations":[{"start":{"line":1,"column":40},"end":{"line":1,"column":42}}],"line":1}},"s":{"0":117,"1":117,"2":234,"3":234,"4":117,"5":13,"6":13,"7":13,"8":13,"9":13,"10":13,"11":13,"12":13,"13":13,"14":13,"15":13,"16":13,"17":13,"18":13},"f":{"0":117,"1":234,"2":13},"b":{"0":[0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"ae9f81905e4c08f91ce00c88fc6767e97c17a53d"}
|
|
4
4
|
}
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
</div><!-- /wrapper -->
|
|
84
84
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
85
85
|
Code coverage
|
|
86
|
-
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at
|
|
86
|
+
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Jan 05 2026 16:21:30 GMT+0100 (Central European Standard Time)
|
|
87
87
|
</div>
|
|
88
88
|
</div>
|
|
89
89
|
<script src="prettify.js"></script>
|
|
@@ -83,7 +83,7 @@ const img <span class="cstat-no" title="statement not covered" >= document.creat
|
|
|
83
83
|
</div><!-- /wrapper -->
|
|
84
84
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
85
85
|
Code coverage
|
|
86
|
-
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at
|
|
86
|
+
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Jan 05 2026 16:21:30 GMT+0100 (Central European Standard Time)
|
|
87
87
|
</div>
|
|
88
88
|
</div>
|
|
89
89
|
<script src="prettify.js"></script>
|
|
@@ -49,41 +49,68 @@
|
|
|
49
49
|
24
|
|
50
50
|
25
|
|
51
51
|
26
|
|
52
|
-
27
|
|
52
|
+
27
|
|
53
|
+
28
|
|
54
|
+
29
|
|
55
|
+
30
|
|
56
|
+
31
|
|
57
|
+
32
|
|
58
|
+
33
|
|
59
|
+
34
|
|
60
|
+
35
|
|
61
|
+
36
|
|
62
|
+
37
|
|
63
|
+
38
|
|
64
|
+
39
|
|
65
|
+
40
|
|
66
|
+
41</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
53
67
|
<span class="cline-any cline-neutral"> </span>
|
|
54
68
|
<span class="cline-any cline-neutral"> </span>
|
|
55
|
-
<span class="cline-any cline-yes">
|
|
69
|
+
<span class="cline-any cline-yes">8x</span>
|
|
56
70
|
<span class="cline-any cline-neutral"> </span>
|
|
57
71
|
<span class="cline-any cline-neutral"> </span>
|
|
58
|
-
<span class="cline-any cline-yes">
|
|
59
|
-
<span class="cline-any cline-yes">5x</span>
|
|
72
|
+
<span class="cline-any cline-yes">8x</span>
|
|
60
73
|
<span class="cline-any cline-neutral"> </span>
|
|
61
74
|
<span class="cline-any cline-neutral"> </span>
|
|
62
75
|
<span class="cline-any cline-neutral"> </span>
|
|
63
76
|
<span class="cline-any cline-neutral"> </span>
|
|
64
77
|
<span class="cline-any cline-neutral"> </span>
|
|
65
78
|
<span class="cline-any cline-neutral"> </span>
|
|
66
|
-
<span class="cline-any cline-yes">
|
|
79
|
+
<span class="cline-any cline-yes">8x</span>
|
|
80
|
+
<span class="cline-any cline-yes">2x</span>
|
|
81
|
+
<span class="cline-any cline-neutral"> </span>
|
|
82
|
+
<span class="cline-any cline-yes">8x</span>
|
|
67
83
|
<span class="cline-any cline-yes">1x</span>
|
|
68
84
|
<span class="cline-any cline-neutral"> </span>
|
|
69
|
-
<span class="cline-any cline-yes">
|
|
85
|
+
<span class="cline-any cline-yes">8x</span>
|
|
70
86
|
<span class="cline-any cline-yes">1x</span>
|
|
71
87
|
<span class="cline-any cline-neutral"> </span>
|
|
72
|
-
<span class="cline-any cline-yes">
|
|
88
|
+
<span class="cline-any cline-yes">8x</span>
|
|
89
|
+
<span class="cline-any cline-yes">3x</span>
|
|
90
|
+
<span class="cline-any cline-neutral"> </span>
|
|
91
|
+
<span class="cline-any cline-yes">8x</span>
|
|
92
|
+
<span class="cline-any cline-yes">2x</span>
|
|
93
|
+
<span class="cline-any cline-neutral"> </span>
|
|
94
|
+
<span class="cline-any cline-yes">8x</span>
|
|
95
|
+
<span class="cline-any cline-yes">3x</span>
|
|
96
|
+
<span class="cline-any cline-neutral"> </span>
|
|
97
|
+
<span class="cline-any cline-yes">8x</span>
|
|
98
|
+
<span class="cline-any cline-yes">2x</span>
|
|
99
|
+
<span class="cline-any cline-neutral"> </span>
|
|
100
|
+
<span class="cline-any cline-yes">8x</span>
|
|
73
101
|
<span class="cline-any cline-yes">1x</span>
|
|
74
102
|
<span class="cline-any cline-neutral"> </span>
|
|
75
103
|
<span class="cline-any cline-neutral"> </span>
|
|
76
|
-
<span class="cline-any cline-yes">
|
|
104
|
+
<span class="cline-any cline-yes">8x</span>
|
|
77
105
|
<span class="cline-any cline-neutral"> </span>
|
|
78
106
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import requestParameters from './requestParameters'
|
|
79
107
|
|
|
80
108
|
export default document => {
|
|
81
|
-
const { language, landingPage, gclid, aclid, fbclid } = requestParameters(
|
|
109
|
+
const { language, landingPage, mc, gclid, aclid, fbclid, utm_source, utm_medium, utm_campaign, utm_content, utm_term } = requestParameters(
|
|
82
110
|
document
|
|
83
111
|
)
|
|
84
|
-
const mc = document.location.href.match(/mc=(.*)/)
|
|
85
112
|
const attributes = [
|
|
86
|
-
`mc=${mc
|
|
113
|
+
`mc=${mc || ''}`,
|
|
87
114
|
`referer=${encodeURI(document.referrer)}`,
|
|
88
115
|
`language=${language}`,
|
|
89
116
|
`landing_page=${landingPage}`
|
|
@@ -98,6 +125,21 @@ export default document => {
|
|
|
98
125
|
if (fbclid) {
|
|
99
126
|
attributes.push(`fbclid=${fbclid}`)
|
|
100
127
|
}
|
|
128
|
+
if (utm_source) {
|
|
129
|
+
attributes.push(`utm_source=${encodeURIComponent(utm_source)}`)
|
|
130
|
+
}
|
|
131
|
+
if (utm_medium) {
|
|
132
|
+
attributes.push(`utm_medium=${encodeURIComponent(utm_medium)}`)
|
|
133
|
+
}
|
|
134
|
+
if (utm_campaign) {
|
|
135
|
+
attributes.push(`utm_campaign=${encodeURIComponent(utm_campaign)}`)
|
|
136
|
+
}
|
|
137
|
+
if (utm_content) {
|
|
138
|
+
attributes.push(`utm_content=${encodeURIComponent(utm_content)}`)
|
|
139
|
+
}
|
|
140
|
+
if (utm_term) {
|
|
141
|
+
attributes.push(`utm_term=${encodeURIComponent(utm_term)}`)
|
|
142
|
+
}
|
|
101
143
|
|
|
102
144
|
return `/internal/pixel?${attributes.join('&')}`
|
|
103
145
|
}
|
|
@@ -107,7 +149,7 @@ export default document => {
|
|
|
107
149
|
</div><!-- /wrapper -->
|
|
108
150
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
109
151
|
Code coverage
|
|
110
|
-
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at
|
|
152
|
+
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Jan 05 2026 16:21:30 GMT+0100 (Central European Standard Time)
|
|
111
153
|
</div>
|
|
112
154
|
</div>
|
|
113
155
|
<script src="prettify.js"></script>
|
|
@@ -52,28 +52,52 @@
|
|
|
52
52
|
27
|
|
53
53
|
28
|
|
54
54
|
29
|
|
55
|
-
30
|
|
56
|
-
|
|
55
|
+
30
|
|
56
|
+
31
|
|
57
|
+
32
|
|
58
|
+
33
|
|
59
|
+
34
|
|
60
|
+
35
|
|
61
|
+
36
|
|
62
|
+
37
|
|
63
|
+
38
|
|
64
|
+
39
|
|
65
|
+
40
|
|
66
|
+
41
|
|
67
|
+
42</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
68
|
+
<span class="cline-any cline-yes">117x</span>
|
|
57
69
|
<span class="cline-any cline-neutral"> </span>
|
|
58
|
-
<span class="cline-any cline-yes">
|
|
59
|
-
<span class="cline-any cline-yes">
|
|
70
|
+
<span class="cline-any cline-yes">117x</span>
|
|
71
|
+
<span class="cline-any cline-yes">234x</span>
|
|
60
72
|
<span class="cline-any cline-neutral"> </span>
|
|
61
|
-
<span class="cline-any cline-yes">
|
|
73
|
+
<span class="cline-any cline-yes">234x</span>
|
|
74
|
+
<span class="cline-any cline-neutral"> </span>
|
|
75
|
+
<span class="cline-any cline-neutral"> </span>
|
|
76
|
+
<span class="cline-any cline-yes">117x</span>
|
|
77
|
+
<span class="cline-any cline-neutral"> </span>
|
|
78
|
+
<span class="cline-any cline-neutral"> </span>
|
|
79
|
+
<span class="cline-any cline-neutral"> </span>
|
|
80
|
+
<span class="cline-any cline-yes">13x</span>
|
|
81
|
+
<span class="cline-any cline-yes">13x</span>
|
|
82
|
+
<span class="cline-any cline-yes">13x</span>
|
|
83
|
+
<span class="cline-any cline-yes">13x</span>
|
|
84
|
+
<span class="cline-any cline-yes">13x</span>
|
|
85
|
+
<span class="cline-any cline-yes">13x</span>
|
|
86
|
+
<span class="cline-any cline-yes">13x</span>
|
|
87
|
+
<span class="cline-any cline-yes">13x</span>
|
|
88
|
+
<span class="cline-any cline-yes">13x</span>
|
|
89
|
+
<span class="cline-any cline-yes">13x</span>
|
|
90
|
+
<span class="cline-any cline-yes">13x</span>
|
|
91
|
+
<span class="cline-any cline-yes">13x</span>
|
|
92
|
+
<span class="cline-any cline-yes">13x</span>
|
|
93
|
+
<span class="cline-any cline-neutral"> </span>
|
|
94
|
+
<span class="cline-any cline-yes">13x</span>
|
|
62
95
|
<span class="cline-any cline-neutral"> </span>
|
|
63
96
|
<span class="cline-any cline-neutral"> </span>
|
|
64
|
-
<span class="cline-any cline-yes">27x</span>
|
|
65
97
|
<span class="cline-any cline-neutral"> </span>
|
|
66
98
|
<span class="cline-any cline-neutral"> </span>
|
|
67
99
|
<span class="cline-any cline-neutral"> </span>
|
|
68
|
-
<span class="cline-any cline-yes">9x</span>
|
|
69
|
-
<span class="cline-any cline-yes">9x</span>
|
|
70
|
-
<span class="cline-any cline-yes">9x</span>
|
|
71
|
-
<span class="cline-any cline-yes">9x</span>
|
|
72
|
-
<span class="cline-any cline-yes">9x</span>
|
|
73
|
-
<span class="cline-any cline-yes">9x</span>
|
|
74
|
-
<span class="cline-any cline-yes">9x</span>
|
|
75
100
|
<span class="cline-any cline-neutral"> </span>
|
|
76
|
-
<span class="cline-any cline-yes">9x</span>
|
|
77
101
|
<span class="cline-any cline-neutral"> </span>
|
|
78
102
|
<span class="cline-any cline-neutral"> </span>
|
|
79
103
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -98,16 +122,28 @@ export default function requestParameters (document) {
|
|
|
98
122
|
const search = document.location.search.substring(1)
|
|
99
123
|
const landing = encodeURI(path)
|
|
100
124
|
const locale = document.querySelector('html').lang.split('-')[0]
|
|
125
|
+
const mc = findPropertyInParams(search, 'mc')
|
|
101
126
|
const gclid = findPropertyInParams(search, 'gclid')
|
|
102
127
|
const aclid = findPropertyInParams(search, 'aclid')
|
|
103
128
|
const fbclid = findPropertyInParams(search, 'fbclid')
|
|
129
|
+
const utm_source = findPropertyInParams(search, 'utm_source')
|
|
130
|
+
const utm_medium = findPropertyInParams(search, 'utm_medium')
|
|
131
|
+
const utm_campaign = findPropertyInParams(search, 'utm_campaign')
|
|
132
|
+
const utm_content = findPropertyInParams(search, 'utm_content')
|
|
133
|
+
const utm_term = findPropertyInParams(search, 'utm_term')
|
|
104
134
|
|
|
105
135
|
return {
|
|
106
136
|
language: locale,
|
|
107
137
|
landingPage: landing,
|
|
138
|
+
mc,
|
|
108
139
|
gclid,
|
|
109
140
|
aclid,
|
|
110
|
-
fbclid
|
|
141
|
+
fbclid,
|
|
142
|
+
utm_source,
|
|
143
|
+
utm_medium,
|
|
144
|
+
utm_campaign,
|
|
145
|
+
utm_content,
|
|
146
|
+
utm_term
|
|
111
147
|
}
|
|
112
148
|
}
|
|
113
149
|
</pre></td></tr>
|
|
@@ -116,7 +152,7 @@ export default function requestParameters (document) {
|
|
|
116
152
|
</div><!-- /wrapper -->
|
|
117
153
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
118
154
|
Code coverage
|
|
119
|
-
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at
|
|
155
|
+
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Jan 05 2026 16:21:30 GMT+0100 (Central European Standard Time)
|
|
120
156
|
</div>
|
|
121
157
|
</div>
|
|
122
158
|
<script src="prettify.js"></script>
|
package/coverage/lcov.info
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
TN:
|
|
2
|
-
SF:/Users/
|
|
2
|
+
SF:/Users/joan.silio/code/factorial-pixel/src/index.js
|
|
3
3
|
FN:1,_interopRequireDefault
|
|
4
4
|
FNF:1
|
|
5
5
|
FNH:0
|
|
@@ -28,59 +28,84 @@ BRF:8
|
|
|
28
28
|
BRH:0
|
|
29
29
|
end_of_record
|
|
30
30
|
TN:
|
|
31
|
-
SF:/Users/
|
|
31
|
+
SF:/Users/joan.silio/code/factorial-pixel/src/pixelUrl.js
|
|
32
32
|
FN:3,(anonymous_0)
|
|
33
33
|
FNF:1
|
|
34
34
|
FNH:1
|
|
35
|
-
FNDA:
|
|
36
|
-
DA:4,
|
|
37
|
-
DA:7,
|
|
38
|
-
DA:8
|
|
39
|
-
DA:15,
|
|
40
|
-
DA:
|
|
41
|
-
DA:18,
|
|
42
|
-
DA:
|
|
43
|
-
DA:21,
|
|
44
|
-
DA:
|
|
45
|
-
DA:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
35
|
+
FNDA:8,(anonymous_0)
|
|
36
|
+
DA:4,8
|
|
37
|
+
DA:7,8
|
|
38
|
+
DA:14,8
|
|
39
|
+
DA:15,2
|
|
40
|
+
DA:17,8
|
|
41
|
+
DA:18,1
|
|
42
|
+
DA:20,8
|
|
43
|
+
DA:21,1
|
|
44
|
+
DA:23,8
|
|
45
|
+
DA:24,3
|
|
46
|
+
DA:26,8
|
|
47
|
+
DA:27,2
|
|
48
|
+
DA:29,8
|
|
49
|
+
DA:30,3
|
|
50
|
+
DA:32,8
|
|
51
|
+
DA:33,2
|
|
52
|
+
DA:35,8
|
|
53
|
+
DA:36,1
|
|
54
|
+
DA:39,8
|
|
55
|
+
LF:19
|
|
56
|
+
LH:19
|
|
57
|
+
BRDA:8,0,0,8
|
|
58
|
+
BRDA:8,0,1,7
|
|
59
|
+
BRDA:14,1,0,2
|
|
60
|
+
BRDA:14,1,1,6
|
|
61
|
+
BRDA:17,2,0,1
|
|
62
|
+
BRDA:17,2,1,7
|
|
63
|
+
BRDA:20,3,0,1
|
|
64
|
+
BRDA:20,3,1,7
|
|
65
|
+
BRDA:23,4,0,3
|
|
66
|
+
BRDA:23,4,1,5
|
|
67
|
+
BRDA:26,5,0,2
|
|
68
|
+
BRDA:26,5,1,6
|
|
69
|
+
BRDA:29,6,0,3
|
|
70
|
+
BRDA:29,6,1,5
|
|
71
|
+
BRDA:32,7,0,2
|
|
72
|
+
BRDA:32,7,1,6
|
|
73
|
+
BRDA:35,8,0,1
|
|
74
|
+
BRDA:35,8,1,7
|
|
75
|
+
BRF:18
|
|
76
|
+
BRH:18
|
|
58
77
|
end_of_record
|
|
59
78
|
TN:
|
|
60
|
-
SF:/Users/
|
|
79
|
+
SF:/Users/joan.silio/code/factorial-pixel/src/requestParameters.js
|
|
61
80
|
FN:1,findPropertyInParams
|
|
62
81
|
FN:4,(anonymous_1)
|
|
63
82
|
FN:13,requestParameters
|
|
64
83
|
FNF:3
|
|
65
84
|
FNH:3
|
|
66
|
-
FNDA:
|
|
67
|
-
FNDA:
|
|
68
|
-
FNDA:
|
|
69
|
-
DA:2,
|
|
70
|
-
DA:4,
|
|
71
|
-
DA:5,
|
|
72
|
-
DA:7,
|
|
73
|
-
DA:10,
|
|
74
|
-
DA:14,
|
|
75
|
-
DA:15,
|
|
76
|
-
DA:16,
|
|
77
|
-
DA:17,
|
|
78
|
-
DA:18,
|
|
79
|
-
DA:19,
|
|
80
|
-
DA:20,
|
|
81
|
-
DA:
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
FNDA:117,findPropertyInParams
|
|
86
|
+
FNDA:234,(anonymous_1)
|
|
87
|
+
FNDA:13,requestParameters
|
|
88
|
+
DA:2,117
|
|
89
|
+
DA:4,117
|
|
90
|
+
DA:5,234
|
|
91
|
+
DA:7,234
|
|
92
|
+
DA:10,117
|
|
93
|
+
DA:14,13
|
|
94
|
+
DA:15,13
|
|
95
|
+
DA:16,13
|
|
96
|
+
DA:17,13
|
|
97
|
+
DA:18,13
|
|
98
|
+
DA:19,13
|
|
99
|
+
DA:20,13
|
|
100
|
+
DA:21,13
|
|
101
|
+
DA:22,13
|
|
102
|
+
DA:23,13
|
|
103
|
+
DA:24,13
|
|
104
|
+
DA:25,13
|
|
105
|
+
DA:26,13
|
|
106
|
+
DA:28,13
|
|
107
|
+
LF:19
|
|
108
|
+
LH:19
|
|
84
109
|
BRDA:1,0,0,0
|
|
85
110
|
BRF:1
|
|
86
111
|
BRH:0
|