Integração do SDK da AppsFlyer - iOS

Versão atual: 4.4.1

O SDK da AppsFlyer fornece a funcionalidade de rastreamento de eventos e instalação do aplicativo. Nós desenvolvemos um SDK que é altamente robusto (mais de 8 bilhões de instalações de SDK até hoje), seguro, leve e muito simples de inserir.

Você pode rastrear instalações, atualizações e sessões (seguindo os passos obrigatórios abaixo), e também rastrear eventos in-app adicionais, além de instalações de app (incluindo compras in-app, níveis de jogo, etc.) para avaliar o ROI e os níveis de participação do usuário.

As etapas obrigatórias são explicadas abaixo, seguidas de recursos opcionais extras.

O SDK do iOS é compatível com todos os dispositivos iOS (iPhone, iPod, iPad) com iOS versão 6 e superior (incluindo 9).

NOTA: AppsFlyer SDK é totalmente compatível com IPv6 DNS64 da Apple / NAT64 Networks. Para mais informações, clique aqui.

Abordamos as seguintes seções neste guia:

Download do SDK do iOS                           

  • O que há de novo nesta versão?
  • Incorporação do SDK no seu aplicativo (Obrigatório)
  • Evento de instalação e inicialização do SDK (requisito mínimo para rastreamento)
  • API de rastreamento de eventos in-app (opcional)
  • Integração avançada
  • Testando a Integração SDK

Download do SDK do iOS

  • Para fazer download do SDK do iOS como uma biblioteca estática clique aqui
  • Para fazer download do SDK do iOS como um framework clique aqui.  

1.  O que há de novo nesta versão?

  • Manutenção e correções de bugs.

2.  Incorporação do SDK no seu aplicativo (obrigatório)

O SDK da AppsFlyer está disponível como um framework e uma biblioteca estática.

2.1 Framework do SDK da AppsFlyer

A maneira mais simples de integrar o framework é usando cocoapods:

  • Adicione a seguinte linha ao seu pod file:
pod ‘AppsFlyerFramework’

Se você não usar cocoapods, siga os passos abaixo:

  • No Xcode, vá para Build Phases >> Link Binary with Libraries >> Clique + para adicionar uma nova biblioteca

  • Clique Add Other e adicione o framework

  • Inclua o seguinte cabeçalho:
#import "AppsFlyerLib/AppsFlyerTracker.h"

2.2 Biblioteca estática do SDK da AppsFlyer

A maneira mais simples de integrar a biblioteca estática é usando cocoapods:

  • Adicione a seguinte linha ao seu pod file:
pod 'AppsFlyer-SDK'

Se você não usar cocoapods, siga os passos abaixo:

  • Adicione o header (cabeçalho) e os arquivos lib a seu projeto.
  • Adicione a importação do header do AppsFlyer:
#import <AppsFlyer/AppsFlyer.h>
  • Adicione o framework ao seu projeto e defina-o como opcional. Você pode encontrar as instruções de envio aqui.

2.3 IDFA

NOTA: AppsFlyer faz a coleta de IDFA apenas se você incluir AdSupport.framework

  • Adicione o framework ao seu projeto. Este passo é opcional.

3.  Evento de instalação e inicialização do SDK (requisito mínimo para rastreamento)

NOTA: Este é o requisito mínimo para começar a rastrear as instalações de seu app.

Você deve inicializar o SDK na primeira inicialização do app. Certifique-se de que o SDK é inicializado antes de enviar o rastreamento do evento abaixo.

3.1 Inicializando o SDK

Para inicializar o SDK, adicione o seguinte à função "didFinishLaunchingWithOptions":

[AppsFlyerTracker sharedTracker].appsFlyerDevKey = @"[Dev_Key]";
[AppsFlyerTracker sharedTracker].appleAppID = @"REPLACE THIS WITH YOUR App_ID";

NOTA: deve digitar o número apenas e não o prefixo da "ID".  Por exemplo, se sua App ID é id123456789 deve aparecer como:

[AppsFlyerTracker sharedTracker].appleAppID = @"123456789";

Substitua [Dev_Key] com sua própria Dev_Key (acessível em sua conta, veja Settings>> Integrate the SDK into... no painel do AppsFlyer). Por exe    mplo: a4kGpVyxm8iGgzvzT8NPaV

3.2 Adição do código

Adicione o seguinte código ao seu arquivo fonte AppDelegate.m na função "applicationDidBecomeActive":

#import "AppsFlyerTracker.h"
-(void)applicationDidBecomeActive:(UIApplication *)application
{
     // Track Installs, updates & sessions(app opens) (You must include this API to enable tracking)
     [[AppsFlyerTracker sharedTracker] trackAppLaunch];
}

4.  API de rastreamento de eventos in-app (opcional)

Esta API permite que o AppsFlyer rastreie eventos pós-instalação. Esses eventos são definidos pelo anunciante e incluem um nome de evento, além de valores de evento opcionais.

O rastreamento de eventos in-apps ajuda a medir e analisar como os usuários leais descobrem seu app e a atribuí-los a campanhas/fontes de mídia específicas. É aconselhável investir tempo e definir os eventos que você deseja medir para permitir rastrear o ROI (retorno sobre o investimento) e o LTV (valor da vida).

Sintaxe:

- (void) trackEvent:(NSString *)eventName withValues:(NSDictionary*)values

eventName é qualquer string para definir o nome do evento.

values (valores) é um dicionário de parâmetros do evento que compõem um evento rico.

Contando receitas como parte de um evento rico in-app: use o ' af_revenue "(constante)

AFEventParamRevenue

parâmetro de evento para contar receitas como parte de um evento in-app. Você pode preenchê-lo com qualquer valor numérico, positivo ou negativo.

NOTA:  “af_price” 

AFEventParamPrice

não se conta como receita e é um parâmetro descritivo que não afeta as receitas e as medições de LTV.

Exemplo 1: evento in-app de nível alcançado

[[AppsFlyerTracker sharedTracker] trackEvent: AFEventLevelAchieved withValues:@{        
    AFEventParamLevel: @9,
    AFEventParamScore : @100 }];

Isto gera um evento do tipo "af_level_achieved" com os seguintes valores de evento:

{af_level: 9 , af_score: 100}

Exemplo 2: evento de compra

[[AppsFlyerTracker sharedTracker] trackEvent:AFEventPurchase withValues: @{
    AFEventParamContentId:@"1234567",
    AFEventParamContentType : @"category_a",
    AFEventParamRevenue: @200,
    AFEventParamCurrency:@"USD"}];

Isto gera um evento do tipo "af_purchase" com os seguintes valores de evento:

{af_content_id: “1234567”, af_content_type: “category_a”, af_revenue: 200, af_currency: “USD”}

O evento de compra acima contém uma receita de $ 200, aparecendo como receita no painel.

NOTA: Um nome de evento in-app não deve ter mais que 45 caracteres.  Nomes de eventos com mais de 45 caracteres não aparecem no painel, mas apenas nos Dados não processados, APIs Pull e Push.

Para obter detalhes sobre os eventos ricos in-app do AppsFlyer para iOS, clique aqui.

5.  Integração avançada

As APIs abaixo são opcionais e fazem parte da integração avançada com o SDK da AppsFlyer.

5.1 Defina o código de moeda (opcional)

Você pode definir um código de moeda global, usando a API abaixo, além de códigos de moeda específicos que podem ser usados como parte de cada evento in-app enviado para AppsFlyer. O código de moeda global é usado quando "af_currency" (AFEventParamCurrency) não é enviado como parte de um evento in-app.

USD é o valor padrão.  Encontre os códigos de moeda ISO aceitáveis aqui.

Use a seguinte API para definir o código de moeda:

[[AppsFlyerTracker sharedTracker].currencyCode = @"GBP"];

5.2 Obtenha o ID Único de AppsFlyer (opcional)

Um ID único patenteado da AppsFlyer é criada para cada nova instalação de um aplicativo. O ID único de AppsFlyer é o ID principal usado pela AppsFlyer em Relatórios e APIs.

Use a seguinte API para obter o ID exclusivo do AppsFlyer:

(NSString *) [AppsFlyerTracker sharedTracker] getAppsFlyerUID

5.3 Defina o ID de usuário cliente (opcional)

Definir seu próprio ID de Cliente lhe permite fazer uma referência cruzada ao seu próprio ID único com o ID único da AppsFlyer e os IDs de outros dispositivos. Este ID está disponível nos relatórios CSV da AppsFlyer junto com APIs Postbacks para referência cruzada com seus IDs internos.

Para definir seu ID de Usuário Cliente:

[[AppsFlyerTracker sharedTracker].customerUserID = @"YOUR_CUSTOM_DEVICE_ID"];

NOTAS IMPORTANTES:

  • O ID de Cliente definido deve ser chamado antes do trackAppLaunch.
  • Recomenda-se definir seu ID de Usuário Cliente quanto antes possível, já que só é associada a eventos relatados após a definição desse atributo.
  • Você deve definir o ID de Usuário Cliente utilizando esta API para usar integrações do AppsFlyer com plataformas de Analytics como Mixpanel e Swrve.

Para obter mais informações sobre o ID de Usuário Cliente, clique aqui.

5.4 Obtenha dados de conversão (opcional)

AppsFlyer lhe permite acessar os dados de atribuição de usuário em tempo real diretamente no nível de SDK. Isto lhe permite personalizar a página inicial que um usuário vê na primeira abertura do app depois de uma instalação atualizada do app.

Para obter mais informações sobre esta funcionalidade avançada, le¡a aqui.

5.5 Ativando o Suporte da Extensão do App

A extensão de app requer de permissões para usar a Internet:

  1. Vá para plist file da extensão de seu app
  2. No NSExtension / NSExtensionAttributes, defina a bandeira de RequestsOpenAccess como SIM.

No Extension ViewController ViewDidLoad da extensão do aplicativo, inicialize AppsFlyerLib:

[AppsFlyerTracker sharedTracker].appsFlyerDevKey = @"YOUR_DEV_KEY_HERE";
[AppsFlyerTracker sharedTracker].appleAppID = @"APP_ID_HERE"; 
[AppsFlyerTracker sharedTracker].delegate = self;
[[AppsFlyerTracker sharedTracker] trackAppLaunch];

Para receber dados de conversão:

  1. Vá para o ViewController.h da extensão do app
  2. Importe o arquivo do header do Appsflyer
#import "AppsFlyerTracker.h"
  1. Adicione <AppsFlyerTrackerDelegate> na declaração da interface

No ViewController.m da extensão adicione os seguintes métodos:

-(void)onConversionDataReceived:(NSDictionary*) installData {
    id status = [installData objectForKey:@"af_status"];
   if([status isEqualToString:@"Non-organic"]) {     
      id sourceID = [installData objectForKey:@"media_source"];      
      id campaign = [installData objectForKey:@"campaign"];      
      NSLog(@"This is a none organic install. Media source: %@  Campaign: %@",sourceID,campaign);      
  } else if([status isEqualToString:@"Organic"]) {      
      NSLog(@"This is an organic install.");      
  }
 }
-(void)onConversionDataRequestFailure:(NSError *) error {  
  NSLog(@"%@",error);
}
- (void) onAppOpenAttribution:(NSDictionary*) attributionData {  
  NSLog(@"attribution data: %@", attributionData);
}
- (void) onAppOpenAttributionFailure:(NSError *)error {
  NSLog(@"%@",error);
 }

5.6 Defina o e-mail do usuário (opcional)

AppsFlyer lhe permite informar um ou mais endereços de e-mail do usuário. O desenvolvedor deve coletar os endereços de e-mail do usuário e informá-los à AppsFlyer de acordo com o método de criptografia desejado pelo desenvolvedor. Os métodos de criptografia a seguir estão disponíveis: SHA1, MD5 e plain.

Exemplo:

[[AppsFlyerTracker sharedTracker] setUserEmails:@[@"email1@domain.com", 
@"email2@domain.com"] withCryptType:EmailCryptTypeSHA1];

5.7 Como informar Deeplinks para atribuição de retargeting (opcional)

AppsFlyer lhe permite informar inicializações iniciadas através de deeplinks e Universal Links e analisar o desempenho de suas campanhas de atribuição de retargeting.

Para informar essas inicializações, adicione o seguinte código para o delegado do app:

// Reports app open from a Universal Link for iOS 9
- (BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler
{    [[AppsFlyerTracker sharedTracker] continueUserActivity:userActivity restorationHandler:restorationHandler];
return YES;
}
// Reports app open from deeplink for iOS 8 or below
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
      sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
{
[[AppsFlyerTracker sharedTracker] handleOpenURL:url
      sourceApplication:sourceApplication];
return YES;
}

Para mais informações, consulte o Guia de configuração OneLink.

5.8 Validação de recibo de compra in-app (opcional)

NOTA: esta função é suportada para iOS7 e superior.

O SDK da AppsFlyer pode fornecer verificação de servidor de compras in‐app. Para definir o rastreamento de validação de recibo, precisa chamar o método validateAndTrackInAppPurchase dentro da ação completeTrans do SKStoreKit: callback. Esta chamada automaticamente gera um evento "af_purchase" in-app.

- (void) validateAndTrackInAppPurchase:(NSString *) productIdentifier
price:(NSString *) price
currency:(NSString *) currency
transactionId:(NSString *) tranactionId
additionalParameters:(NSDictionary *) params
success:(void (^)(NSDictionary *response)) successBlock
failure:(void (^)(NSError *error, id reponse)) failedBlock;

Esta chamada tem dois blocos de retorno de chamada, um para 'Sucesso' e outro para 'Falha' (por qualquer motivo, incluindo falha na validação). Em caso de sucesso, um dicionário é devolvido com os dados de validação do recibo fornecidos pelos servidores da Apple.  

IMPORTANTE: Para propósitos de teste, recomendamos que defina a bandeirauseReceiptValidationSandbox como SIM, já que isso redireciona as solicitações para os servidores de sandbox da Apple.

[AppsFlyerTracker sharedTracker].useReceiptValidationSandbox = YES;

Exemplo:

[[AppsFlyerTracker sharedTracker] validateAndTrackInAppPurchase:product.productIdentifier price:product.price.stringValue
currency:@"USD"
transactionId:trans.transactionIdentifier
additionalParameters:@{@"test": @"val" , @"test1" : @"val 1"}
success:^(NSDictionary *result){
               NSLog(@"Purcahse succeeded And verified!!! response: %@", result[@"receipt"]);
} failure:^(NSError *error, id response) {
               NSLog(@"response = %@", response);
}];

5.9 Usuário final Opt-Out (Opcional)

AppsFlyer fornece-lhe um método para optar por usuários específicos de análise AppsFlyer. Este método está em conformidade com os mais recentes requisitos de privacidade e conformidade com os dados do Facebook e políticas de privacidade. O padrão é NÃO, o que significa que o rastreamento é ativado por padrão. Utilize este API durante a inicialização do SDK na Seção 4 a explicitly opt-out:

[AppsFlyerTracker sharedTracker].deviceTrackingDisabled = YES;

5.11 Opção explícita de exclusão do ID para anunciantes – IDFA/IFA (opcional)

O SDK da AppsFlyer faz a coleta de IDFA somente se a biblioteca AdSupport.framework estiver incluída em seu projeto. Não há nenhuma necessidade de opção explícita de inclusão ou exclusão. No entanto, se você desejar ter a opção explícita de exclusão de IDFA, use a seguinte API durante a inicialização do SDK na seção 4:

[AppsFlyerTracker sharedTracker].disableAppleAdSupportTracking = YES;

O IDFA NÃO é coletado para os servidores do AppsFlyer quando o rastreamento de disableAppleAdSupport for definido como SIM.

5.12 Implementando Deep Linking com Um Link (opcional)

Onelink desencadeia um aplicativo para abrir no local deeplink mencionando o esquema sob o parâmetro af_dp, ou os links Universal para iOS9.

Você pode implementar o onAppOpenAttribution callback chamado pelo AppsFlyer SDK. Ele retorna os parâmetros Onelink usados para acionar o aplicativo aberto. Em seguida, você pode analisar os valores e aplicar a lógica para acionar a página da aplicação relevante.

Para mais informações, clique aqui.

5.13 Medições de notificações por Push (opcional)

AppsFlyer permite medir notificações por push como parte de uma campanha publicitária.

--(void) application:(UIApplication ​*)application didReceiveRemoteNotification:(NSDictionary *​)userInfo {
   [[AppsFlyerTracker sharedTracker] handlePushNotification:userInfo];
}

6.  Como testar a integração do SDK

Para aprender a testar a integração do SDK antes do envio para a App Store clique aqui e para depois de enviar à App Store clique aqui.

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0
Tem mais dúvidas? Submeter um pedido
Powered by Zendesk