Integração

Você pode inicializar o plug-in usando o AppsFlyerObject pré-fabricado ou manualmente.

Usando o AppsFlyerObject.prefab

  1. Acesse Assets > AppsFlyer e arraste AppsFlyerObject.prefab para sua cena.


  2. Atualize os seguintes campos:
ConfiguraçãoDescrição
Chave do desenvolvedor (Dev key)Chave do desenvolvedor da AppsFlyer, que pode ser acessada pelo seu painel da AppsFlyer.
App IDSeu ID de aplicativo do iTunes. (Caso seu app não seja para iOS deixe o campo vazio)
Obter dados de conversãoDefina como verdadeiro se seu aplicativo estiver usando AppsFlyer para links diretos.
isDebugDefina como verdadeiro para visualizar os logs de depuração. (somente para desenvolvimento!)
  1. Atualize o código em Assets > AppsFlyer > AppsFlyerObjectScript.cs com outra API disponível.

Instalação manual

Crie um objeto de jogo e adicione o seguinte código de init:

using AppsFlyerSDK;

public class AppsFlyerObjectScript : MonoBehaviour
{
  void Start()
  {
    AppsFlyer.initSDK("devkey", "appID");
    AppsFlyer.startSDK();
  }
}

Observação:

  • Certifique-se de não chamar 'destroy' no objeto do jogo.
  • Use DontDestroyOnLoad para manter o objeto ao carregar uma nova cena.

Colete IDFA com ATTrackingManager

  1. Adicione o AppTrackingTransparency Estrutura para seu projeto xcode.

  2. No Info.plist:

    1. Adicione uma entrada à lista: pressione + ao lado de Information Property List.
    2. Role para baixo e selecione Privacy - Tracking Usage Description.
    3. Adicione como valor o texto que você deseja apresentar ao usuário ao solicitar permissão para coletar o IDFA.
  3. Chame a API waitForATTUserAuthorizationWithTimeoutInterval antes de startSDK()

    #if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60);
    #endif
    
  4. Solicite a autorização de acompanhamento onde deseja exibir o prompt:

    você pode usar o pacote a seguir ou qualquer outro pacote que permita solicitar a autorização de acompanhamento.

    
    using Unity.Advertisement.IosSupport;
    
    /*  ... */
    
    if (ATTrackingStatusBinding.GetAuthorizationTrackingStatus() 
         == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
        {
            ATTrackingStatusBinding.RequestAuthorizationTracking();
        }
     /*  ... */
    

Envio de cópias de postback SKAN para a AppsFlyer

Para registrar o ponto final da AppsFlyer, você precisa adicionar a chave NSAdvertisingAttributionReportEndpoint ao seu info.plist e definir o valor como https://appsflyer-skadnetwork.com/.
Mais informações sobre como atualizar o info.plist podem ser encontradas aqui.


Inicialização do MacOS

  1. Use o prefab AppsFlyerObject
  2. Adicione o ID do seu aplicativo MacOS
  3. Crie para a plataforma PC, Mac & Linux Standelone e escolha MacOS como a plataforma de destino.

Solicitar ouvintes (Opcional)

  1. Anexe o script 'AppsFlyer.cs' ao objeto do jogo com o código init da AppsFlyer. (AppsFlyerObject, etc.)
  2. Adicione o seguinte código antes de startSDK()

Exemplo de resposta de sessões:

    void Start()
    {
        AppsFlyer.OnRequestResponse += AppsFlyerOnRequestResponse;
        
        AppsFlyer.initSDK(devKey, appID, this);
        AppsFlyer.startSDK();
    }

    void AppsFlyerOnRequestResponse(object sender, EventArgs e)
    {
        var args = e as AppsFlyerRequestEventArgs;
        AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + args.statusCode);
    }

Exemplo de resposta in-app:

    void Start()
    {
        AppsFlyer.OnInAppResponse += (sender, args) =>
        {
            var af_args = args as AppsFlyerRequestEventArgs;
            AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + af_args.statusCode);
        };
        
        AppsFlyer.initSDK(devKey, appID, this);
        AppsFlyer.startSDK();
    }


statusCodeerrorDescription
200null
10"Event timeout. Check 'minTimeBetweenSessions' param" ("Tempo limite do evento. Verifique parâmetro 'minTimeBetweenSessions'")
11"Skipping event because 'isStopTracking' enabled" ("Ignorando evento porque 'IsStopTracking' está ativado")
40Network error: Error description comes from Android (Erro de rede: descrição do erro vem do Android)
41"No dev key" ("Sem chave do desenvolvedor")
50"Falha no código de status" + código de resposta real do servidor