Details about changes in each version of at.js.
This section contains information about the following at.js versions:
This is a maintenance release and addresses the following issue:
Fixed an issue that on some customer sites lead to an infinite "async" loop.
Here are the enhancements and fixes that were included in at.js Version 1.6.1:
Fixed an issue in at.js 1.6.0 that caused recommendations experiences to be duplicated in Microsoft Internet Explorer 11. (TNT-30593)
at.js now ensures that the edge override logic checks for the existence of an edge cluster cookie to avoid a different edge number if a user hops edges during a session. (TNT-30563)
Fixed an issue that prevented at.js from executing subsequent actions if the HTML content contained invalid JS code. at.js now logs the error and renders the remaining actions without issue. (TNT-30546)
Made changes so that there is an exception when a redirect page re-qualifies for a redirect activity. (TNT-30532)
Fixed an issue that prevented the correct request timeout being propagated from the getOffer() API request. (TNT-30498)
Fixed an issue that prevented at.js 1.6.0 from saving cookies when using file protocol. (TNT-30454)
Fixed an issue that made it appear that not all experiences were being delivered with redirects when using Analytics for Target (A4T). (TNT-30444)
Fixed an issue that caused the page to be hidden after the Target call succeeds. (TNT-30358)
Here are the enhancements and fixes that were included in at.js Version 1.6.0:
Redirect offers are now automatically supported in the Analytics for Target (A4T) integration. The client-side workaround has been removed. (TNT-30247)
Client-side edge routing is now enabled by default. (TNT-30261)
Fixed an issue with Visual Experience Composer (VEC) action rendering when there are dependencies between actions. (TNT-30248)
at.js version 1.5.0 is now available.
The details of the at-request-succeeded event contain the redirect flag. This flag can be used to determine if the page will be redirected to a different URL. If you want to know the URL, subscribe to at-content-rendering-redirect. (TNT-29834)
Fixed an issue that caused window.targetGlobalSettings.enabled to fail with a runtime exception if it was set to false. (TNT-29829)
Fixed an issue that caused the page to fail while loading in the Visual Experience Composer (VEC) if using custom code to a fire global mbox request and using body hiding. (TNT-29795)
Added support for screenOrientation, devicePixelRatio, and webGLRenderer. These new Target request parameters are used for iPhone X and other modern device detection. For more information, see Mobile. (TNT-29781)
Fixed an issue where the Adobe Audience Manager (AAM) location hint wasn't always sent. (TNT-29695)
For browsers that support it, at.js 1.5.0 switches to MutationObserver for selector polling. Versions prior to at.js 1.0.0 used a MutationObserver polyfill, which proved to be problematic. To avoid the polyfill issues, version1.5.0 uses the following pseudo code to decide which scheduling mechanism to use:
if MutationObserver is supported scheduler = MutationObserver else if document is visible scheduler = requestAnimationFrame else scheduler = setTimeout
at.js version 1.3.0 is now available.
The following new events are available to help in tracing, debugging, and customizing interaction with at.js:
For more information, see at.js custom events.
You can augment an at.js request with additional parameters that come from data providers. Data providers should be added to window.targetGlobalSettings under the dataProviders key.
at.js requests now use GET, but it will switch to POST when the URL size exceeds 2048 characters. There is a new property named urlSizeLimit where you can increase the size limit if necessary. This change allows Target to align at.js to AppMeasurement, which uses the same technique.
Target now enforces that the mbox key in the adobe.target.applyOffer(options) function is used. This key has been required in the past, but Target now enforces its use to ensure that Target has proper validation and customers are using the function correctly.
at.js has improved event and click tracking functionality. at.js uses navigator.sendBeacon() to send event tracking data and will fallback to synchronous XHR when navigator.sendBeacon() is not supported. This fallback mostly affects Internet Explorer 10 and 11 and some versions of Safari. Safari will add support for navigator.sendBeacon() in the upcoming iOS 11.3 release.
at.js can now render offers even when a page is opened in background tabs. Some Target Customers encountered an issue when requestAnimationFrame() was disabled because of the browser throttling behavior for background tabs.
This release adds many performance improvements, including shorter callstacks when inspecting a Chrome CPU profile.
at.js 1.3.0 no longer supports content delivery on Microsoft Internet Explorer 9. For a list of supported browsers, see Supported browsers. Going forward, all requests are executed via XMLHttpRequest with CORS support with no JSONP requests. This change greatly improves security.
at.js version 1.2.3 is now available.
Adds support for JSON offers. JSON offers are supported only in activities created using the Form-based Experience Composer. Currently the only way to use JSON offers is via direct API calls. See Create JSON offers.
at.js version 1.2.2 is now available.
Fixed an issue that caused Target click tracking to break Analytics data collection calls. (TNT-28261)
Fixed an issue that caused getOffer() params to fail when targetPageParams() returns an empty string. (TNT-28359)
Fixed an issue with session ID generation when using x-only. (TNT-28361)
at.js version 1.2.1 is now available.
Fixed an issue when click tracking on a link with target="_blank" prevented Target from opening the link in a new tab.
at.js version 1.2 is now available as a maintenance release that contains mostly bug fixes.
Fixed an issue that prevented default actions for click-tracking special cases. (TNT-28089)
Fixed an issue when click-tracking on a link with target="_blank" that prevented Target from opening the link in a new tab. (TNT-28072)
IP addresses can be used as the cookie domain. (TNT-28002)
Fixed an issue that caused flicker in redirect offers with a global mbox or other regional mboxes. (TNT-27978)
Fixed an issue in Experience Targeting activity setup failing within the VEC when switching between Browse and Compose. (TNT-27942)
Fixed incorrect handling on flicker style classes for click-track elements. (TNT-27896)
Fixed an issue that caused global mbox parameters to become mixed up with all mbox parameters. (TNT-27846)
Made changes to ensure that Handlebars, Mustache, and other client-side templating libraries are properly handled by at.js. (TNT-27831)
Made changes to ensure that sdidParamExpiry is properly initialized and passed to the Visitor API. This is a regression that has been added to at.js 1.1.0. Previous at.js versions are not affected. This affects only clients using redirect offers and A4T. (TNT-27791)
Made changes to ensure that SCRIPT is executed regardless of the type attribute being used. (TNT-27865)
Date: August 2, 2017
The following enhancements and fixes are included in at.js version 1.1:
Added response token handling. For more information, see Response tokens.
Resolved issue so that document.currentScript polyfill doesn't interfere with Angular 1.X.
Made changes to ensure that click tracking doesn't interfere with visibility property. Click tracking elements are marked with the at-element-click-tracking CSS class instead of at-element-marker.
Date: July 7, 2017
The following enhancements and fixes are included at.js version 1.0:
Support for loading at.js asynchronously for faster page loads.
Support for pre-hiding page content when loading at.js asynchronously.
Better error messaging when content delivery is disabled.
Performance improvements when delivering multiple activities.
Support for YUI Compressor.
Bug/error reporting for custom events during activity delivery.
Fix for performance issues in Microsoft Internet Explorer 11.
Fix for getOffer() function giving an error on some websites.
Load the Target library asynchronously. For more information, see at.js Frequently Asked Questions.
Date: May 22, 2017
The following enhancements and fixes are included in at.js version 0.9.7:
Date: April 13, 2017
The following enhancements and fixes are included in at.js version 0.9.6:
Redirect offer support for A4T. After you download and install at.js version 0.9.6, you can use redirect offers in activities that use Adobe Analytics as the Reporting Source for Target (A4T). Besides at.js version 0.9.6, there are other minimum requirements your implementation must meet in order to use redirect offers and A4T. For more information and additional important information you should know, see Redirect offers - A4T FAQ.
Prior to at.js 0.9.6, when the Visitor API was present on the page and the visitorApiTimeout setting was too aggressive, Target could run into a situation when no MCID data was sent in the Target request. This could lead to issues like unstitched hits in Analytics when using A4T.
This behavior has been changed in at.js 0.9.6, even if the visitorApiTimeout is set to say 1 ms, Target will try to collect SDID, tracking servers, and customer IDs data and send those in the Target request.
Added the selectorsPollingTimeout setting. For more information, see targetGlobalSettings().
The format of the response from getOffer() has been changed. For more information, see adobe.target.getOffer(options).
Console logging has been added for unsupported <!DOCTYPE> declarations.
Fixed an issue where Target Classic plugins weren’t being applied correctly when multiple default offers were delivered to a single mbox. (TGT-22664) For more information, see Plug-Ins in the Adobe Target Classic documentation.
Improved cookie-setting for two letter top-level-domains (TLDs) to ensure that the mbox cookie is set correctly for these domains (for example, test.no, autodrives.ca, and so forth).
The algorithm for extracting the top-level domain that should be used when saving cookies has changed in at.js version 0.9.6. Because of this change, cookies cannot be saved to addresses that use IP. Most of the time, IP addresses are used for testing purposes, but as workarounds you can use DNS entries or adjust the hosts file on a local box.
Fixed move and rearrange actions handling when properties are string values instead of integers.
Date: January 19, 2017
mbox names can now contain special characters, including ampersands ( & ), to be consistent with naming requirements for mbox names using mbox.js.
For a list of allowable special characters, see at.js Configurations.
Added secureOnly setting that indicates whether at.js should use HTTPS only or be allowed to switch between HTTP and HTTPS based on the page protocol. This is an advanced setting that defaults to False and can be overridden via targetGlobalSettings.
The Legacy Browser Support option is available in at.js version 0.9.3 and earlier. This option was removed in at.js version 0.9.4.
Date: October 10, 2016
Ensures mbox calls fire in Microsoft Internet Explorer 11 when legacy browsers are disabled in the at.js settings.
Ensures that default content is rendered if a dynamic remote offer fails (for example, if the URL is incorrect and returns a 404 error).
Ensures that elements are revealed quickly when VEC click-tracking selectors can't be found in the DOM.
Date: September 21, 2016
Added an optoutEnabled setting to enable or disable the Device Graph opt-out. If this setting is set to true and the visitor has opted out of tracking, the visitor's browser will not make any mbox calls. Device Graph is currently in Beta. This setting is set to false by default, but must be set to true if you are using Device Graph. A similar option is part of mbox.js v61.
Added CustomEvent support for the notification mechanism. Previously, the at.js event notification mechanism could not be used via standard DOM APIs, such as document.addEventListener(). Now you can use document.addEventListener() to subscribe to at.js events, such as request events and content rendering events.
Fixed an issue related to offers created in the Visual Experience Composer (VEC). Prior to this release, Target hid the selectors and un-hid them only when all selectors matched. In at.js 0.9.2 Target un-hides the selectors as soon as they are matched.
Date: July 14, 2016
Provides at.js a timeout for the Visitor Id Service, which is independent of the service’s own timeout.
Corrects an issue in 0.9.0 that impacted implementations using at.js on some pages and mbox.js on other pages.
If you use Adobe Analytics as your activity's reporting source, you do not need to specify a tracking server during activity creation if you are using mbox.js version 61 (or later) or at.js version 0.9.1 (or later). The mbox.js or at.js library automatically sends tracking server values to Target. During activity creation, you can leave the Tracking Server field empty on the Goals & Settings page.
Target Release: 16.6.1
Fixes a whitescreen issue when using VEC offers. Anyone using at.js should upgrade to this new version.
New registerExtension API.
This new API gives developers access to certain jQuery modules used in at.js to develop extensions (aka plugins) for the library. There are a few implications for this change. This impact only those users who are using these features:
getSettings() API has been removed, but the same functionality is available using registerExtension().
Existing extensions (e.g. AngularJS extensions) must be updated to use the registerExtension() approach.
New at.js notification API.
The goal of this notification system is to provide more insight into what at.js is doing on the page and when there are issues. A common issue seen with the VEC is that an IT release changes the page, a VEC selector breaks, and the test stops delivering content correctly. A goal of this notification system is to make this delivery issue known to the page, so developers can access this information, pass it to a system like Adobe Analytics, and alerts can be sent to the business owners that their test broke.
New targetGlobalSettings() API method.
You can override settings in the at.js library, rather than configuring the settings in the Target Standard/Premium UI or by using REST APIs.
Date: May 5, 2016.
This is the first official release of the at.js library.
at.js is a new implementation library for Target designed for both typical web implementations and single-page applications.
at.js replaces mbox.js for Adobe Target implementations.
Among other benefits, at.js improves page load times for web implementations, improves security, and provides better implementation options for single-page applications.
at.js contains the components that were included in target.js, so there is no longer a call to target.js.
When implementing at.js, be aware of the following: