eduengage AdConnect Cookie

<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

Did you find this article useful?