Översikt över funktioner som stöds

Adobe TargetMed SDK:er på serversidan kan utvecklare välja mellan prestanda och aktualitet för data vid 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 on-device decisioning om du vill arbeta kan du läsa följande lista över funktioner som stöds:

  • Typ av aktivitet
  • Målgruppsanpassning
  • Allokeringsmetod

Typ av aktivitet

I följande tabell visas vilka aktivitetstyper som skapats med Formulärbaserad Experience Composer stöds eller stöds inte 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 anpassning för on-device decisioning

För att behålla latenstid nära noll för on-device decisioning Adobe rekommenderar att du själv anger geovärdena i anropet till getOffers. Gör detta genom att ställa in Geo -objektet i Context om 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 sökningen on-device decisioning for getOffers -förfrågningar som innehåller geobaserade målgrupper stöds också. Nackdelen med detta är att det kommer att använda en fjärransluten IP-till-Geo-sökning som lägger till fördröjning för varje getOffers ring. Den här fördröjningen bör vara lägre än en fjärranslutning getOffers eftersom det träffar ett CDN som ligger nära servern. Du får bara ange ipAddress fältet i Geo -objektet i Context 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 tillhandahålls, Target SDK hämtar inte 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