Visão geral dos recursos compatíveis

Os SDKs do lado do servidor do Adobe Target oferecem aos desenvolvedores flexibilidade para escolher entre desempenho e atualização de dados para decisões. Em outras palavras, se o fornecimento do conteúdo personalizado mais relevante e envolvente por meio do aprendizado de máquina for mais importante para você, uma chamada de servidor em tempo real deverá ser feita. Mas quando o desempenho é mais crítico, uma decisão no dispositivo deve ser tomada. Para que o on-device decisioning funcione, consulte esta lista de recursos com suporte:

  • Tipos de atividades
  • Direcionamento de público
  • Método de Alocação

Tipos de atividades

A tabela a seguir indica quais tipos de atividades criados com o Experience Composer baseado em formulário têm suporte ou não têm suporte para on-device decisioning.

Direcionamento de público

A tabela a seguir indica quais regras de público-alvo têm ou não suporte para on-device decisioning.

Regra de público-alvo
Decisão no dispositivo
Geografia
Sim
Rede
Não
Móvel
Não
Parâmetros personalizados
Sim
Sistema operacional
Sim
Páginas do site
Sim
Navegador
Sim
Perfil do visitante
Não
Fontes de Tráfego
Não
Intervalo de tempo
Sim
Públicos-alvo do Experience Cloud (públicos-alvo do Adobe Audience Manager, Adobe Analytics e Adobe Experience Manager
Não

Direcionamento geográfico para on-device decisioning

Para manter uma latência próxima de zero para atividades on-device decisioning com públicos baseados em localização geográfica, a Adobe recomenda que você mesmo forneça os valores geográficos na chamada para getOffers. Faça isso definindo o objeto Geo no Context da solicitação. Isso significa que seu servidor precisará de uma maneira de determinar a localização de cada usuário final. Por exemplo, o servidor pode executar uma pesquisa de IP para Geo usando um serviço configurado por você. Alguns provedores de hospedagem, como a Google Cloud, fornecem essa funcionalidade por meio de cabeçalhos personalizados em cada 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());
    }

}

No entanto, se você não tiver a capacidade de realizar pesquisas de IP para Geografia no servidor, mas ainda quiser executar on-device decisioning para getOffers solicitações que contenham públicos com base geográfica, isso também será suportado. A desvantagem dessa abordagem é que ela usará uma pesquisa remota de IP para Geo, o que adicionará latência a cada chamada getOffers. Essa latência deve ser menor que uma chamada remota getOffers, pois atinge um CDN localizado próximo ao seu servidor. Você deve fornecer somente o campo ipAddress no objeto Geo no Context de sua solicitação para que o SDK recupere a localização geográfica do endereço IP do seu usuário. Se qualquer outro campo além de ipAddress for fornecido, o SDK Target não buscará os metadados de localização geográfica para resolução.

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;
    }

}

Método de alocação

A tabela a seguir indica quais métodos de alocação têm ou não suporte para on-device decisioning.

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