Dados de conversão

Neste guia, você aprenderá como obter dados de conversão usando o SDK do iOS, além de exemplos de uso.

Antes de começar

A obtenção de dados de conversão requer que você primeiro integre o SDK.

Obtendo dados de conversão no SDK do iOS

#import "AppDelegate.h"
#import <AppsFlyerLib/AppsFlyerLib.h>

@interface AppDelegate ()
@end
@implementation AppDelegate
    // ...
    -(void)onConversionDataSuccess:(NSDictionary*) installData {
    // Invoked when conversion data resolution succeeds
}
-(void)onConversionDataFail:(NSError *) error {
    // Invoked when conversion data resolution fails
    NSLog(@"%@",error);
}
// ...
@end
import UIKit
import AppsFlyerLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    // ..
}

extension AppDelegate: AppsFlyerLibDelegate {

    func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
        // Invoked when conversion data resolution succeeds
    }

    func onConversionDataFail(_ error: Error!) {
        // Invoked when conversion data resolution fails
    }
}

onConversionDataSuccess

onConversionDataSuccess é implementado em AppsFlyerLibDelegate.
O método onConversionDataSuccess é invocado sempre que:

  • Um usuário abre o aplicativo
  • Um usuário move o aplicativo para o primeiro plano

Quando chamado, onConversionDataSuccess retorna um NSDictionary (chamado installData no exemplo) que contém dados de atribuição para essa instalação. installData é armazenado em cache pela primeira vez onConversionDataSuccess é chamado e será idêntico em chamadas consecutivas.

onConversionDataFail

onConversionDataFail é implementado em AppsFlyerLibDelegate.
Se, por qualquer motivo, o SDK falhar em buscar os dados de conversão, onConversionDataFail is invoked.

Acessando dados de atribuição

Você pode obter o tipo de conversão verificando o valor de af_status no payload de onConversionDataSuccess. Pode ser um dos seguintes valores:

  • Organic
  • Non-organic

Exemplo

Veja a seguir um exemplo de implementação:

#import "AppDelegate.h"
#import <AppsFlyerLib/AppsFlyerLib.h>
#import <UserNotifications/UserNotifications.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
    // ...
-(void)onConversionDataSuccess:(NSDictionary*) installData {
    // Business logic for Non-organic install scenario is invoked
    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 Non-organic install. Media source: %@  Campaign: %@",sourceID,campaign);
    }

    else if([status isEqualToString:@"Organic"]) {
        // Business logic for Organic install scenario is invoked
        NSLog(@"This is an Organic install.");
    }

}
-(void)onConversionDataFail:(NSError *) error {
    NSLog(@"%@",error);
}
// ...
@end
import UIKit
import AppsFlyerLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, AppsFlyerLibDelegate {
    // ...
}

extension AppDelegate: AppsFlyerLibDelegate {

    func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
        if let status = installData["af_status"] as? String {
            if (status == "Non-organic") {
                // Business logic for Non-organic install scenario is invoked
                if let sourceID = installData["media_source"],
                let campaign = installData["campaign"] {
                    print("This is a Non-organic install. Media source: \(sourceID)  Campaign: \(campaign)")
                }
            }
            else {
                // Business logic for organic install scenario is invoked
            }
        }
    }

    func onConversionDataFail(_ error: Error!) {
        // Logic for when conversion data resolution fails
        if let err = error{
            print(err)
        }
    }
}

Link do Github

Deferred deep linking (método herdado)

Quando o aplicativo é aberto por meio de deferred deep linking, o payloaad de onConversionDataSuccessretorna dados de deep linking, bem como dados de atribuição.