Bullseye ATX: Taking Adobe Target to the Next Level of Optimization

January 25, 2024 | Bryan Williams
Bullseye ATX: Taking Adobe Target to the Next Level of Optimization

Users often encounter issues with Flicker when they are implementing Target. The Bullseye ATX offering helps combat these issues by “productizing” a solution that can be easily implemented with little to no code. It also handles another personalization use case and creates a baseline to expand into further use cases later. Here, we will define Bullseye ATX, discuss anti-flickr configs, and offer content fragment recommendations.

What is Bullseye ATX?

Many of our projects at Bounteous use Adobe Experience Manager (AEM) for web content and Adobe Target for personalization. Adobe provides integrations between these two products, including inline targeting as well as both experience fragment and content fragment export for Target offers. However, there have been opportunities to build on these products with tools to help optimize, streamline, and introduce new functionality. We have now committed these custom features to a public repository where they can be utilized by others in the Adobe Target world. Bullseye ATX (Adobe Target Extras) is a repository of custom tools or enhancements built specifically for Target. As of this writing, there are two AEM-based tools. However, Bullseye ATX is not intended to be exclusive to AEM. It can—and eventually will—contain useful extensions, libraries, scripts, etc.


Anti-Flicker Configs

One of the arguably less considered problems to solve with front-end personalization involves "flicker.” This refers to instances where something is displayed on a page but then replaced by something else as the user watches the screen render. It's not the worst thing that could happen, and some might even decide to let it be, but it is generally considered a bad experience and confusing to the site visitor. 

In the screenshot below you can see a scenario where a page loads with a picture of a cliff by a river and text that reads "Camping in Western Australia.” After a split second, the content changes to a similar but different picture of a boat on a lake with a bridge in the background and text that reads "Boat Rentals on Lake Union.” A visitor to the site may have seen something about camping and Australia that caught their interest—but then it was changed and they are left wondering where it went. This experience can cause frustration that results in higher bounce rates.


The general solution to this is to use the JavaScript snippet provided by Adobe; however, it's very basic and simply hides the body of the page until Target is done loading. Additionally, depending on how it's implemented, it will run on every page of the site, regardless if any personalization has been configured in Target, let alone if it occurs above the fold. With Bullseye Anti-Flicker configs, you get the following features:

  • Domain and path restrictions
  • CSS selectors to determine targeted components
  • Pre/post-personalization JavaScript snippets
  • Configurable timeouts
  • Built-in Target completion listeners
  • No code deploys required
  • All are manageable from the AEM interface


Content Fragment Recommendations (CF Recs)

Adobe Target Recommendations allow users to set up personalized offers for visitors of a site based on what else they have viewed or purchased. Of course, you can't offer recommendations without products. Entities that you want to recommend might not always be purchasable, such as a restaurant or hotel. A good place to consider storing these structured items—especially if your site is powered by Adobe Experience Manager—is in AEM Content Fragments. This allows users to create specific schemas (Content Fragment Models) for each type with appropriate properties that can be filled out by a content author. There are a few out-of-the-box options to get products into Target Recommendations, but how can they be uploaded to Content Fragments? This AEM tool utilizes Adobe IO and the Target Recommendations API to manage uploading your Content Fragments so they can be utilized for recommendations. Users can explicitly push fragments or trigger them on activation. CF Model fields can be mapped to Recommendation fields, including those that are predefined in Target, or proprietary custom fields. It’s even possible to map to Sling Model properties for dynamic values.


After a Content Fragment is pushed to Target, it can take a while before that fragment is visible in the Recommendations Catalog. Until then, it can be difficult to determine what is in the push queue. That is where the Entities List screen of CF Recs comes in. This allows users to see the current state of entities that have been pushed via Bullseye and manually delete entities from this screen.


Try Bullseye ATX for Yourself 

This project is a continual work in progress with updates being made to improve the experience of the existing features and add new tools that may be useful when working with Target.
Want to try it out? Find the code—plus a video presentation and slides from adaptTo() 2023 that goes through each feature—on GitHub.