Visão geral dos recursos compatíveis

Adobe TargetOs SDKs do lado do servidor da 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 decisão no dispositivo para funcionar, consulte a seguinte lista de recursos compatíveis:

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

Tipos de atividades

A tabela a seguir indica quais tipos de atividades criado usando o Experience Composer baseado em formulário são compatíveis ou não com o decisão no dispositivo.

Direcionamento de público

A tabela a seguir indica quais regras de público-alvo são ou não compatíveis com o decisão no dispositivo.

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 do Experience Cloud (Públicos-alvo da Adobe Audience Manager, Adobe Analytics e Adobe Experience Manager
Não

Direcionamento geográfico para decisão no dispositivo

Para manter uma latência próxima de zero para decisão no dispositivo atividades com públicos baseados em geografia, a Adobe recomenda que você forneça os valores geográficos na chamada para getOffers. Faça isso configurando o Geo objeto no Context do pedido. 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 o 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 Geo no servidor, mas ainda quiser realizar decisão no dispositivo para getOffers que contêm públicos com base geográfica, isso também é compatível. A desvantagem dessa abordagem é que ela usará uma pesquisa remota de IP para Geo, o que adicionará latência a cada getOffers chame. Essa latência deve ser menor que uma latência remota getOffers chamada, já que ela atinge um CDN localizado próximo ao seu servidor. Você só deve fornecer o ipAddress no campo Geo objeto no Context de sua solicitação, para que o SDK recupere a localização geográfica do endereço IP do usuário. Se qualquer outro campo além do campo ipAddress for fornecida, a variável Target O SDK 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 são ou não compatíveis com decisão no dispositivo.

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