Adicione o parâmetro at_property à solicitação de pré-busca

As Propriedades do Adobe Target são definidas na interface Target e são usadas para estabelecer limites para personalizar aplicativos e sites. O parâmetro at_property identifica a propriedade específica em que suas ofertas e atividades são acessadas e mantidas. Adicionaremos uma propriedade às solicitações de pré-busca e de localização ao vivo.

OBSERVAÇÃO
É possível ou não ver as opções de Propriedades na interface do Target, dependendo da sua licença. Se você não tiver essas opções ou se não usar as Propriedades na empresa, vá para a próxima seção desta lição.

Você pode recuperar seu valor at_property na interface Target em Setup > Properties. Passe o mouse sobre a propriedade, selecione o ícone do trecho de código e copie o valor at_property:

Copiar at_property

Adicione-o como parâmetro para cada local na solicitação de pré-busca, desta forma:
Adicionar parâmetro at_property
Este é o código atualizado da função targetPrefetchContent() (atualize o texto do espaço reservado your at_property value goes here!):

public void targetPrefetchContent() {
        List<TargetPrefetchObject> prefetchList = new ArrayList<>();

        Map<String, Object> params1;
        params1 = new HashMap<String, Object>();
        params1.put("at_property", "your at_property value goes here");

        prefetchList.add(Target.createTargetPrefetchObject(Constant.wetravel_engage_home, params1));
        prefetchList.add(Target.createTargetPrefetchObject(Constant.wetravel_engage_search, params1));
        Target.TargetCallback<Boolean> prefetchStatusCallback = new Target.TargetCallback<Boolean>() {
            @Override
            public void call(final Boolean status) {
                HomeActivity.this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        String cachingStatus = status ? "YES" : "NO";
                        System.out.println("Received Response from prefetch : " + cachingStatus);
                        engageMessage();
                        setUp();

                    }
                });
            }};
        Target.prefetchContent(prefetchList, null, prefetchStatusCallback);
    }

Observação sobre parâmetros

Para projetos futuros, você pode implementar parâmetros adicionais. O método createTargetPrefetchObject() permite três tipos de parâmetros: locationParams, orderParams e productParams. Consulte a documentação para obter mais detalhes sobre como adicionar esses parâmetros à solicitação de pré-busca.

Observe também que diferentes parâmetros de localização podem ser adicionados a cada localização na solicitação de pré-busca. Por exemplo, você pode criar outro Mapa chamado param2, colocar um novo parâmetro nele e, em seguida, definir param2 em um local e param1 com outro local. Veja um exemplo:

prefetchList.add(Target.createTargetPrefetchObject(location1_name, params1);
prefetchList.add(Target.createTargetPrefetchObject(location2_name, params2);

Validar o parâmetro at_property na solicitação de pré-busca

Agora execute o emulador e use o Logcat para verificar se a at_property é exibida na solicitação de pré-busca e na resposta para ambos os locais:
Validar o parâmetro at_property

Adicionar parâmetros personalizados à solicitação de localização ao vivo

A solicitação de localização ao vivo (wetravel_context_dest) foi adicionada na lição anterior para que possamos exibir uma promoção relevante na tela de confirmação final do processo de reserva. Gostaríamos de personalizar a promoção com base no destino do usuário e, para isso, adicionaremos isso como parâmetro à solicitação. Também adicionaremos um parâmetro para a origem do trop e o valor at_property.

Adicione os seguintes parâmetros à função targetLoadRequest() no controlador ThankYouActivity:
Adicionar Parâmetros à Solicitação de Local Dinâmico
Este é o código atualizado da função targetLoadRequest() (certifique-se de atualizar o texto do espaço reservado "adicione seu valor at_property aqui"!):

public void targetLoadRequest(final ArrayList<Recommandation> recommandations) {
    Map<String, Object> locationParams = new HashMap<>();
    locationParams.put("at_property","add your at_property value here");
    locationParams.put("locationSrc", (""+Utility.getInSharedPreference(ThankYouActivity.this,Constant.departure,"")));
    locationParams.put("locationDest", (""+Utility.getInSharedPreference(ThankYouActivity.this,Constant.destination,"")));

    Target.loadRequest(Constant.wetravel_context_dest, "", null, null, locationParams, new Target.TargetCallback<String>() {
        @Override
        public void call(final String response) {
        try {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    AppDialogs.dialogLoaderHide();
                    filterRecommendationBasedOnOffer(recommandations, response);
                    recommandationbAdapter.notifyDataSetChanged();
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
        }
    });
    Target.clearPrefetchCache();
}