Show Menu
TÓPICOS×

Realizar uma busca prévia por conteúdos em oferta no iOS

O recurso de busca prévia do Adobe Target usa o SDK móvel do iOS para buscar conteúdos em oferta a menor quantidade de vezes possível ao armazenar as respostas do servidor em cache.
A funcionalidade de busca prévia nos SDKs móveis para iOS não é compatível com os tipos de atividades de Destino automático, Alocação automática e Personalização automatizada no Adobe Target.
Esse processo reduz o tempo de carregamento, previne várias chamadas de rede e permite que o Adobe Target seja notificado sobre que mbox foi visitada pelo usuário do aplicativo móvel. Todo o conteúdo será recuperado e armazenado em cache durante a chamada da busca prévia, e esse conteúdo será recuperado do cache em todas as chamadas futuras que contenham conteúdo armazenado em cache para o nome da mbox especificado.
O conteúdo da busca prévia não persiste entre inicializações. O conteúdo da busca prévia é armazenado em cache enquanto o aplicativo estiver executando ou até que o método clearPrefetchCache() seja chamado.
As APIs de busca prévia do Target estão disponíveis desde a versão 4.14.0 do SDK. Para obter mais informações sobre as limitações de parâmetros, consulte Parâmetros de entrada de lotes .
No SDK de versão 4.14 ou posterior, se especificado, a environmentId``ADBMobileConfig.json é extraída do arquivo ao iniciar uma chamada v2 batch mbox TnT. Caso nenhuma environmentId esteja especificada nesse arquivo, nenhum parâmetro de ambiente é enviado pela chamada TNT batch mbox, e a oferta é entregue ao ambiente padrão.
Por exemplo:
if (MobileConfig.getInstance().mobileUsingTarget()){ 
            long environmentID = MobileConfig.getInstance().getEnvironmentID(); 
            if(environmentID != 0L){ 
                parametersJson.put(TargetJson.ENVIRONMENT_ID, environmentID); 
            } 
        }

Métodos de busca prévia

Estes são os métodos que podem ser usados para realizar a busca prévia no iOS:
  • targetPrefetchContent
    Envia uma solicitação de busca prévia com uma matriz de localizações para o servidor do Target configurado e retorna o status da solicitação na chamada de retorno fornecida.
    • Esta é a sintaxe para este método:
      (void) targetPrefetchContent:(nonnull NSArray*)targetPrefetchObjectArray 
                     withProfileParameters:(nullable NSDictionary*)profileParameters 
                            callback:(nullable void(^)(BOOL success))callback;
      
      
    • Estes são os parâmetros para este método:
      • targetPrefetchArray
        Matriz de TargetPrefetchObjects que contém o nome e os mboxParameters para cada localização do Target na qual se deve realizar uma busca prévia.
      • profileParameters
        Contém as chaves e os valores dos parâmetros de perfil a ser usados com cada localização de busca prévia nesta solicitação.
      • callback
        Invocado quando a busca prévia está concluída. Retorna true se a busca prévia foi bem-sucedida, e false caso contrário.
  • targetLoadRequests
    Executa uma solicitação em lote em várias localizações de mbox especificadas no vetor de solicitações. Cada objeto na matriz contém uma função de chamada de retorno, que será invocada quando o conteúdo estiver disponível na localização da mbox fornecida.
    Se o conteúdo das localizações solicitadas já estiver armazenado em cache, ele será retornado imediatamente na chamada de retorno fornecida. Caso contrário, o SDK enviará uma solicitação de rede para que os servidores do Target recuperem o conteúdo.
    • Esta é a sintaxe para este método:
      (void)targetLoadRequests:(nonnullNSArray*)requests 
               withProfileParameters:(nullableNSDictionary*)profileParameters;
      
      
    • Estes são os parâmetros para este método:
      • requests
        Matriz de TargetRequestObjects que contém o nome, o conteúdo padrão, os parâmetros e a função de chamada de retorno para cada localização a ser recuperada.
      • profileParameters
        Contém as chaves e os valores dos parâmetros de perfil a ser usados com cada localização de busca prévia nesta solicitação.
  • targetPrefetchClearCache
    Limpa os dados armazenados em cache pela busca prévia do Target.
    • Esta é a sintaxe para este método:
      (void) targetPrefetchClearCache; 
      
      
    • Não há parâmetros para este método.
  • targetRequestObjectWithName
    Cria e retorna uma instância de TargetRequestObject com os dados fornecidos.
    • Esta é a sintaxe para este método:
      +(nullableADBTargetRequestObject*)targetRequestObjectWithName:(nonnullNSString*)name
      defaultContent:(nonnullNSString*)defaultContent
      mboxParameters:(nullableNSDictionary*)mboxParameters
      callback:(nullablevoid(^)(NSString*__nullablecontent))callback;
      
      
    • Não há parâmetros para este método.
  • createTargetPrefetchObject
    Cria e retorna uma instância de TargetPrefetchObject com os dados fornecidos.
    • Esta é a sintaxe para este método:
      +(nullable ADBTargetPrefetchObject *) targetPrefetchObjectWithName:(nonnullNSString *)name
      mboxParameters:(nullableNSDictionary *)mboxParameters;
      
      

Classes públicas

Estas são as classes públicas que oferecem suporte para a busca prévia no iOS:

Referência da classe: TargetPreFetchObject

Encapsula o nome e os parâmetros da mbox usados na busca prévia da mbox.
  • name
    Nome do local/mbox que você deseja recuperar.
    • Tipo : NSString*
  • mboxParameters
    Um dicionário opcional que contém os pares de chave-valor para os parâmetros da mbox.
    • Tipo : NSDictionary*
  • orderParameters
    Dicionário que contém os pares de chave-valor para os parâmetros de ordem.
    • Tipo : NSDictionary*
  • productParameters
    Dicionário que contém os pares de chave-valor para os parâmetros de produto.
    • Tipo : NSDictionary*

Referência de classe: TargetRequestObject

Essa classe encapsula o nome da mbox, o conteúdo padrão, os parâmetros da mbox e a função de retorno usada nas solicitações de localização do Target.
  • name
    Nome da localização solicitada.
    • Tipo : NSString*
  • mboxParameters
    O valor NSString que representa o nome da localização/mbox que você deseja recuperar.
    • Tipo : NSString*
  • defaultContent
    O conteúdo padrão que será retornado se os servidores do Target não puderem ser alcançados.
    • Tipo : NSString*
  • callback
    Quando o lote solicita as localizações do Target, a chamada de retorno será invocada quando o conteúdo estiver disponível nesta localização.
    • Tipo : função

Amostra de código

Este é um exemplo de como realizar uma busca prévia por conteúdo por meio dos SDKs do iOS:
/** 
 * Prefetch Content 
 */ 
  
    NSDictionary *mboxParameters1 = @{@"status":@"platinum"}; 
    NSDictionary *productParameters1 = @{@"id":@"24D3412", 
                                        @"categoryId":@"Books"}; 
    NSDictionary *orderParameters1 = @{@"id":@"ADCKKIM", 
                                      @"total":@"344.30", 
                                      @"purchasedProductIds":@"34, 125, 99"};

    NSDictionary *mboxParameters2 = @{@"userType":@"Paid"}; 
    NSDictionary *productParameters2 = @{@"id":@"764334", 
                                         @"categoryId":@"Online"}; 
  
    NSArray *purchaseIDs = @[@"id1",@"id2"]; 
    NSDictionary *orderParameters2 = @{@"id":@"4t4uxksa", 
                                       @"total":@"54.90", 
                                       @"purchasedProductIds":purchaseIDs};

    // Creating Prefetch Objects 
    ADBTargetPrefetchObject *prefetch1 = [ADBMobile targetPrefetchObjectWithName:@"logo" mboxParameters:mboxParameters1]; 
    prefetch1.productParameters = productParameters1; 
    prefetch1.orderParameters = orderParameters1; 
  
    ADBTargetPrefetchObject *prefetch2 = [ADBMobile targetPrefetchObjectWithName:@"buttonColor" mboxParameters:mboxParameters2]; 
    prefetch2.productParameters = productParameters2; 
    prefetch2.orderParameters = orderParameters2; 

    // Creating prefetch Array 
    NSArray *prefetchArray = @[prefetch1,prefetch2]; 
  
    // Creating Profile parameters 
    NSDictionary *profileParmeters = @{@"age":@"20-32"};

    // Target API Call 
    [ADBMobile targetPrefetchContent:prefetchArray withProfileParameters:profileParmeters callback:^(BOOL isSuccess){ 
       // do something with the Boolean result 
    }];

Este é um exemplo de loadRequest em lote com os SDKs do iOS:
/** 
 * Batch loadRequest  
 */ 
  
   NSDictionary *mboxParameters1 = @{@"status":@"platinum"}; 
   NSDictionary *productParameters1 = @{@"id":@"24D3412", 
                                        @"categoryId":@"Books"}; 
   NSDictionary *orderParameters1 = @{@"id":@"ADCKKIM", 
                                      @"total":@"344.30", 
                                      @"purchasedProductIds":@"34, 125, 99"};

    NSDictionary *mboxParameters2 = @{@"userType":@"Paid"}; 
    NSDictionary *productParameters2 = @{@"id":@"764334", 
                                         @"categoryId":@"Online"}; 
    NSArray *purchaseIDs = @[@"id1",@"id2"]; 
    NSDictionary *orderParameters2 = @{@"id":@"4t4uxksa", 
                                       @"total":@"54.90", 
                                       @"purchasedProductIds":purchaseIDs};

    ADBTargetRequestObject *request1 = [ADBMobile targetRequestObjectWithName:@"logo" defaultContent:@"BlueWhale" mboxParameters:mboxParameters1 callback:^(NSString *content){ 
        // do something with the received content 
    }]; 
  
    request1.productParameters = productParameters1; 
    request1.orderParameters = orderParameters1;

    ADBTargetRequestObject *request2 = [ADBMobile targetRequestObjectWithName:@"buttonColor" defaultContent:@"red" mboxParameters:mboxParameters2 callback:^(NSString *content){ 
        // do something with the received content 
    }]; 
    request2.productParameters = productParameters1; 
    request2.orderParameters = orderParameters1;

    // create request object array 
    NSArray *requestArray = @[request1,request2]; 
  
    // Call the API 
    [ADBMobile targetLoadRequests:requestArray withProfileParameters:profileParmeters];

Informações adicionais

Estas são algumas informações adicionais sobre essas amostras:
  • ProductParameters permite somente as seguintes chaves:
    • id
    • categoryId
  • OrderParameters permite somente as seguintes chaves:
    • id
    • total
    • purchasedProductIds
  • purchasedProducts aceita uma matriz de sequências de caracteres.