<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">//~~tv:2059.20240510
//~~tc: Fixed href issue in loader_cb function
//~~tc: Updated tag: added new parameters
//~~tc: allow passing price and quantity for non-conversion events

/*global utag br_data BrTrk*/

window["br_data"] = window["br_data"] || {};
//tealium universal tag - utag.sender.2059 ut4.0.202503251031, Copyright 2025 Tealium.com Inc. All Rights Reserved.
try {
  (function (id, loader) {
    var u = {"id" : id};
    utag.o[loader].sender[id] = u;
    // Please do not modify
    if (utag.ut === undefined) { utag.ut = {}; }
    // Start Tealium loader 4.41
    /* utag.js version 4.26 or above is required to avoid errors with this loader function */
    var match = /ut\d\.(\d*)\..*/.exec(utag.cfg.v);
    if (utag.ut.loader === undefined || !match || parseInt(match[1]) &lt; 41) { u.loader = function(o, a, b, c, l, m) { utag.DB(o); a = document; if (o.type == "iframe") { m = a.getElementById(o.id); if (m &amp;&amp; m.tagName == "IFRAME") { b = m; } else { b = a.createElement("iframe"); } o.attrs = o.attrs || {}; utag.ut.merge(o.attrs, { "height": "1", "width": "1", "style": "display:none" }, 0); } else if (o.type == "img") { utag.DB("Attach img: " + o.src); b = new Image(); } else { b = a.createElement("script"); b.language = "javascript"; b.type = "text/javascript"; b.async = 1; b.charset = "utf-8"; } if (o.id) { b.id = o.id; } for (l in utag.loader.GV(o.attrs)) { b.setAttribute(l, o.attrs[l]); } b.setAttribute("src", o.src); if (typeof o.cb == "function") { if (b.addEventListener) { b.addEventListener("load", function() { o.cb(); }, false); } else { b.onreadystatechange = function() { if (this.readyState == "complete" || this.readyState == "loaded") { this.onreadystatechange = null; o.cb(); } }; } } if (o.type != "img" &amp;&amp; !m) { l = o.loc || "head"; c = a.getElementsByTagName(l)[0]; if (c) { utag.DB("Attach to " + l + ": " + o.src); if (l == "script") { c.parentNode.insertBefore(b, c); } else { c.appendChild(b); } } } }; } else { u.loader = utag.ut.loader; }
    // End Tealium loader
    // Start Tealium typeOf 4.35
    if (utag.ut.typeOf === undefined) { u.typeOf = function(e) {return ({}).toString.call(e).match(/\s([a-zA-Z]+)/)[1].toLowerCase();};} else { u.typeOf = utag.ut.typeOf; }
    // End Tealium typeOf

    u.ev = {"view" : 1, "link" : 1};
    u.initialized = false;
    u.scriptrequested = false;
    u.queue = [];

    u.map_func = function (arr, obj, item) {
      var i = arr.shift();
      obj[i] = obj[i] || {};
      if (arr.length &gt; 0) {
        u.map_func(arr,obj[i], item);
      } else {
        obj[i] = item;
      }
    };

    u.clearEmptyKeys = function (object) {
      for (var key in object) {
        if (object[key] === "" || object[key] === undefined) {
          delete object[key];
        }
      }
      return object;
    };

    // Used to populate br_data object for page view tracking and virtual page view event
    u.generatePageDataObject = function(obj) {
      const experimentStates = window.agwa &amp;&amp; window.agwa.getFeatureExperimentsStates ? window.agwa.getFeatureExperimentsStates() : {};
      let abtest = 'off';
      if (experimentStates['experiment-browse-api-on-plp-pages']) {
          abtest = experimentStates['experiment-browse-api-on-plp-pages'].variationKey;
      }
      
      if (u.data.clear_br_data === "yes") {
        obj = {};
      }
      // sets global data
      // test_data - remove this before pushing to PROD    
      if(u.data["domain"] !== "www.ae.com") { obj.test_data = true; }
      obj.abtest = abtest;
      obj.acct_id = u.data.account_id;
      obj.ptype = u.data.ptype || "other";
      obj.title = u.data.title;
      obj.domain_key = u.data.domain_key;
      obj.user_id = u.data.user_id;
      obj.view_id = u.data.view_id;
      obj.tms = (u.data.track_tms === "yes") ? u.data.tms : "";
      obj.currency = u.data.currency;
      // sets category page data
      obj.cat_id = u.data.category_id;
      obj.cat = u.data.category_name;
      // sets search page data
      obj.search_term = u.data.search_term;
      // sets content page data
      obj.catalogs = u.data.catalogs;
      obj.item_id = u.data.item_id;
      obj.item_name = u.data.item_name;
      // sets widget data;
      obj.wrid = u.data.wrid;
      obj.wq = u.data.wq;
      obj.wid = u.data.wid;
      obj.wty = u.data.wty;
      obj.sku = u.data.sku;
      // set relevance by segment data;
      obj.customer_tier = u.data.customer_tier;
      obj.customer_country = u.data.customer_country;
      obj.customer_geo = u.data.customer_geo;
      obj.customer_profile = u.data.customer_profile;
      // sets conversion page data
      if (u.data.order_id) {
        var basket_items = [];
        for (var i = 0; i &lt; u.data.product_id.length; i++) {
          basket_items.push({
            "prod_id" : u.data.product_id[i],
            "sku" : u.data.product_sku[i],
            "name" : u.data.product_name[i],
            "quantity" : u.data.product_quantity[i],
            "price" : u.data.product_unit_price[i]
          });
        }
        obj.basket = {"items":basket_items};
        obj.is_conversion = 1;
        obj.order_id = u.data.order_id;
        obj.basket_value = u.data.order_total;
      } else {
        // sets product page data
        obj.prod_id = (u.data.product_id.length &gt; 0) ? u.data.product_id : "";
        obj.prod_name = (u.data.product_name.length &gt; 0) ? u.data.product_name : "";
        obj.sku = (u.data.product_sku.length &gt; 0) ? u.data.product_sku : u.data.sku;
        obj.price = (u.data.product_unit_price.length &gt; 0) ? u.data.product_unit_price : "";
        obj.quantity = (u.data.product_quantity.length &gt; 0) ? u.data.product_quantity : "";
        // sets is_conversion flag if overridden via mappings, otherwise sets to an empty string, which will cause it to be removed from the page object later
        obj.is_conversion = u.data.is_conversion || "";
      }
      // merges data mapped directly to br_data; duplicate keys in u.data.custom_br_data take precedence
      if (typeof utag.ut.merge === "function") {
        utag.ut.merge(obj,u.data.custom_br_data,1);
      } else {
        utag.DB(u.id+": Custom variables not merged into br_data. Requires version 4.26 or later of the utag.js file.");
      }
      // clears out empty keys and returns final page data object
      return u.clearEmptyKeys(obj);
    };

    // Start Loader Callback
    u.loader_cb = function () {
      utag.DB("send:413:CALLBACK");
      u.initialized = true;

      if (u.data.event) {
        // limit virtual page views to supported pages
        if (u.data["page_name_prev"] !== undefined &amp;&amp; (
            (u.data.page_type === "home" &amp;&amp; u.data.event_type === "page_load") ||
            (u.data.page_type === "plp" &amp;&amp; u.data.event_type === "page_load") ||
            (u.data.page_type === "pdp" &amp;&amp; u.data.event_type === "page_load") ||
            (u.data.page_type === "shp" &amp;&amp; u.data.event_type === "page_load") ||
            (u.data.page_name === "checkout:order_confirmation" &amp;&amp; u.data.event_type === "page_load") ||
            (u.data.search_term !== "" &amp;&amp; u.data.event_type === "page_load")
        )) {
          // creates new br_data object for the virtual page view event
          br_data = u.generatePageDataObject(br_data);
          // adds original referring URL to br_data object. Map to orig_ref_url to override this.
          br_data.orig_ref_url = u.data.orig_ref_url || window.location.href;
          // removes empty keys from br_data object and makes requisite BloomReach tracking calls
          BrTrk.getTracker().updateBrData(u.clearEmptyKeys(br_data));
          BrTrk.getTracker().logPageView();
          // change from else to else if to not trigger additional events
        } else if (u.data.event &amp;&amp; u.data.event !== "virtual_page_view") {
          var event_data = u.data[u.data.event] || {};
          // finish setting any parameters to pass in tracking call, if they were not present in the event mapping object; for product variables, checks data type and passes strings
          event_data.prod_id = event_data.prod_id || ((u.typeOf(u.data.product_id) === "array" &amp;&amp; u.data.product_id.length &gt; 0) ? u.data.product_id[0] : "");
          event_data.sku = event_data.sku || ((u.typeOf(u.data.product_sku) === "array" &amp;&amp; u.data.product_sku.length &gt; 0) ? u.data.product_sku[0] : "");
          event_data.prod_name = event_data.prod_name || ((u.typeOf(u.data.product_name) === "array" &amp;&amp; u.data.product_name.length &gt; 0) ? u.data.product_name[0] : "");
          event_data.q = event_data.q || u.data.q || "";
          event_data.aq = event_data.aq || u.data.aq || "";
          event_data.price = event_data.price || ((u.typeOf(u.data.product_unit_price) === "array" &amp;&amp; u.data.product_unit_price.length &gt; 0) ? u.data.product_unit_price[0] : "");
          event_data.quantity = event_data.quantity || ((u.typeOf(u.data.product_quantity) === "array" &amp;&amp; u.data.product_quantity.length &gt; 0) ? u.data.product_quantity[0] : "");

          // sets the event group and type parameters to default values based on the triggered event. Mappings will override these.
          if (u.data.event === "cart" || u.data.event === "cart_add") {
            u.data.event_group = u.data.event_group || "cart";
            u.data.event_type = "click-add";
          } else if (u.data.event === "search suggest" || u.data.event === "suggest") {
            u.data.event_group = u.data.event_group || "suggest";
            // sets the event type to one of two default values for a search suggest event depending on whether the aq parameter is populated or not. Mapping will override this.
            if (event_data.aq) {
              u.data.event_type = u.data.event_type || "click";
            } else {
              u.data.event_type = u.data.event_type || "submit";
            }
          } else if (u.data.event === "quickview" || u.data.event === "quick_view") {
            u.data.event_group = u.data.event_group || "product";
            u.data.event_type = "quickview";
          } else if (
            u.data.event === "widget-click" || u.data.event === "widget-view") {
            u.data.event_group = u.data.event_group || "widget";
            u.data.event_type = u.data.event;
          }
          BrTrk.getTracker().logEvent(u.data.event_group, u.data.event_type, u.clearEmptyKeys(event_data), {}, u.data.deferred);
        }
      }
      utag.DB("send:413:CALLBACK:COMPLETE");
    };
    // End Loader Callback

      u.map={"pref_currency":"currency","page_type:home:ptype":"homepage","page_type:pdp:ptype":"product","page_type:plp:ptype":"category","page_type:shp:ptype":"category","page_name":"title","category_id":"category_id","event_type:add_to_bag":"cart","event_type:quickview_launch":"quickview","event_type:page_load":"virtual_page_view","previous_page_name":"page_name_prev","dom.domain":"domain","cat_1:s:ptype":"search","search_keyword":"search_term,suggest.q","interaction_name:search_sidetray_action":"suggest","info_url_prev":"orig_ref_url"};
  u.extend=[];


    u.send = function (a, b) {
      if (u.ev[a] || u.ev.all !== undefined) {
        utag.DB("send:413");
        utag.DB(b);

        var c, d, e, f, h;

        u.data = {
          "base_url" : "//cdn" + ((location.protocol === "https:") ? "s.brsrvr" : ".brcdn") + ".com/v1/br-trk-##utag_account_id##.js",
          "account_id" : "7764",
          "view_id" : "AEO_MX",
          "domain_key" : "aeo",
          "user_id" : "",
          "track_tms" : "no",
          "tms" : "tlm",
          "clear_br_data" : "yes",
          "ptype" : "",
          "orig_ref_url" : "",
          "title": "",
          "currency": "",
          // E-Commerce Vars
          "product_id" : [],
          "product_name" : [],
          "product_sku" : [],
          "product_category" : [],
          "product_quantity" : [],
          "product_unit_price" : [],
          "is_conversion" : 0,
          "order_id" : "",
          "order_total" : "",
          // search variables
          "search_term" : "",
          "q" : "",
          "aq" : "",
          "deferred" : false,
          // category variables
          "category_id" : "",
          "category_name" : "",
          // event variables
          "event" : "",
          "event_type" : "",
          "event_group" : "",
          "custom_br_data" : {},
          // content variables
          "catalogs" : [],
          "item_id" : "",
          "item_name" : "",
          // widget variables
          "wrid" : "",
          "wq" : "",
          "wid" : "",
          "wty" : "",
          "sku" : "",
          // Relevance by Segment Parameters
          "customer_tier" : "",
          "customer_country" : "",
          "customer_geo" : "",
          "customer_profile" : ""
        };
        
        u.data.event_type = b.event_type || "";
        u.data.interaction_name = b.interaction_name || "";
        u.data.page_breadcrumbs = b.page_breadcrumbs || b._ccat || "";
        u.data.cat_1 = b.cat_1 || "";
        u.data.cat_2 = b.cat_2 || "";
        u.data.cat_3 = b.cat_3 || "";
        u.data.cat_4 = b.cat_4 || "";
        u.data.cat_5 = b.cat_5 || "";
        u.data.cat_6 = b.cat_6 || "";
        u.data.cat_7 = b.cat_7 || "";
        u.data.cat_8 = b.cat_8 || "";
        u.data.page_name = b.page_name || "";
        u.data.page_type = b.page_type || "";

        // Start tag-scoped extensions
        
        utag.DB("send:413:EXTENSIONS");
        utag.DB(b);
        // End tag-scoped extensions

        // Start Mapping
        for (d in utag.loader.GV(u.map)) {
          if (b[d] !== undefined &amp;&amp; b[d] !== "") {
            e = u.map[d].split(",");
            for (f = 0; f &lt; e.length; f++) {
              u.map_func(e[f].split("."), u.data, b[d]);
              // handles direct mappings to br_data object
              if (e[f].indexOf("br_data.") === 0) {
                u.data.custom_br_data[e[f].substr(8)] = b[d];
              }
            }
          } else {
            h = d.split(":");
            // handles mappings to events
            if (h.length === 2 &amp;&amp; b[h[0]] === h[1]) {
              if (u.map[d]) {
                u.data.event = u.map[d];
              }
              // handles mappings to ptype
            } else if (h.length === 3 &amp;&amp; b[h[0]] === h[1]) {
              if (u.map[d]) {
                u.data.ptype = u.map[d];
              }   
            }
          }
        }
        utag.DB("send:413:MAPPINGS");
        utag.DB(u.data);
        // End Mapping

        // Pull E-Commerce extension values
        // Mappings override E-Commerce extension values
        // Added extra mapping for category name based on cat1, cat2, ..., cat8 values
        // Added extra mapping for conversion ptype - missing in Tealium mappings
        const allCategories = [u.data.cat_1, u.data.cat_2, u.data.cat_3, u.data.cat_4, u.data.cat_5, u.data.cat_6, u.data.cat_7, u.data.cat_8];
        const availableCategories = allCategories.filter((cat) =&gt; cat);
        
        u.data.search_term = b.search_keyword || "";
        u.data.optimizely_experiments = b.optimizely_experiments_1 || "";
        u.data.category_name = availableCategories.join("|");
        if (u.data.page_type === 'shp') { u.data.category_id = u.data.page_name };
        if (u.data.page_name === "checkout:order_confirmation") { u.data.ptype = "conversion"; }
        u.data.order_id = u.data.order_id || b._corder || "";
        u.data.order_total = u.data.order_total || b._ctotal || "";
        u.data.user_id = u.data.user_id || b._ccustid || "";
        if (u.data.product_id.length === 0 &amp;&amp; b._cprod !== undefined) { u.data.product_id = b._cprod.slice(0); }
        if (u.data.product_name.length === 0 &amp;&amp; b._cprodname !== undefined) { u.data.product_name = b._cprodname.slice(0); }
        if (u.data.product_sku.length === 0 &amp;&amp; b._csku !== undefined) { u.data.product_sku = b._csku.slice(0); }
        if (u.data.product_category.length === 0 &amp;&amp; b._ccat !== undefined) { u.data.product_category = b._ccat.slice(0); }
        if (u.data.product_quantity.length === 0 &amp;&amp; b._cquan !== undefined) { u.data.product_quantity = b._cquan.slice(0); }
        if (u.data.product_unit_price.length === 0 &amp;&amp; b._cprice !== undefined) { u.data.product_unit_price = b._cprice.slice(0); }

        // converts deferred parameter value to boolean if passed as a string
        if (u.data.deferred === "true") {
          u.data.deferred = true;
        } else if (u.data.deferred === "false") {
          u.data.deferred = false;
        }
        
        // populates br_data with page data for normal page view tracking
        br_data = u.generatePageDataObject(br_data);
        
        // Report required config is missing, and stop tag from firing.
        if (!u.data.account_id) {
          utag.DB(u.id + ": Tag not fired: Required attribute account_id is not populated");
          return;
        }

        if (u.initialized) {
          u.loader_cb();
        } else {
          // While waiting for the external library to load, queue up all of the events with their corresponding data objects.
          u.queue.push({"data" : u.data, "a" : a, "b" : b});
          if (!u.scriptrequested) {
            u.scriptrequested = true;
            u.data.base_url = u.data.base_url.replace("##utag_account_id##",u.data.account_id);
            utag.ut.loader({
              'type' : 'script',
              'src' : u.data.base_url,
              'cb' : u.loader_cb,
              'loc' : 'script',
              'id' : 'utag_413',
              'attrs' : {}
            });
          }
        }

        utag.DB("send:413:COMPLETE");
      }
    };
    utag.o[loader].loader.LOAD(id);
  }("413", "americaneagle.ugpmx"));
} catch (error) {
  utag.DB(error);
}
//end tealium universal tag

</pre></body></html>