Visão geral: cruze seus dados internos com os dados de atribuição da AppsFlyer pelo campo Customer User ID (CUID).
Como implementar o CUID
O campo ID de usuário cliente (CUID) é um identificador de usuário único definido pelos proprietários do aplicativo e do site.
- CUID é reportado por você para a AppsFlyer usando APIs ou SDKs da AppsFlyer.
- A AppsFlyer preenche o campo CUID em relatórios de dados brutos conforme necessário.
- Use o CUID para fazer referência cruzada entre os dados de atribuição da AppsFlyer e os seus outros dados usando o CUID como chave.
- Exemplo: um usuário com dois dispositivos tem o mesmo CUID ("1234567"). Cada vez que executam um evento em um dispositivo, ele é gravado junto do CUID. Isso permite ao anunciante agregar os dados brutos de ambos os dispositivos em uma visão completa do usuário.
- O CUID é usado pelas soluções Audiences e Atribuição Baseada em Pessoas da AppsFlyer para maior precisão e direcionamento.
Design e privacidade do CUID
- A AppsFlyer valoriza e respeita a sua privacidade e a dos usuários.
- Não permitimos a coleta ou transferência de informações pessoais diretamente identificáveis para a plataforma AppsFlyer.
- Para garantir a privacidade de seus usuários, crie o CUID sem informações que identifiquem diretamente o usuário. Por exemplo, ele não deve incluir o endereço de e-mail do usuário, nome, número de telefone, número de documento de identidade etc.
- Leitura relacionada: Práticas recomendadas para evitar o envio de informações de identificação pessoal (PIIs)
Atrasar a ativação do SDK até que o CUID esteja configurado
É possível atrasar a ativação do SDK até que o CUID seja configurado. Além de sua lógica de negócios, considere o seguinte antes de fazer isso:
-
Prós:
- Os dados de atribuição são sempre associados a um CUID.
- Use o CUID para associar dados de atribuição a outros dados que você tem em seus sistemas.
- Isso permite uso e processamento mais sofisticados dos dados que você obtém da AppsFlyer.
-
Contras:
- As ações e eventos que os usuários realizam, como compras e assinaturas, não são registrados na AppsFlyer até que o CUID seja definido. Isto pode gerar discrepâncias e pode afetar a detecção de fraudes (que não podem necessariamente ser identificadas antes da inicialização do SDK).
Observação: se a ativação do SDK for atrasada até que haja um CUID, e nenhum CUID for configurado, o SDK não informa nenhum dado (incluindo uma instalação).
Configuração do CUID
Instruções para desenvolvedores do Android SDK
Para definir sua identificação de usuário cliente:
public void setCustomerUserId(String id);
Exemplo de uso:
AppsFlyerLib.getInstance().setCustomerUserId("myId");
Recomendamos definir o ID de usuário cliente no início do fluxo do aplicativo, pois ele está associado apenas aos eventos relatados após sua configuração:
- Se
setCustomerUserID
for chamado antes de chamarstart
, a ID de usuário cliente aparecerá nos relatórios de dados brutos para instalações e eventos. - Se for definida depois, a ID de usuário cliente será associada apenas a eventos registrados após a configuração da ID de usuário cliente.
Para evitar definir novamente o valor do ID de usuário cliente após a primeira inicialização, e para reduzir as chamadas ao seu servidor para obter o ID de usuário cliente, você pode verificar se seu valor está vazio ou não, usando:
AppsFlyerProperties.getInstance().getString(AppsFlyerProperties.APP_USER_ID)
Atrasar init do SDK para customerUserID
É possível atrasar a inicialização do SDK até que o customerUserID esteja definido.
Para indicar que o SDK deve atrasar a inicialização para a chamada do ID de usuário cliente:
AppsFlyerLib.getInstance().waitForCustomerUserId(true);
imediatamente antes do método init(). O resto da inicialização do SDK deve permanecer inalterado.
Uma vez que o customerUserID foi fornecido, chame
AppsFlyerLib.getInstance().setCustomerIdAndLogSession("customer_id", this);
para fornecer o SDK com o ID de usuário do cliente relevante e iniciar o SDK.
O código deve aparecer da seguinte maneira:
public class AFApplication extends Application {
private static final String AF_DEV_KEY = "qrdZGj123456789";
@Override
public void onCreate() {
super.onCreate();
AppsFlyerConversionListener conversionDataListener =
new AppsFlyerConversionListener() {
...
};
AppsFlyerLib.getInstance().waitForCustomerUserId(true);
//WARNING! Removing above line doesn't cancel its effect.
// Replace with this to stop waiting for CUID:
// AppsFlyerLib.getInstance().waitForCustomerUserId(false);
AppsFlyerLib.getInstance().init(AF_DEV_KEY, getConversionListener(), getApplicationContext());
AppsFlyerLib.getInstance().start(this);
// Do your magic to get the customerUserID
// ...
// any AppsFlyer SDK code invoked here will be discarded
//Call the following API once the customerUserID is available:
AppsFlyerLib.getInstance().setCustomerIdAndLogSession("customer_id", this);
}
}
class AFApplication: Application() {
private val afDevKey = ""
override fun onCreate() {
super.onCreate()
val conversionDataListener = object: AppsFlyerConversionListener {
...
}
AppsFlyerLib.getInstance().waitForCustomerUserId(true);
//WARNING! Removing above line doesn't cancel its effect.
// Replace with this to stop waiting for CUID:
// AppsFlyerLib.getInstance().waitForCustomerUserId(false);
AppsFlyerLib.getInstance().init(afDevKey, conversionDataListener, this)
AppsFlyerLib.getInstance().start(this)
// Do your magic to get the customerUserID
// ...
// any AppsFlyer SDK code invoked here will be discarded
// Call the following API once the customerUserID is available:
AppsFlyerLib.getInstance().setCustomerIdAndLogSession("customer_id", this)
}
}
Instruções para desenvolvedores do iOS SDK
Para definir sua identificação de usuário cliente:
[AppsFlyerLib shared].customerUserID = @"my user id";
AppsFlyerLib.shared().customerUserID = "my user id"
No iOS, o ID de usuário cliente precisa ser definido a cada inicialização do aplicativo. Recomendamos definir o ID de usuário cliente no início do fluxo do aplicativo, pois ele está associado apenas aos eventos relatados após sua configuração:
- Se
setCustomerUserID
for chamado antes de chamarstart
, a ID de usuário cliente aparecerá nos relatórios de dados brutos para instalações e eventos. - Se for definida depois, a ID de usuário cliente será associada apenas a eventos registrados após a configuração da ID de usuário cliente.
Para evitar definir novamente o valor do ID de usuário cliente após a primeira inicialização, e para reduzir as chamadas ao seu servidor para obter o ID de usuário cliente, você pode verificar se seu valor está vazio ou não, usando:
NSString *customerUserID = [AppsFlyerLib shared].customerUserID;
let customerUserID = AppsFlyerLib.shared().customerUserID
É possível atrasar a inicialização do SDK até que o ID de usuário cliente esteja definido. Isso é útil se seus dados de instalação e de eventos forem importantes para você e contiverem seu ID de usuário cliente.
Implemente o seguinte código:
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSString *customUserId = [[NSUserDefaults standardUserDefaults] stringForKey:@"customerUserId"]; // Your custom logic of retrieving CUID
if (customUserId != nil && ![customUserId isEqual: @""]) {
[AppsFlyerLib shared].customerUserID = customUserId; // Set CUID in AppsFlyer SDK for this session
[[AppsFlyerLib shared] start]; // Start
}
}
func applicationDidBecomeActive(_ application: UIApplication) {
let customUserId = UserDefaults.standard.string(forKey: "customUserId") // your logic to retrieve CUID
if(customUserId != nil && customUserId != ""){
AppsFlyerLib.shared().customerUserID = customUserId // Set CUID in AppsFlyer SDK for this session
AppsFlyerLib.shared().start() // Start
}
}
Atribuição baseada em pessoas
A Atribuição baseada em pessoas da AppsFlyer (PBA) oferece uma ampla perspectiva sobre o impacto das campanhas móveis e da web, assim como a capacidade de analisar seus esforços para mudar os usuários da web para seu aplicativo móvel e vice-versa.
Você deve definir o mesmo CUID em ambientes mobile e da web, permitindo insights e análises entre as plataformas.