Everything it takes to delivery digital experiences tailored to a specific individual is part of personalization. There are many different dimensions you can personalize:

  • Location
  • Date and time
  • Past activity
  • Current activity
  • Information a person has disclosed to you
  • Information you can infer from the person's behavior

With Uniform you can define these dimensions and associate conditions based on them which you then connect to components in an application. Uniform also provides the logic to evaluate these conditions and determine which is the best match.


These dimensions rely on classifying your audience.

To personalize an experience you select different variants of components to show to different visitors in a specific placement. Each variant can have criteria that allow it to be evaluated against the visitor's classification to determine if it's shown. A variant that has no criteria is the default variant that's shown to anyone if no more specific variant is matched.

To select a personalized variant, Uniform starts at the beginning of the placement's variant list. Each variant's criteria is evaluated, and the first matching variant is selected. It's important to order your variants so that the most specific variants are first, and the least specific (default) variants are last.

The following example the following placement is personalized:

  • Variant 1: Visitor score in the 'Consumer' audience is greater than 0
  • Variant 2: Visitor score in the 'Marketers' audience is less than 50
  • Variant 3: No criteria

In this scenario, a visitor who had:

  • No scores at all: Variant 3 is shown because none of the earlier variants match the visitor, and Variant 3 is a default variant
  • A score in the 'Consumer' audience of 50: Variant 1 because its criteria matched
  • A score in the 'Marketers' audience of 25: Variant 2 because its criteria of less than 50 matched
  • A score in the 'Marketers' audience of 51: Variant 3 because the marketer score is greater than variant 2's requirement
  • A score in both 'Consumer' and 'Marketers' audiences of 25: Variant 1 because it matched before Variant 2 (unless we were taking two or more variants for this placement)
  • A score in the 'Developers' audience of 5000: Variant 3 because there is no matching variant for this audience so the default is selected

Uniform allows you to create multiple placement criteria for a personalized variant, such as "The Consumer audience has the strongest score OR the Consumer audience score is greater than 450." This gives flexibility to handle advanced personalization scenarios, but do keep in mind that it's more maintainable to keep as much of your logic as possible in the classification taxonomy instead of in the placement.

Any effective personalization strategy must be measured to make sure it's having a positive effect. To enable this, Uniform enables you to connect its personalization results to any analytics tool available. Each personalized placement has a name which is sent to any connected analytics along with the variant that was selected. The resulting data can then be analyzed and reported on in any way the analytics tool allows.

Uniform ships with a connector for Google Analytics 4 that enables Uniform to send tracking events to Google Analytics. Uniform also provides a generic event-handling interface that can be used to send tracking events to any other system with minimal custom development.

In addition to tracking the effect of personalized variations, it's important to track the effect of personalization vs no personalization to ensure your strategy is working. Uniform supports setting a control group which is a percentage of your users that's not exposed to any personalized variant regardless of their classification. Whether the visitor is part of the control group is sent to analytics for analysis. Control group members won't be shown personalization.

The default settings don't enable a control group to avoid confusion during evaluation and testing. For production a value of 15% is recommended.

Edge-side personalization enables personalization instructions to run on a CDN. This offers a number of advantages to personalization that runs on the client or a server without requiring any changes to the content authoring process.

When customers look to achieve fast performance, elastic scale, enhanced security, and infrastructure efficiency of their web properties, they turn to Jamstack and static websites. Where static sites typically fail to deliver is when you need to alter the web experience of each individual visitor. The marketing users want to keep personalization and A/B testing capabilities, so they can continuously optimize the web experience and increase the conversions.

While there are client-side tools that work on the DOM-level, this approach predates the modern virtual DOM-based front-end libraries and frameworks, like React and Vue. This causes constant conflict for DOM (HTML), which results in flicker, content swaps, poor UX for your visitors in general, as well as a negative impact on Core Web Vitals.

This is when the digital architects turn back to the server-side rendering. Depending on the specific parameters of the solution, this may set you back in terms of infrastructure overhead and even performance. Going back from the Jamstack paradigm to more traditional server-side rendering can come with some trade-offs.

This is where the edge-side processing of static sites comes to the rescue. Powered by the edge compute capability of a Content Delivery Network, this functionality allows to continue generating static pages at build-time (Jamstack) but also provides the ability to modify page contents before it reaches the user's browser.

This allows keeping the best of both worlds: stellar performance, scale, and security characteristics that Jamstack is great for, and run personalization and A/B testing.

You can see an example of the kind of performance benefit involved. And since this works on a variety of CDNs, you can use the system you prefer. The following is the result of a real test using where you can see sub-second page-load time without any page flicker.


The following functionality is possible with Uniform's edge-side personalization:

  • Location-based personalization - CDNs that offer edge compute capabilities typically provide IP address-based location information to applications. Uniform exposes this location data as quirks that can be used to create signals for Uniform personalization.
  • Request-based personalization - All information available in the HTTP request can be used for personalization. This includes query-string parameters (such as utm_campaign) and cookies.
  • Visitor context personalization - Any information your app collects during the visitor's session can be used. This includes things like user preferences, profile details, and shopping history.
  • CDP-based personalization - Visitor information can be loaded from a CDP - or any API-based data context provider, for that matter. Once loaded, this information can be used as a basis for personalization.

Uniform edge-side personalization and A/B testing can run on any edge worker platform. Currently, we officially support the following CDNs. If your preferred CDN has edge compute capabilities but isn't listed above, contact us.