Untitled
unknown
plain_text
a month ago
2.3 kB
8
Indexable
<script>
(function() {
var WINDOWS = [
{ key: "ft7", field: "utm_content_ft7", days: 7 },
{ key: "ft14", field: "utm_content_ft14", days: 14 },
{ key: "ft30", field: "utm_content_ft30", days: 30 },
];
function getUtms() {
var params = new URLSearchParams(window.location.search);
return {
utm_source: params.get("utm_source") || "",
utm_medium: params.get("utm_medium") || "",
utm_campaign: params.get("utm_campaign") || "",
utm_content: params.get("utm_content") || "",
utm_term: params.get("utm_term") || "",
};
}
var utms = getUtms();
var hasUtms = Object.values(utms).some(function(v) { return v !== ""; });
var now = Date.now();
if (hasUtms) {
// Last Touch: immer überschreiben
localStorage.setItem("lt_utms", JSON.stringify({ utms: utms, ts: now }));
// First Touch Windows: nur setzen wenn abgelaufen oder leer
WINDOWS.forEach(function(w) {
var stored = JSON.parse(localStorage.getItem("ft_" + w.key) || "null");
var expired = !stored || (now - stored.ts) > w.days * 86400000;
if (expired) {
localStorage.setItem("ft_" + w.key, JSON.stringify({ utms: utms, ts: now }));
}
});
}
// HubSpot Form: Felder befüllen
window.addEventListener("message", function(event) {
if (event.data.type === "hsFormCallback" && event.data.eventName === "onFormReady") {
// Standard UTM Felder (Last Touch)
var lt = JSON.parse(localStorage.getItem("lt_utms") || "null");
if (lt) {
["utm_source","utm_medium","utm_campaign","utm_content","utm_term"].forEach(function(name) {
setField(name, lt.utms[name] || "");
});
}
// First Touch Windows
WINDOWS.forEach(function(w) {
var stored = JSON.parse(localStorage.getItem("ft_" + w.key) || "null");
if (stored) {
setField(w.field, stored.utms.utm_content || "");
}
});
}
});
function setField(name, value) {
if (!value) return;
var input = document.querySelector('input[name="' + name + '"]');
if (input) {
input.value = value;
input.dispatchEvent(new Event("input", { bubbles: true }));
input.dispatchEvent(new Event("change", { bubbles: true }));
}
}
})();
</script>
Editor is loading...
Leave a Comment