Prueba la integración
Antes de comenzar
Para completar correctamente la prueba en este documento, debes:
Probar la integración del SDK para iOS
La prueba consiste en:
- Simular un clic en un anuncio e instalar la aplicación:
- Si implementas ATT, sigue estas instrucciones.
- Si no implementas ATT, sigue estas instrucciones.
- Inspecciona los datos de conversión de la instalación.
Apps that implement ATT
Sigue estas instrucciones si implementas la Transparencia de seguimiento de aplicaciones (ATT) en tu aplicación.
La atribución se realizará a través de la coincidencia de ID si se cumplen las siguientes condiciones:
- El enlace de atribución contiene el parámetro
idfa
parameter - La ATT se implementa y:
requestTrackingAuthorization
se llama antes destart
(utilizandowaitForATTUserAuthorization
)- Se da el consentimiento del usuario.
Paso 1: Simular el clic en el anuncio
Simula un clic en un anuncio mediante un enlace de atribución. Estructura el enlace de atribución de la siguiente manera:
https://app.appsflyer.com/<app_id>?pid=<media_source>
&idfa=<registered_device_idfa>
Donde:
app_id
es tu ID de aplicación de AppsFlyer (incluyendo el sufijoid
)pid
es la fuente de medios a la que se debe atribuir la instalación.idfa
es el IDFA del dispositivo registrado.
Ejemplo
Si tu ID de aplicación es id123456789
, el enlace de atribución podría tener este aspecto:
https://app.appsflyer.com/id123456789?pid=conversionTest1&idfa=1A2B3C4D-9128-4597-1234-
04E23D654321
Paso 2: Instalar la aplicación
Habilita el modo de depuración e instala la aplicación en un dispositivo de prueba registrado.
Paso 3: Ejecutar la prueba
Continúa para inspeccionar los datos de conversión.
Apps that don't implement ATT
Paso 1: Simular un clic en un anuncio
Simula un clic en un anuncio mediante un enlace de atribución. Estructura el enlace de atribución de la siguiente manera:
https://app.appsflyer.com/<app_id>?pid=<media_source>
Donde:
app_id
es tu ID de aplicación de AppsFlyer (incluyendo el sufijoid
)pid
es la fuente de medios a la que se debe atribuir la instalación.
Ejemplo
Si tu ID de aplicación es id123456789
, el enlace de atribución podría tener este aspecto:
https://app.appsflyer.com/id123456789?pid=conversionTest1
Paso 2: Instalar la aplicación
Habilita el modo de depuración e instala la aplicación en cualquier dispositivo: ya que el IDFA utilizado para registrar el dispositivo no está disponible, el registro del dispositivo no tiene ningún efecto en este caso.
Paso 3: Ejecutar la prueba
Continúa para inspeccionar los datos de conversión.
Consejo
La mayoría de las veces, las pruebas que utilizan enlaces de atribución se realizan más de una vez. Es por eso que se recomienda usar uno de los parámetros de atribución para la "versión" de tus pruebas, lo que hace que sea más fácil entender qué enlace desencadenó qué conversión.
En el ejemplo anterior, el valor de
pid
isconversionTest1
. En pruebas consecutivas, incrementa el valor depid
toconversionTest2
,conversionTest3
, y así sucesivamente.
Inspect conversion data
Después de simular un clic en un anuncio e instalar la aplicación, sigue estos pasos para inspeccionar los datos de conversión de la instalación.
Paso 1: Recuperar el UID de instalación
Una vez instalada la aplicación, en el terminal de Xcode, busca conversions.appsflyer
. Busca el parámetro uid
y copia su valor.

Paso 2: Inspeccionar los datos de conversión
Ve a la API de prueba de los datos de conversión y rellena los campos obligatorios:
app-id
: tu ID de aplicacióndevice_id
: pega el valor deuid
del paso 1.devkey
- Application's devkey. Learn here how to get it.
Luego, haz clic en ¡Probar! para ejecutar la prueba.
Resultados esperados
Si se implementa ATT y se otorga el consentimiento del usuario, el resultado es una respuesta 200 similar a (truncado para facilitar la lectura):
{
...
"af_status" = "Non-organic";
...
"match_type" = id_matching;
"media_source" = conversionTest1;
...
}
De lo contrario, la atribución se produce probabilísticamente y el resultado es una respuesta 200 similar a (truncada para la legibilidad):
{
...
"af_status" = "Non-organic";
...
"match_type" = probabilistic;
"media_source" = conversionTest1;
...
}
Si la instalación no está atribuida, el resultado es una respuesta 200 con la siguiente carga útil:
{
"af_message" = "organic install";
"af_status" = Organic;
"install_time" = "2021-08-23 06:59:51.194";
"is_first_launch" = 1;
}
Nota
Las instalaciones pueden tardar hasta 30 minutos en aparecer en el panel de control.
Resolución de problemas de la integración del SDK para iOS
Las instalaciones y los eventos no se registran.
Podrían existir diversos motivos por los cuales no se registran las instalaciones y los eventos:
-
Formato de ID de aplicación incorrecto: si especificas un ID de aplicación en el formato incorrecto, las instalaciones y los eventos no se registran. Cuando configures el ID de aplicación en el archivo delegado, asegúrate de que esté compuesto solo por números. Si el formato del ID de aplicación es incorrecto, el registro muestra el siguiente error:
\[ERROR\] AppsFlyer: -\[AppsFlyerTracker validateAppID\] AppsFlyer Error: appleAppID should be a number!
-
ID de aplicación incorrecto: si especificas un ID de aplicación que no existe en tu cuenta, la instalación y los eventos no se registran. El registro muestra el siguiente error:
AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug: completionHandler:]_block_invoke sent information to server, status = 404
The 404
es un error que indica que el SDK no puede encontrar la aplicación en tu cuenta.
-
Clave de desarrollador incorrecta: si especificas una clave de desarrollador incorrecta, las instalaciones y los eventos no se registran. El registro muestra el siguiente error:
AppsFlyer: -[AppsFlyerHTTPClient sendRequestEventToServer:isRequestFromCache:appID:isDebug:completionHandler:] _block_invoke sent information to server, status = 400
El código de error 400 indica que el SDK no puede autenticar la solicitud para rastrear instalaciones y eventos. Verifica que la clave de desarrollador sea la correcta. Además, asegúrate de que la clave de desarrollador contenga solo caracteres alfanuméricos.
Correcto:
[AppsFlyerLib shared].appleAppID = @"340954503";
Incorrecto:
[AppsFlyerLib shared].appleAppID = @"id340954503";
Incorrecto:
[AppsFlyerLib shared].appleAppID = @"com.appslyer.sampleapp";
El ID de aplicación y la clave de desarrollador son correctos, pero la instalación no se registra.
Situación
La aplicación contiene el ID de aplicación y la clave de desarrollador correctos, pero las instalaciones no se registran.
Causas posibles
El SDK no se inició correctamente. Asegúrate de llamar al método start
en applicationDidBecomeActive
:
- (void)applicationDidBecomeActive:(UIApplication *)application {
[[AppsFlyerLib shared] start];
}
func applicationDidBecomeActive(application: UIApplication) {
AppsFlyerLib.shared().start()
}
El registro muestra el mensaje "AppsFlyer dev key missing or empty. Aborting"
Situación
Está intentando ver instalaciones y eventos in-app en el registro. El registro muestra el mensaje "AppsFlyer dev key missing or empty. Aborting" (La clave de desarrollador de AppsFlyer no se encuentra o está vacía. Anulando).
Causas posibles
La clave de desarrollador no está definida. Asegúrate de configurarla en el AppDelegate en el método didFinishLaunchingWithOptions
:
[AppsFlyerLib shared].appsFlyerDevKey = @"<YOUR_DEV_KEY>";
AppsFlyerLib.shared().appsFlyerDevKey = "<YOUR_DEV_KEY>"
La instalación siempre se atribuye como orgánica
Situación
Estás realizando pruebas de atribución mediante enlaces de atribución. Implementaste el agente de escucha de conversión del SDK, pero el registro siempre muestra que la instalación es orgánica. Además, no hay ninguna instalación no orgánica registrada en el panel de control.
Causas posibles
- El enlace de atribución que usas es incorrecto. Consulta nuestra guía sobre enlaces de atribución.
- Asegúrate de que el dispositivo que usas para la prueba esté registrado.
Los ingresos no se registran correctamente.
Situación
Está probando eventos in-app con ingresos. Los eventos aparecen en el panel de control, pero los ingresos no se registran.
Causas posibles
El parámetro de ingresos no tiene el formato correcto. NO altere el formato del valor de ingresos de ninguna manera. No debe contener comas, signos de moneda ni texto. Por ejemplo, un evento generador de ingresos debería ser similar a 1234.56.
Recibo un código de error 404 al registrar una instalación o evento.
Situación
Está probando instalaciones y eventos in-app para ver si están atribuidos a la fuente de medios correcta. Sin embargo, aparece el código de respuesta 404 para la instalación y los eventos in-app. Ni la instalación ni los eventos in-app aparecen en el panel de control.
Causas posibles
Un código de respuesta 404 indica que el ID de aplicación es incorrecto. Consulta Las instalaciones y los eventos no se registran.
Recibo el código de respuesta 400 cuando registro instalaciones o eventos.
Situación
Está intentando probar eventos in-app en el registro. Cuando activa eventos, ve el código de respuesta 400 en los registros.
Causas posibles
Esto podría indicar un problema con la clave de desarrollador. Verifica que la clave de desarrollador sea la correcta. Además, asegúrate de que la clave de desarrollador contenga solo caracteres alfanuméricos. Consulta Las instalaciones y los eventos no se registran.
Recibo el código de respuesta 400 cuando registro instalaciones o eventos.
Situación
Estás intentando probar las instalaciones y otros eventos de conversión en el registro. Cuando activas estos eventos, ves la respuesta 403 (prohibido) en los registros.
Causas posibles
This might be because you have the Zero package, which does not include attribution data; only data on clicks and impressions. To start receiving attribution data, learn more about the different AppsFlyer packages, and update as needed. You can also contact our customer engagement team at [email protected] if you have questions about our packages.
Crear una aplicación de depuración de iOS
OPCIONAL
Puedes utilizar las capacidades de configuración de compilación de Xcode para configurar una aplicación de depuración fácil de usar. Te permitirá cambiar entre tus aplicaciones de depuración y producción tocando las condiciones de compilación activas de Xcode.
Nota
Si no te importa mezclar datos de producción con tráfico de prueba, puedes pasar a probar la integración. Todas las pruebas se pueden realizar tanto para aplicaciones de producción como de depuración.
Esto se logra empleando una configuración definida por el usuario en la configuración de compilación de tu proyecto y exponiéndola a través de una propiedad info.plist
.
Paso 1: Agregar una aplicación de depuración a AppsFlyer
Add a new pending iOS app to AppsFlyer or ask a team member with dashboard access to add it. Choose any available app ID–You will need it in step 3. Make sure the ID is 9 digits and starts with four 1s, for example, 111167538.
Paso 2: Agregar una configuración definida por el usuario
- En Xcode, en la vista del navegador de archivos, selecciona la raíz de tu proyecto y ve a Build Settings.
- Haz clic en + en la barra de herramientas y selecciona Agregar configuración definida por el usuario. En este caso, la llamamos
AF_APP_ID
. - Expandir la configuración definida por el usuario recién creada:
- Configura la configuración condicional de Depuración en el ID de la aplicación de prueba (que se menciona en el paso 1)
- Configura la configuración condicional Versión en el ID de aplicación de tu aplicación de producción.

Paso 3: Exponer los ID de las aplicaciones a través de info.plist
En el proyecto, ve al info.plist
y añade una nueva propiedad (llamada AFAppID
en este caso). Establece su valor en $(AF_APP_ID)
(basado en el nombre de la configuración definida por el usuario en el paso 2).

Paso 4: Recuperar y configurar el ID de la app
Para acceder y usar el ID de aplicación durante la inicialización del SDK, agrega el siguiente código a didFinishLaunchingWithOptions
En tu AppDelegate
:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// ...
guard let appID : String = Bundle.main.object(forInfoDictionaryKey: "AFAppID") as? String else {
fatalError("Cannot find app ID")
}
AppsFlyerLib.shared().appleAppID = appID
// ...
return true
}
Paso 5: Ejecutar la aplicación usando la configuración de compilación de depuración
Para cambiar la configuración de compilación activa:
- Ve a Producto > Esquema > Editar esquema....
- Selecciona Ejecutar y cambia la Configuración de compilación a Depurar o Lanzar, según sea necesario.

Ahora, cuando uses la configuración de depuración para crear tu aplicación, Xcode utilizará el ID de aplicación de depuración que configuraste en el paso 2.
Actualizado hace aproximadamente 1 mes