Supported features for on-device decisioning

Last update: 2023-08-29
  • Topics:
  • at.js
    View more on this topic
  • Created for:
  • Developer

The Adobe Target JS SDK gives customers the flexibility to choose between performance and freshness of data for decisions. In other words, if delivering the most relevant and engaging personalized content via machine learning is most important to you, a live server call should be made. But when performance is more critical, an on-device and in-memory decision should be made. For on-device decisioning to work, refer to the following sections that list the features that are supported.

Supported activity types

The following table indicates which activity types created by the Form-based Experience Composer or Visual Experience Composer (VEC) are supported or not supported for on-device decisioning.

Activity type Supported?
A/B Test Yes
Auto-Allocate No
Auto-Target Premium No
Multivariate Test (MVT) No
Experience Targeting (XT) Yes
Automated Personalization Premium No
Recommendations Premium No
Activities using Analytics for Target (A4T) Yes

Audience targeting

The following table indicates which audience rules are supported or not supported for on-device decisioning.

Audience rule Supported?
Geo Yes

When using on-device decisioning, the following geo attributes are supported:

  • Country/Region
  • City
  • Latitude
  • Longitude
Network No
Mobile No
Custom parameters Yes
Operating System Yes
Site Pages Yes
Browser Yes
Visitor Profile No
Traffic Sources No
Time Frame Yes
Adobe Experience Cloud Audiences

(Audiences from Adobe Analytics, Adobe Audience Manager, and Adobe Experience Manager)


Geo targeting for on-device decisioning

To maintain minimal latency for on-device decisioning activities with geo-based audiences, Adobe recommends you provide the geo values yourself in the call to getOffers. Set the Geo object in the Context of the request. This means from the browser, a way to determine the location of each visitor. For example, you can perform an IP-to-Geo lookup, using a service you configure. Some hosting providers, such as Google Cloud, provide this functionality via custom headers in each HttpServletRequest.{
    decisioningMethod: "on-device",
    request: {
        context: {
            geo: {
                city: "SAN FRANCISCO",
                countryCode: "US",
                stateCode: "CA",
                latitude: 37.75,
                longitude: -122.4
        execute: {
            pageLoad: {}

However, if you are not able to perform IP-to-Geo lookups on your server, but you still want to perform on-device decisioning for getOffers requests that contain geo-based audiences, this is also supported. The downside of this approach is that it uses a remote IP-to-Geo lookup, which adds latency to each getOffers call. This latency should be lower than a getOffers call with server-side decisioning, because it hits a CDN that is located close to your server. Provide only the “ipAddress” field in the Geo object in the Context of your request for the SDK to retrieve the geo-location of your visitor’s IP address. If any other field in addition to the “ipAddress” is provided, the Target SDK will not fetch the geo-location metadata for resolution.{
    decisioningMethod: "on-device",
    request: {
        context: {
            geo: {
                ipAddress: ""
        execute: {
            pageLoad: {}

Allocation method

The following table indicates which allocation methods are supported or not supported for on-device decisioning.

Allocation method Supported?
Manual Yes
Auto-allocate to best experience No
Auto-target for personalized experiences No

On this page