<script>
(function () {
const COOKIE_NAME = 'eduengage_AdConnect';
const COOKIE_EXPIRE_DAYS = 365;
const FIRST_UTM_KEYS = [
'utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'
];
const LAST_KEYS = [
'utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term',
'gclid', 'fbclid', 'ttclid', 'msclkid', 'li_fat_id',
'campaign_id', 'campaign_name', 'ad_group_id', 'ad_group_name',
'ad_id', 'ad_name', 'creative_id', 'creative_name',
'keyword', 'matchtype', 'network', 'device', 'device_model',
'extension', 'free_item_id', 'placement', 'target',
'interest_location', 'location', 'site_source_name'
];
const FIELD_MAPPINGS = {
// First UTMs
first_utm_source: 'eduengage_first_utm_source',
first_utm_medium: 'eduengage_first_utm_medium',
first_utm_campaign: 'eduengage_first_utm_campaign',
first_utm_content: 'eduengage_first_utm_content',
first_utm_term: 'eduengage_first_utm_term',
// Last UTMs
last_utm_source: 'eduengage_last_utm_source',
last_utm_medium: 'eduengage_last_utm_medium',
last_utm_campaign: 'eduengage_last_utm_campaign',
last_utm_content: 'eduengage_last_utm_content',
last_utm_term: 'eduengage_last_utm_term',
// Click IDs
gclid: 'gclid',
fbclid: 'fbclid',
ttclid: 'ttclid',
msclkid: 'msclkid',
li_fat_id: 'li_fat_id',
// Ad data
last_campaign_id: 'eduengage_campaign_id',
last_campaign_name: 'eduengage_campaign_name',
last_ad_group_id: 'eduengage_ad_group_id',
last_ad_group_name: 'eduengage_ad_group_name',
last_ad_id: 'eduengage_ad_id',
last_ad_name: 'eduengage_ad_name',
last_creative_id: 'eduengage_creative_id',
last_creative_name: 'eduengage_creative_name',
last_keyword: 'eduengage_keyword',
last_matchtype: 'eduengage_matchtype',
last_network: 'eduengage_network',
last_device: 'eduengage_device',
last_device_model: 'eduengage_device_model',
last_extension: 'eduengage_extension',
last_free_item_id: 'eduengage_free_item_id',
last_placement: 'eduengage_placement',
last_target: 'eduengage_target',
last_interest_location: 'eduengage_interest_location',
last_location: 'eduengage_location',
last_site_source_name: 'eduengage_site_source_name'
};
function setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${encodeURIComponent(value)}; expires=${expires}; path=/; secure; SameSite=Lax`;
}
function getCookie(name) {
const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
return match ? decodeURIComponent(match[2]) : null;
}
function getUrlParams() {
const params = {};
new URLSearchParams(window.location.search).forEach((val, key) => {
if (val) params[key] = val;
});
return params;
}
function parseTrackingCookie() {
try {
return JSON.parse(getCookie(COOKIE_NAME) || '{}');
} catch (e) {
console.warn('Error parsing cookie:', e);
return {};
}
}
function buildTrackingCookie(existing, urlParams) {
const result = { ...existing };
for (const key of FIRST_UTM_KEYS) {
const urlVal = urlParams[key];
if (!result[`first_${key}`] && urlVal) {
result[`first_${key}`] = urlVal;
}
}
for (const key of [...FIRST_UTM_KEYS, ...LAST_KEYS]) {
const urlVal = urlParams[key];
if (urlVal) {
result[`last_${key}`] = urlVal;
}
}
return result;
}
function populateFormFields(trackingData) {
for (const key in trackingData) {
const fieldClass = FIELD_MAPPINGS[key];
if (!fieldClass) continue;
const selector = `p.${fieldClass} input`;
try {
const field = document.querySelector(selector);
if (field) field.value = trackingData[key];
} catch (e) {
console.warn(`Field not found for selector: ${selector}`);
}
}
}
const urlParams = getUrlParams();
const existing = parseTrackingCookie();
const updated = buildTrackingCookie(existing, urlParams);
setCookie(COOKIE_NAME, JSON.stringify(updated), COOKIE_EXPIRE_DAYS);
populateFormFields(updated);
})();
</script>
To test the cookie, use a URL like:
https://hello.eduhub.solutions/landingpage?utm_source=google&utm_medium=cpc&utm_campaign=summer_campaign&utm_content=text_ad_1&utm_term=engineering+program&gclid=TEST-GCLID-123&fbclid=TEST-FBCLID-456&ttclid=TEST-TTCLID-789&msclkid=TEST-MSCLKID-002&li_fat_id=TEST-LIFAT-001&ad_group_id=AGID1&ad_group_name=AdGroupName&ad_id=ADID123&ad_name=AdName123&campaign_id=CID321&campaign_name=CampName&creative_id=CRID456&creative_name=CreativeTest&device=mobile&device_model=Pixel5&extension=EXT1&free_item_id=FREE123&interest_location=Berlin&location=Germany&matchtype=broad&network=search&placement=google.com&site_source_name=google&target=students&keyword=engineering