Integração
Você pode inicializar o plug-in usando o AppsFlyerObject pré-fabricado ou manualmente.
- Usando o AppsFlyerObject.prefab
- Instalação manual
- Colete IDFA com ATTrackingManager
- Envio de cópias de postback SKAN para a AppsFlyer
- Inicialização do MacOS
- Solicitar ouvintes (Opcional)
Usando o AppsFlyerObject.prefab
- Acesse Assets > AppsFlyer e arraste AppsFlyerObject.prefab para sua cena.
- Atualize os seguintes campos:
Configuração | Descrição |
---|---|
Chave do desenvolvedor (Dev key) | Chave do desenvolvedor da AppsFlyer, que pode ser acessada pelo seu painel da AppsFlyer. |
App ID | Seu ID de aplicativo do iTunes. (Caso seu app não seja para iOS deixe o campo vazio) |
Obter dados de conversão | Defina como verdadeiro se seu aplicativo estiver usando AppsFlyer para links diretos. |
isDebug | Defina como verdadeiro para visualizar os logs de depuração. (somente para desenvolvimento!) |
- 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.
Set customer user ID
Set your own unique customer user ID (CUID) and cross-reference it with the unique AppsFlyer ID.
- Appear in AppsFlyer raw data CSV reports.
- Can be used in postback APIs to cross-reference with internal IDs.
To set the CUID, use:
AppsFlyer.setCustomerUserId("someId");
Good practice! Set the CUID early in the app flow—it is only associated with events reported after its setup.
- Recorded events will be associated with the CUID.
- Related data will appear in the raw data reports for installs and events..
Associate the CUID with the install event
If it’s important for you to associate the install event with the CUID, call setCustomerUserId
antes de chamar startSDK
.
Colete IDFA com ATTrackingManager
-
Adicione o
AppTrackingTransparency
Estrutura para seu projeto xcode. -
No
Info.plist
:- Adicione uma entrada à lista: pressione + ao lado de
Information Property List
. - Role para baixo e selecione
Privacy - Tracking Usage Description
. - Adicione como valor o texto que você deseja apresentar ao usuário ao solicitar permissão para coletar o IDFA.
- Adicione uma entrada à lista: pressione + ao lado de
-
Chame a API
waitForATTUserAuthorizationWithTimeoutInterval
antes destartSDK()
#if UNITY_IOS && !UNITY_EDITOR AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60); #endif
-
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(); } /* ... */
Customizing the ATT consent dialog
A caixa de diálogo de consentimento da ATT pode ser personalizada modificando o Xcode do seu projeto info.plist
:
Para obter instruções detalhadas, consulte a documentação da Apple.
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
- Use o prefab
AppsFlyerObject
- Adicione o ID do seu aplicativo MacOS
- Crie para a plataforma
PC, Mac & Linux Standelone
e escolhaMacOS
como a plataforma de destino.
Solicitar ouvintes (Opcional)
- Anexe o script 'AppsFlyer.cs' ao objeto do jogo com o código init da AppsFlyer. (AppsFlyerObject, etc.)
- 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();
}
statusCode | errorDescription |
---|---|
200 | null |
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") |
40 | Network 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 |
Atualizado 12 dias atrás