Campo ID de usuário cliente (CUID)

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

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 chamar start, 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.
Obtenção do ID de usuário do 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:

Java Kotlin
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);
  }
}

Instruções para desenvolvedores do iOS SDK

Para definir sua identificação de usuário cliente:

Objective-C Swift
[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 chamar start, 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.
Obtenção do ID de usuário do 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:

Objective-C Swift
NSString *customerUserID = [AppsFlyerLib shared].customerUserID;
Atrasar init do SDK para 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:

Objective-C Swift
- (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
    }
}

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.