forked from AllanTracker/codigos-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdvanced sem Forms (utm_content)
86 lines (75 loc) · 3.05 KB
/
Advanced sem Forms (utm_content)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<script>
let prefix = ["https://pay.kirvano.com"];
function getParams() {
let t = "",
e = window.top.location.href,
r = new URL(e);
if (r) {
let a = r.searchParams.get("utm_source"),
n = r.searchParams.get("utm_medium"),
o = r.searchParams.get("utm_campaign"),
p = r.searchParams.get("fbclid"),
c = r.searchParams.get("utm_term"),
utm_content = getCookie("Leadsf"); // Obtém o valor do cookie "Leadsf"
// Verifica se o "utm_source" existe na URL
if (!a) {
// Se não existir, usa o referrer da página
let referrer = document.referrer;
if (referrer) {
try {
let hostname = new URL(referrer).hostname;
a = getPlatformName(hostname); // Filtra o nome da plataforma
} catch (error) {
a = "direto"; // Se o referrer não for uma URL válida, define como "direto"
}
} else {
a = "direto"; // Se o referrer estiver vazio, define "utm_source" como "direto"
}
}
// Constrói a string de parâmetros incluindo o utm_source e o xcod atualizado
t = `utm_source=${a}&utm_content=${utm_content}`;
if (n || o || p || c) {
t += `&utm_medium=${n}&utm_campaign=${o}&utm_term=${c}&fbclid=${p}`;
}
}
return t;
}
function getCookie(name) {
let match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
if (match) {
return match[2];
}
return null;
}
function getPlatformName(hostname) {
// Remover "www.", subdomínios de um único caractere e ".com", ".net", etc.
let domainParts = hostname.replace(/^www\./, '').split('.');
// Se houver mais de 2 partes no hostname, provavelmente é um subdomínio
if (domainParts.length > 2) {
// Exemplo: l.instagram.com -> filtrar para pegar apenas instagram
domainParts = domainParts.slice(-2); // Pega os dois últimos elementos (domínio principal e TLD)
}
// Capitalizar o nome da plataforma
let name = domainParts[0];
return name.charAt(0).toUpperCase() + name.slice(1);
}
function updateLinks() {
let params = getParams();
if (params) {
document.querySelectorAll("a").forEach(function(e) {
for (let r = 0; r < prefix.length; r++) {
if (e.href.indexOf(prefix[r]) !== -1) {
if (e.href.indexOf("?") === -1) {
e.href += "?" + params;
} else {
e.href += "&" + params;
}
}
}
});
}
}
window.addEventListener('load', function() {
updateLinks();
});
</script>