Testar integração

Antes de começar

Para concluir com êxito o teste neste documento, você deve:

Testar a integração do SDK do iOS

O teste consiste em:

  1. Simular um clique no anúncio e instalar o aplicativo:
  2. Inspecione os dados de conversão da instalação.

Apps that implement ATT

Siga estas instruções se você implementar a transparência de rastreamento de aplicativos (ATT) em seu aplicativo.
A atribuição ocorrerá por meio de correspondência de ID se as seguintes condições forem atendidas:

  • O link de atribuição contém o idfa parameter
  • A ATT é implementada e:
    1. requestTrackingAuthorization é chamado antes de start (usando waitForATTUserAuthorization)
    2. O consentimento do usuário é dado.

Etapa 1: simular o clique no anúncio
Simule um clique no anúncio por meio de um link de atribuição. Estruture o link de atribuição da seguinte forma:

https://app.appsflyer.com/<app_id>?pid=<media_source>
&idfa=<registered_device_idfa>

Onde:

  • app_id é o ID do seu aplicativo AppsFlyer (incluindo o sufixo id )
  • pid é a fonte de mídia à qual a instalação deve ser atribuída
  • idfa é o IDFA do dispositivo registrado.

Exemplo
Se o ID do seu aplicativo for id123456789, o link de atribuição pode ser assim:

https://app.appsflyer.com/id123456789?pid=conversionTest1&idfa=1A2B3C4D-9128-4597-1234- 
04E23D654321

Etapa 2: instalar o aplicativo
Ative o modo de depuração e instale o aplicativo em um dispositivo de teste registrado.

Etapa 3: executar o teste
Continue inspecionando os dados de conversão.

Apps that don't implement ATT

Etapa 1: simular um clique no anúncio
Simule um clique no anúncio por meio de um link de atribuição. Estruture o link de atribuição da seguinte forma:

https://app.appsflyer.com/<app_id>?pid=<media_source>

Onde:

  • app_id é o ID do seu aplicativo AppsFlyer (incluindo o sufixo id )
  • pid é a fonte de mídia à qual a instalação deve ser atribuída.

Exemplo
Se o ID do seu aplicativo for id123456789, o link de atribuição pode ser assim:

https://app.appsflyer.com/id123456789?pid=conversionTest1

Etapa 2: instalar o aplicativo
Ative o modo de depuração e instale o aplicativo em qualquer dispositivo. Como o IDFA usado para registrar o dispositivo não está disponível, o registro do dispositivo não tem efeito nesse caso.

Etapa 3: executar o teste
Continue inspecionando os dados de conversão.

👍

Dica

Na maioria das vezes, os testes usando links de atribuição são realizados mais de uma vez. É por isso que é recomendável usar um dos parâmetros de atribuição para "versionar" seus testes. Isso facilita a compreensão de qual link acionou qual conversão.

No exemplo acima, o valor de pid is conversionTest1. Em testes consecutivos, incremente o valor de pid to conversionTest2, conversionTest3, entre outros.

Inspect conversion data

Depois de simular um clique no anúncio e instalar o aplicativo, siga estas etapas para inspecionar os dados de conversão da instalação.

Etapa 1: recupere o UID de instalação
Depois que o aplicativo estiver instalado, no terminal Xcode, procure por conversions.appsflyer. Procure o parâmetro uid e copie seu valor.

2452

Etapa 2: inspecionar os dados de conversão
Vá para a API de teste de dados de conversão e preencha os campos obrigatórios:

  1. app-id: o ID do seu aplicativo
  2. device_id: cole o valor de uid da etapa 1.
  3. devkey - Application's devkey. Learn here how to get it.

Em seguida, clique em Experimentar! para executar o teste.

Resultados esperados
Se o ATT for implementado e o consentimento do usuário for fornecido, o resultado será uma resposta 200 semelhante a (truncada para facilitar a leitura):

{
    ...
    "af_status" = "Non-organic";
    ...
    "match_type" = id_matching;
    "media_source" = conversionTest1;
    ...
}

Caso contrário, a atribuição ocorre probabilisticamente e o resultado é uma resposta 200 semelhante a (truncada para facilitar a leitura):

{
    ...
    "af_status" = "Non-organic";
    ...
    "match_type" = probabilistic;
    "media_source" = conversionTest1;
    ...
}

Se a instalação não for atribuída, o resultado será uma resposta 200 com o seguinte payload:

{
    "af_message" = "organic install";
    "af_status" = Organic;
    "install_time" = "2021-08-23 06:59:51.194";
    "is_first_launch" = 1;
}

📘

Observação

Pode levar até 30 minutos para que as instalações apareçam no painel.

Solução de problemas da integração do SDK do iOS

Instalações e eventos não são registrados

Pode haver várias razões pelas quais instalações e eventos não são registrados:

  • Formato de ID de aplicativo incorreto: se você especificar uma ID de aplicativo no formato errado, instalações e eventos não serão registrados. Ao definir a ID do aplicativo no arquivo delegado, certifique-se de que ele compreenda apenas números. Caso a ID do aplicativo esteja no formato incorreto, o registro exibe o seguinte erro:

    \[ERROR\] AppsFlyer: -\[AppsFlyerTracker validateAppID\] 
        AppsFlyer Error: appleAppID should be a number!
    
  • ID de aplicativo incorreta: se você especificar uma ID de aplicativo que não existe em sua conta, a instalação e os eventos não serão registrados. O registro mostra o seguinte erro:

    AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug:
            completionHandler:]_block_invoke sent information to server, status = 404
    

The 404 indica que o SDK não consegue encontrar o aplicativo em sua conta.

  • Chave do desenvolvedor incorreta: se você especificar uma chave do desenvolvedor incorreta, as instalações e os eventos não serão registrados. O registro mostra o seguinte erro:

    AppsFlyer: -[AppsFlyerHTTPClient 
    sendRequestEventToServer:isRequestFromCache:appID:isDebug:completionHandler:]
            _block_invoke sent information to server, status = 400
    

    O erro 400 indica que o SDK não consegue autenticar a solicitação para registrar instalações e eventos. Verifique se a chave do desenvolvedor é a correta. Além disso, certifique-se de que a chave do desenvolvedor contém apenas caracteres alfanuméricos.

    Correto:

    [AppsFlyerLib shared].appleAppID = @"340954503";
    

    Incorreto:

    [AppsFlyerLib shared].appleAppID = @"id340954503";
    

    Incorreto:

    [AppsFlyerLib shared].appleAppID = @"com.appslyer.sampleapp";
    

A ID do aplicativo e a chave do desenvolvedor estão corretas, mas a instalação não é registrada

Cenário
O aplicativo possui a ID do aplicativo e a chave do desenvolvedor corretas, mas as instalações não são registradas.

Possíveis causas


O SDK não foi iniciado corretamente. Certifique-se de chamar o método start em applicationDidBecomeActive:

    - (void)applicationDidBecomeActive:(UIApplication *)application { 
        [[AppsFlyerLib shared] start]; 
        }
    func applicationDidBecomeActive(application: UIApplication) { 
        AppsFlyerLib.shared().start() 
    }

O registro mostra "A chave do desenvolvedor da AppsFlyer está faltando ou está vazia. Suspendendo"

Cenário
Você está tentando ver as instalações e os eventos in-app no registro. O registro mostra "A chave do desenvolvedor do AppsFlyer está faltando ou está vazia. Suspendendo".

Possíveis causas

A chave do desenvolvedor não foi configurada. Certifique-se de configurá-lo em appDelegate no método didFinishLaunchingWithOptions :

[AppsFlyerLib shared].appsFlyerDevKey = @"<AF_DEV_KEY>";
AppsFlyerLib.shared().appsFlyerDevKey = "<AF_DEV_KEY>"

Instalação sempre atribuída a orgânica

Cenário
Você está testando a atribuição usando links de atribuição. Você implementou o ouvinte de conversão do SDK, mas o registro sempre mostra que a instalação é orgânica. Além disso, nenhuma instalação não orgânica é registrada no painel.

Possíveis causas

  1. O link de atribuição que você está usando está incorreto. Veja o nosso guia sobre links de atribuição.
  2. Certifique-se de que o dispositivo no qual você está testando está registrado.

A receita não é registrada corretamente

Cenário
Você está testando eventos in-app com receita. Os eventos aparecem no painel, mas a receita não foi registrada.

Possíveis causas


O parâmetro da receita não foi formatado corretamente. NÃO formate o valor de receita de forma alguma. Ele não deve conter separadores de vírgula, símbolo de moeda ou texto. Um evento de receita deve ser semelhante a 1234,56, por exemplo.

Estou recebendo um 404 em Gravação de instalações ou eventos

Cenário
Você está testando instalações e eventos in-app para ver se eles foram atribuídos à fonte de mídia correta. No entanto, a resposta 404 aparece tanto para instalações quanto para eventos in-app. Nem as instalações nem os eventos in-app aparecem no painel.

Possíveis causas


A resposta 404 indica que o ID do aplicativo está incorreto. Ver Instalações e Eventos não são gravados.

Recebo resposta 400 em Gravação de instalações ou eventos

Cenário
Você está tentando testar eventos in-app no registro. Ao acionar eventos, você vê a resposta 400 nos registros.

Possíveis causas


Isso pode indicar um problema com a chave do desenvolvedor. Verifique se a chave do desenvolvedor é a correta. Além do mais, certifique-se de que a chave do desenvolvedor contém somente caracteres alfanuméricos. Ver Instalações e Eventos não são gravados.

Recebo resposta 403 em Gravação de instalações ou eventos

Cenário
Você está tentando testar instalações e outros eventos de conversão no log. Ao disparar esses eventos, você verá a resposta 403 (proibido) nos logs.

Possíveis causas


This might be because you have the Zero package, which does not include attribution data; only data on clicks and impressions. To start receiving attribution data, learn more about the different AppsFlyer packages, and update as needed. You can also contact our customer engagement team at [email protected] if you have questions about our packages.

Criando um aplicativo de depuração do iOS

OPCIONAL
Você pode usar os recursos de configuração de compilação do Xcode para configurar um aplicativo de depuração fácil de usar. Ele permitirá que você alterne entre seus aplicativos de depuração e produção tocando nas condições de compilação ativas do Xcode.

📘

Observação

Se você não se importa em misturar dados de produção com tráfego de teste, pode pular para o teste da integração. Todos os testes podem ser realizados para aplicativos de produção e depuração.

Isso é obtido com uma configuração definida pelo usuário nas configurações de compilação do seu projeto e expondo-a por meio de uma propriedade info.plist .

Etapa 1: adicione um aplicativo de depuração à AppsFlyer
Adicione um novo aplicativo iOS pendente à AppsFlyer ou peça a um membro da equipe com acesso ao painel para adicioná-lo. Escolha qualquer ID de aplicativo disponível—você precisará disso na etapa 3.

Etapa 2: adicione uma configuração definida pelo usuário

  1. No Xcode, na visualização do navegador de arquivos, selecione a raiz do projeto e vá para Configurações de Construção.
  2. Clique em + na barra de ferramentas e selecione Adicionar Configuração Definida pelo Usuário. Neste caso, damos o nome AF_APP_ID.
  3. Expanda a Configuração Definida pelo Usuário que você acaba de criar:
    • Defina a Configuração Condicional de Depuração para a ID do aplicativo de teste (mencionado na etapa 1)
    • Defina a Configuração Condicional de Lançamento para a ID do aplicativo de produção.
987

Etapa 3: exponha IDs de aplicativos via info.plist
Vá para o projeto info.plist e adicione uma nova propriedade (chamada AFAppID neste caso). Defina seu valor como $(AF_APP_ID) (com base no nome da configuração definida pelo usuário na etapa 2).

971

Etapa 4: recupere e defina o ID do aplicativo
Para acessar e usar o ID do aplicativo durante a inicialização do SDK, adicione o seguinte código a didFinishLaunchingWithOptions No seu AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // ...
    guard let appID : String = Bundle.main.object(forInfoDictionaryKey: "AFAppID") as? String else {
        fatalError("Cannot find app ID")
    }
    AppsFlyerLib.shared().appleAppID = appID
    // ...
    return true
}

Etapa 5: execute o aplicativo usando a configuração de compilação de depuração
Para alterar a configuração de construção ativa:

  1. vá para Produto > Esquema > Editar Esquema....
  2. Selecione Executar e altere a Configuração de criação para Depurar ou Liberar, conforme necessário.
945

Agora, quando você usar a configuração de depuração para criar seu aplicativo, o Xcode usará a ID do aplicativo de depuração que você configurou na etapa 2.