De un vistazo: Implementa código adicional en el SDK de AppsFlyer para habilitar la atribución de promoción cruzada.
Implementar la atribución de promoción cruzada en el SDK
Nota
Los anuncios móviles habituales activan una URL al hacer clic en ellos. Los anuncios móviles de promoción cruzada no tienen enlace, sino que activan el método logAndOpenStore del SDK de AppsFlyer.
La atribución de clics e impresiones de promoción cruzada se realiza mediante dos llamadas a la API independientes, como se describe a continuación. También puedes pasar a cada llamada a la API un mapa de pares clave-valor, que puede ser cualquier cosa que se ajuste a tu caso de uso de promoción cruzada.
Por ejemplo, con el mapa de parámetros puedes configurar la ventana de lookback de clic y otros parámetros, como ID de anuncios y conjuntos de anuncios. También puedes marcar la campaña como campaña incentivada. Consulta el parámetro de atribución de AppsFlyer para obtener más información.
Para ver una lista de parámetros estándar que puedes pasar al método de la API, consulta el parámetro de atribución de AppsFlyer
En el primer inicio de la aplicación promocionada, puedes acceder a todos los parámetros originales a través de la API de datos de conversión del SDK, para Android o iOS.
Atribuir clics de promoción cruzada
Usa el siguiente código para atribuir el clic y abrir la página de la aplicación en la tienda de aplicaciones. El código crea un enlace de atribución y le añade el ID de publicidad del dispositivo.
String campaign = "Cross Promo Campaign";
Map<String, String> parameters = new HashMap();
parameters.put("af_sub1", "val");
parameters.put("custom_param", "val2");
CrossPromotionHelper.logAndOpenStore(this, "com.mygosoftware.android.loginbox", campaign, parameters);iOS te permite utilizar el componente StoreKit para abrir la App Store sin salir del contexto de tu aplicación. El siguiente fragmento de código muestra cómo abrir la clase StoreKit y comprobar que se ha inicializado correctamente. Puedes leer más sobre la documentación de StoreKit aquí.
static NSString *const kCrossPromotedAppId = @"123456789";
static NSString *const kCrossPromotedCampaign = @"test campaign";
- (void) crossPromotion {
NSDictionary *parameters = @{@"af_sub1": @"val", @"custom_param": @"val2" };
[AppsFlyerCrossPromotionHelper logAndOpenStore:kCrossPromotedAppId
campaign:kCrossPromotedCampaign
parameters:parameters
openStore:^(NSURLSession *urlSession, NSURL *clickURL)
{
NSURLSessionDataTask *dataTask;
dataTask = [urlSession dataTaskWithURL:clickURL
completionHandler:^(NSData * _Nullable data,
NSURLResponse * _Nullable response,
NSError * _Nullable error)
{
if (error) {
NSLog(@"AppsFlyer crossPromotionViewed Connection failed! Error - %@",[error localizedDescription]);
}
else
{
if (NSClassFromString(@"SKStoreProductViewController") == nil) {
NSString *iTunesLink = [linkGenerator generateLink];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink] options:@{} completionHandler:^(BOOL success) {
NSLog(@"AppsFlyer openAppStoreForAppID completionHandler result %d",success);
}];
}
}
}];
[dataTask resume];
if (NSClassFromString(@"SKStoreProductViewController") != nil) {
[self openStoreKit:kCrossPromotedAppId viewController:self];
}
}];
}
- (void) openStoreKit:(NSString*) appID
viewController: (UIViewController*) viewController
{
SKStoreProductViewController *storeController = [[ SKStoreProductViewController alloc ] init ];
NSDictionary *productParameters = @{ SKStoreProductParameterITunesItemIdentifier : appID };
[ storeController loadProductWithParameters: productParameters completionBlock:^( BOOL result, NSError *error )
{
if ( result )
{
[viewController presentViewController:storeController animated:YES completion:nil];
}
}];
Dictionary<string,string> parameters = new Dictionary<string,string>();
parameters.Add("af_sub1","val");
parameters.Add("custom_param","val2");
AppsFlyer.attributeAndOpenStore("com.mygosoftware.android.loginbox","test campaign",parameters);
En Android, la llamada a este método debería abrir Play Store y redirigir a la aplicación correspondiente.
Dictionary<string,string> parameters = new Dictionary<string,string>();
parameters.Add("af_sub1","val");
parameters.Add("custom_param","val2")
AppsFlyer.attributeAndOpenStore("123456789","test campaign",parameters);
En iOS, se genera un enlace de atribución y se devuelve al método onOpenStoreLinkGenerated en la interfaz IAppsFlyerUserInvite.
Nota
Puedes agregar cualquiera de estos parámetros de enlace de atribución al enlace generado.
Atribuir impresiones de promoción cruzada
Para atribuir una impresión, usa la siguiente llamada a la API. Asegúrate de usar el ID de aplicación promocionado tal y como aparece en el panel de control de AppsFlyer.
String appID = "com.app";
String campaign = "Cross Promo Campaign";
Map<String, String> parameters = new HashMap();
parameters.put("af_sub1", "val");
parameters.put("custom_param", "val2");
CrossPromotionHelper.logCrossPromoteImpression(this, appID, campaign, parameters);
val appID = "com.app"
val campaign = "Cross Promo Campaign"
val parameters = HashMap<String, String>()
parameters.put("af_sub1", "val")
parameters.put("custom_param", "val2")
CrossPromotionHelper.logCrossPromoteImpression(
this,
appID,
campaign,
parameters
)
static NSString *const kCrossPromotedAppId = @"123456789";
static NSString *const kCrossPromotedCampaign = @"test campaign";
/*...*/
- (void)viewDidLoad {
[super viewDidLoad];
NSDictionary *kCrossPromotedParameters = @{@"af_sub1": @"val", @"custom_param": @"val2" };
/* generate impression for cross-promotion */
[AppsFlyerCrossPromotionHelper logCrossPromoteImpression:kCrossPromotedAppId
campaign:kCrossPromotedCampaign parameters:kCrossPromotedParameters];
}var appID = "com.app" var campaign = "Cross Promo Campaign" var parameters = [String : String]() parameters["af_sub1"] = "val" parameters["custom_param"] = "val2" AppsFlyerCrossPromotionHelper.logCrossPromoteImpression(appID, campaign: campaign, parameters: parameters)
AppsFlyer.recordCrossPromoteImpression(string promotedAppID, string campaign);
Atribución de promoción cruzada con plataformas no nativas
Actualmente, las API de atribución de promoción cruzada solo están disponibles para los SDK nativos de Android e iOS y para Unity. Sin embargo, las plataformas no nativas pueden realizar la atribución de promoción cruzada con la misma eficacia. Entre ellas se incluyen plataformas como Adobe air, Cordova, Xamarin, React native, Marmalade, etc.
Para ello, debes crear un enlace de atribución, que se activa cuando el usuario hace clic en el anuncio de promoción cruzada. El enlace DEBE contener el nombre de la fuente de medios af_cross_promotion y el ID del sitio de la aplicación de origen.
Formato de URL de clics de promoción cruzada:
https://app.appsflyer.com/{PROMOTED APP ID}?pid=af_cross_promotion&
af_siteid={SOURCE APP NAME}
Formato de URL de impresiones de promoción cruzada:
https://impression.appsflyer.com/{PROMOTED APP ID}?pid=af_cross_promotion&
af_siteid={SOURCE APP NAME}
This article was translated automatically and may contain errors. The English version is the most accurate - use the language selector below to switch.