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)
}
}
}
Deferred deep linking (método herdado)
Quando o aplicativo é aberto por meio de deferred deep linking, o payloaad de onConversionDataSuccess
retorna dados de deep linking, bem como dados de atribuição.
- A prática recomendada é implementar deep links com Unified Deep Linking (UDL)
- Para clientes existentes e referência, aqui está nosso guia de deep links legados para iOS, usando
onConversionDataSuccess
.
Atualizado 4 meses atrás