Översikt över funktioner som stöds

Serversidesbaserade SDK:er för Adobe Target ger utvecklare flexibilitet att välja mellan prestanda och aktualitet för data för beslut. Med andra ord, om det viktigaste är att leverera det mest relevanta och engagerande personaliserade innehållet via maskininlärning, bör du ringa ett live-serversamtal. Men när prestanda är viktigare bör man fatta ett beslut på enheten. För att on-device decisioning ska fungera, se följande lista över funktioner som stöds:

  • Typ av aktivitet
  • Målgruppsanpassning
  • Allokeringsmetod

Typ av aktivitet

Tabellen nedan visar vilka aktivitetstyper som skapats med formulärbaserade Experience Composer som stöds eller inte stöds för on-device decisioning.

Målgruppsanpassning

Tabellen nedan visar vilka målgruppsregler som stöds eller inte stöds för on-device decisioning.

Målgruppsregel
Beslut på enheten
Geo
Ja
Nätverk
Nej
Mobil
Nej
Egna parametrar
Ja
Operativsystem
Ja
Webbplatssidor
Ja
Webbläsare
Ja
Besökarprofil
Nej
Trafikkällor
Nej
Tidsram
Ja
Experience Cloud-målgrupper (målgrupper från Adobe Audience Manager, Adobe Analytics och Adobe Experience Manager)
Nej

Geografisk målinriktning för on-device decisioning

Adobe rekommenderar att du anger geovärdena själv i anropet till getOffers för att behålla nästan noll-fördröjning för on-device decisioning-aktiviteter med geobaserade målgrupper. Gör detta genom att ställa in objektet Geo i Context för begäran. Det innebär att servern behöver ett sätt att avgöra var varje slutanvändare befinner sig. Servern kan till exempel utföra en IP-till-Geo-sökning med en tjänst som du konfigurerar. Vissa värdtjänstleverantörer, som Google Cloud, tillhandahåller den här funktionen via anpassade rubriker i varje HttpServletRequest.

Node.js
code language-csharp line-numbers
const CONFIG = {
    client: "acmeclient",
    organizationId: "1234567890@AdobeOrg",
    decisioningMethod: "on-device"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
    request: {
        context: {
            geo: {
                city: "SAN FRANCISCO",
                countryCode: "US",
                stateCode: "CA",
                latitude: 37.75,
                longitude: -122.4
            }
        },
        execute: {
            pageLoad: {}
        }
    }
})
Java
code language-javascript line-numbers
public class TargetRequestUtils {

    public static Context getContext(HttpServletRequest request) {
        Context context = new Context()
            .geo(ipToGeoLookup(request.getRemoteAddr()))
            .channel(ChannelType.WEB)
            .timeOffsetInMinutes(330.0)
            .address(getAddress(request));
        return context;
    }

    public static Geo ipToGeoLookup(String ip) {
        GeoResult geoResult = geoLookupService.lookup(ip);
        return new Geo()
            .city(geoResult.getCity())
            .stateCode(geoResult.getStateCode())
            .countryCode(geoResult.getCountryCode());
    }

}

Om du inte kan utföra IP-till-Geo-sökningar på servern, men ändå vill utföra on-device decisioning för getOffers-begäranden som innehåller geobaserade målgrupper, stöds detta också. Nackdelen med den här metoden är att den kommer att använda en fjärr-IP-till-Geo-sökning, som lägger till fördröjning till varje getOffers-samtal. Den här fördröjningen bör vara lägre än ett getOffers-fjärranrop, eftersom den träffar ett CDN som ligger nära servern. Du får bara ange fältet ipAddress i objektet Geo i Context i din begäran för att SDK ska kunna hämta den geografiska platsen för användarens IP-adress. Om något annat fält förutom ipAddress anges kommer Target SDK inte att hämta metadata för geopositionering för upplösning.

Node.js
code language-csharp line-numbers
const CONFIG = {
    client: "acmeclient",
    organizationId: "1234567890@AdobeOrg",
    decisioningMethod: "on-device"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
    request: {
        context: {
            geo: {
                ipAddress: "127.0.0.1"
            }
        },
        execute: {
            pageLoad: {}
        }
    }
})
Java
code language-javascript line-numbers
public class TargetRequestUtils {

    public static Context getContext(HttpServletRequest request) {
        Context context = new Context()
            .geo(new Geo().ipAddress(request.getRemoteAddr()))
            .channel(ChannelType.WEB)
            .timeOffsetInMinutes(330.0)
            .address(getAddress(request));
        return context;
    }

}

Allokeringsmetod

Följande tabell visar vilka allokeringsmetoder som stöds eller inte stöds för on-device decisioning.

recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3