Para tener Integrated Conversion Measurement (ICM) de Google en iOS necesitas una App Campaign de iOS para instalaciones, medición en el dispositivo (ODM) con el SDK de Google Analytics for Firebase o con el SDK independiente GoogleAdsOnDeviceConversion de Google, el SDK de un partner de atribución en su versión mínima documentada y con su ajuste de Google activado, y la información de conversión obtenida en el primer arranque antes de enviar first_open. La condición que cambia la respuesta es la región: a 29 de septiembre de 2026, la documentación de Google dice que la medición en el dispositivo está inactiva para los usuarios del EEE, el Reino Unido y Suiza, así que nada de esto genera todavía claims de ICM para ellos.
Alcance: App Campaigns de iOS para instalaciones, medidas con AppsFlyer, Adjust o Singular, por la ruta de Firebase o del SDK independiente, contrastadas con las páginas de cada proveedor el 29 de septiembre de 2026. Google cambia esta área a menudo, así que revisa la fecha antes de fiarte de un número de versión.
He llevado App Campaigns de iOS con ICM a través de AppsFlyer, en una subscription app en marzo de 2026. La lección que sacaría de esa cuenta no tenía nada que ver con ICM en sí, y es el último paso de la instalación de prueba de más abajo.
¿Cuál es la diferencia entre ODM e ICM?
ODM es la señal. ICM es donde aparece el resultado.
La página de Google About on-device conversion measurement for iOS App campaigns describe dos variantes de ODM: una usa datos first party, como el email o el teléfono de tu flujo de inicio de sesión, y la otra usa lo que Google llama “de-identified, temporary app event data” (datos temporales de eventos de la app, sin identificar), derivados de señales como la dirección IP y las marcas de tiempo. ICM en iOS depende de la segunda.
La página de Google About Integrated Conversion Measurement for App Campaigns enumera cuatro pasos en iOS: una App Campaign de iOS activa para instalaciones, los datos de tu partner de atribución importados en Google Ads, ODM con datos de eventos y el SDK más reciente del partner. Las integraciones de servidor a servidor deben pasar al partner la cadena de información de ODM. En Android, la misma página dice que no hace falta ninguna acción.
Así que ODM hace posibles los claims de instalación de Google, e ICM es Google enviando esos claims a tu MMP, donde aparecen como atribuciones probabilísticas.
¿Qué requiere cada ruta de integración?
La tabla pone las cinco rutas lado a lado, una fila por ruta.
| Ruta | Mínimo documentado | Ajuste | Alcance regional | Paso de verificación | Fuente, verificada |
|---|---|---|---|---|---|
| Firebase (GA4F) | iOS 12+. GA4F 11.14.0 según la página de ayuda de Google y el tutorial de Firebase; 12.12.1+ según la guía de iOS de Google (sin resolver, ver más abajo) | Vincula la propiedad de Google Analytics a la cuenta de Google Ads. El pod FirebaseAnalytics ya incluye GoogleAdsOnDeviceConversion |
Inactivo para usuarios del EEE, el Reino Unido y Suiza | Arranca con -FIRDebugEnabled, busca el log “framework is linked”, y después la propiedad de usuario _psmvalue_gads tras unos 15 segundos |
Google 12119136, Firebase tutorial, 29 sep 2026 |
| SDK independiente GoogleAdsOnDeviceConversion | La página de Google no indica mínimo. Última versión 3.7.0 (1 sep 2026). Si instalas también GA4F, sigue el mapa de versiones de Google | setFirstLaunchTime con la fecha real del primer arranque, después fetchAggregateConversionInfo(for: .installation), y pasa el resultado como odm_info |
La página de ODM de Google excluye el EEE, el Reino Unido y Suiza; la línea de resolución de problemas de esta página la contradice (ver más abajo) | Confirma una cadena de información no vacía antes de enviar first_open, y odm_info en la primera llamada de instalación |
Google 16384720, página para desarrolladores de Google, repositorio de GitHub, 29 sep 2026 |
| AppsFlyer | SDK de iOS 6.17.9+, más Firebase 11.14.0+ o el SDK independiente | Advanced Data Sharing en la integración de Google Ads. first_open importado como conversión. IDFV con cada apertura de la app y cada evento in app, dirección IP con cada apertura de la app |
No disponible para usuarios de iOS del EEE, el Reino Unido y Suiza | match_type en los datos en bruto: srn para claims deterministas, probabilistic para claims de ICM |
Boletín de AppsFlyer, configuración de AppsFlyer, 29 sep 2026 |
| Adjust | SDK de iOS 5.4.1+ con el plugin de ODM (probado con GoogleAdsOnDeviceConversion 3.0.0), más Firebase 11.14.0+ o el SDK independiente | “Enable probabilistic modeling” en los ajustes de atribución del partner Google Ads. Llama a initSdk lo antes posible |
Las páginas de Adjust no nombran ningún límite regional; la exclusión de ODM de Google sigue vigente | Adjust no documenta ningún paso de verificación en las páginas que revisé | Adjust Dev Hub, Adjust Help, 29 sep 2026 |
| Singular | SDK nativo de iOS 12.8.1+ (Unity 5.5.0+) | enableOdmWithTimeoutInterval, con 5 segundos recomendados. “Include Integrated Conversion Measurement Attributions” en la configuración del partner Google Ads |
No soportado en dispositivos iOS del EEE y el Reino Unido (Suiza no se nombra) | Las instalaciones de ICM aparecen como instalaciones click through, etiquetadas como probabilísticas en los reportes a nivel de usuario | Ayuda de Singular, 29 sep 2026 |
Cada fila de partner lista solo lo que ese partner documenta por su cuenta. La elección entre Firebase y el SDK independiente tiene una consecuencia para la puja que las páginas de configuración no explican. La página de Google About bidding in App campaigns dice que tROAS requiere el SDK de Google Analytics for Firebase, y el artículo de configuración de AppsFlyer dice que solo puedes excluir audiencias de las App Campaigns cuando la campaña optimiza hacia eventos del SDK de Firebase, no hacia eventos del MMP. Si más adelante piensas pujar por valor, la ruta independiente resuelve la medición pero no eso. Si instalas ambos, el repositorio de Google GoogleAdsOnDeviceConversion publica un mapa de versiones: GA4F 12.19.0 va con ODM 3.7.0, 12.12.1 con 3.5.0, y 11.14.0 con 2.0.0.
¿Cuál es la versión mínima de Firebase, 11.14.0 o 12.12.1?
La documentación de Google da dos respuestas, y no he encontrado ninguna fuente que lo aclare.
La página de ayuda de Google sobre medición en el dispositivo pide “version 11.14.0 available in June 2025”, y el Tutorial: Measure iOS Ads conversions using event data de Firebase (última actualización el 25 de septiembre de 2026) dice 11.14.0 o superior. La iOS Best Practices Guide: Do the iOS Three to maximize your ROI de Google, que no tiene fecha, lista el SDK de Firebase con “minimum version 12.12.1+” en sus pasos de implementación. AppsFlyer y Adjust repiten ambos 11.14.0.
Lo trato como una diferencia sin resolver entre dos fuentes de Google. Anota qué versión incluye la app publicada, y plantea la diferencia a Google antes de fijar la app por debajo de 12.12.1.
¿Por qué importa el orden del primer arranque?
Porque la información de conversión tiene que existir antes de que se reporte la instalación. La página para desarrolladores de Google sobre la App Conversion API, Integrated Conversion Measurement, dice que obtengas la información de conversión poco después del primer arranque de la app, antes de enviar el evento first_open, y que la pases como parámetro odm_info. La página del SDK independiente de Google añade que la obtención se aplica tanto a first_open como a reinstall_open, y que setFirstLaunchTime debe recibir la fecha en que la app se arrancó realmente por primera vez.
Los partners manejan la espera de forma distinta:
- El SDK de Singular espera la información de ODM hasta el timeout que fijes, con 5 segundos recomendados, y Singular avisa de que esto retrasa los callbacks del SDK, incluidos los deep links. En las configuraciones de servidor a servidor señala que la obtención es asíncrona y que quizá tengas que retener el evento de sesión hasta que termine.
- Adjust dice que llames a
initSdklo antes posible, idealmente enapplication:didFinishLaunchingWithOptions:. Con First Session Delay, sigues llamando ainitSdkpronto para que ODM registre la hora del arranque, y terminas el retraso más tarde.
En una auditoría, lo primero que hay que comprobar es si una pantalla de consentimiento, un paywall o un flujo de onboarding arranca el SDK del MMP más tarde de lo que espera la documentación. La documentación no da ningún valor de retraso universal, así que prueba el orden en una instalación real.
¿Funciona ICM para usuarios de iOS en el EEE, el Reino Unido y Suiza?
No en la documentación revisada el 29 de septiembre de 2026.
- La página de medición en el dispositivo de Google: la función “will be inactive for all users located within” el EEE, el Reino Unido y Suiza.
- El tutorial de Firebase: el mensaje de verificación no aparecerá en los dispositivos ubicados allí.
- El Bulletin: AppsFlyer and Google attribution solution [Open BETA] de AppsFlyer (editado el 5 de agosto de 2026) excluye el tráfico de iOS de usuarios de los tres, y su artículo de configuración (editado el 15 de septiembre de 2026) lista la UE, el Reino Unido y Suiza como no soportados.
- Singular (actualizado el 24 de septiembre de 2026) dice que ICM no está soportado en dispositivos iOS del EEE y el Reino Unido.
En mayo de 2026, el anuncio iOS App campaign advancements de Google dijo que está “expanding measurement support for EEA, UK, and Switzerland users” (ampliando el soporte de medición para usuarios del EEE, el Reino Unido y Suiza). No da ninguna fecha. Un anuncio es un plan, así que no planifico presupuesto sobre él hasta que cambien la página de ayuda de Google y la documentación de los MMP.
Una inconsistencia en la documentación: la lista de resolución de problemas de la página del SDK independiente de Google dice que compruebes que tu app se está ejecutando en el EEE, el Reino Unido y Suiza. Eso contradice la propia página de medición en el dispositivo de Google. La leo como un error de documentación, no como evidencia de que el soporte para Europa ya se haya lanzado.
Los usuarios de iOS europeos siguen midiéndose, solo que no a través de ICM. La página de Google Understanding iOS App campaign measurement and reporting dice que las conversiones modeladas de Google Ads y SKAdNetwork están disponibles para todos los usuarios, incluidos los del EEE, el Reino Unido y Suiza. La columna de ICM no hace esa afirmación.
¿Qué cubre ICM y qué deja fuera?
Según el artículo de configuración de AppsFlyer, que tiene la lista más completa:
- Solo instalaciones y reatribuciones. Ninguna reactivación.
- Solo clicks en iOS. “Google currently claims only clicks on iOS. It does not claim impressions.” Singular también describe solo la medición de instalaciones click through, y Adjust dice que ICM está soportado solo para App Campaigns de instalación.
- Campaña y ad group, sin anuncio. AppsFlyer dice que los claims incluyen campaña y ad group “in most cases” y ninguna información del anuncio. Singular dice que el ID del ad group no está disponible, y la guía de Google habla de datos a nivel de campaña ahora y a nivel de ad group “soon” (pronto). Cuenta con el nivel de campaña.
- Un canal parcial. El campo de canal muestra
ACI_sin sufijo de red. - Marcas de tiempo redondeadas. Las marcas de tiempo de los claims probabilísticos se redondean a intervalos de 15 minutos.
La guía de Google dice también que ICM admite ventanas de lookback posteriores a la instalación de hasta 180 días, lo que importa para las subscription apps cuyos eventos de pago llegan semanas después de la instalación. La guía vincula esas ventanas a tROAS, pero la página de puja de Google sigue diciendo que tROAS requiere el SDK de Firebase, así que la elección de ruta de más arriba sigue vigente.
¿Cómo pruebo una instalación de principio a fin?
Para una instalación de prueba, anota:
- Versiones. Build de la app, versión de GA4F o de GoogleAdsOnDeviceConversion, versión del SDK del MMP. Comprueba el par contra el mapa de versiones de Google.
- Región. Dónde está ubicado el dispositivo. Un dispositivo del EEE, el Reino Unido o Suiza no debería producir información de ODM.
- Estado de ATT y consentimiento. La respuesta de ATT y las elecciones de tu plataforma de consentimiento, y si alguna de las dos retiene el SDK del MMP.
- Orden. Si la información de conversión se obtuvo antes de enviar
first_open, y siodm_infoestaba presente en la primera llamada de instalación. En la ruta de Firebase, la secuencia de logs de depuración de la tabla. - Ajustes. El interruptor del partner de la tabla, y
first_openimportado como conversión en Google Ads. - La fila en bruto del MMP. En AppsFlyer,
match_typecon valorsrnoprobabilistic. En Singular, el desglose probabilístico en los reportes a nivel de usuario. - Valores. Qué envía a Google cada evento de revenue, incluidos los eventos que no llevan revenue. En la cuenta de arriba, el evento de revenue enviaba $1 en lugar de $0 cuando no había valor. Google Ads mostraba 71,4% de ROAS en la campaña de iOS frente a 17,3% de ROAS lifetime en AppsFlyer, y ICM no fue la causa. Cómo leo esa diferencia está en por qué Google Ads, tu MMP y SKAN reportan conversiones de iOS distintas.
Cambia un componente a la vez. Un claim que falta no es prueba de una configuración rota: AppsFlyer valida cada claim probabilístico de Google con su propio modelo, y un claim aceptado todavía tiene que ganar frente a otros candidatos de atribución.
¿Debes cambiar los ajustes de privacidad o el enmascaramiento de IP para conseguir más claims?
No los trato como interruptores de cobertura. Son decisiones de cumplimiento del dueño de la app.
El artículo de configuración de AppsFlyer dice que el enmascaramiento de IP puede afectar a ICM y que Google recomienda desactivarlo. Dice también que con el ajuste Aggregated Advanced Privacy activado, los datos atribuidos a Google aparecen como restringidos en los reportes en bruto, y que Advanced Data Sharing envía las instalaciones a Google con o sin ID de dispositivo. La página de Apple User Privacy and Data Use dice “you may not derive data from a device for the purpose of uniquely identifying it” (no puedes derivar datos de un dispositivo para identificarlo de forma única), y que hacer tracking de un usuario requiere el permiso ATT.
Dos hechos ayudan a esa decisión: el pod FirebaseAnalytics ya incluye la librería de ODM, y la forma de salirse que indica Google es excluir GoogleAdsOnDeviceConversion del build. Toma la decisión con tu asesor legal de privacidad y luego mide lo que permita la configuración elegida.
¿Por qué seguirán sin coincidir Google Ads, el MMP y SKAN?
Porque son tres mediciones distintas. La página de medición y reporting de Google dice que los datos de ICM no están disponibles hoy en el reporting de Google Ads, que Google Ads muestra sus propias conversiones modeladas con retrasos de hasta cinco días, y que SKAdNetwork es el feed agregado de Apple con sus propias ventanas. Google dice también que el reporting de iOS en Google Ads pasará de conversiones modeladas a atribución ground truth para las campañas con datos de eventos de medición en el dispositivo. Concilio las tres sobre el mismo evento, la misma base de fechas y la misma ventana en lugar de sumarlas, y explico ese método en por qué Google Ads, tu MMP y SKAN reportan conversiones de iOS distintas.
¿Dónde encaja esto en mi trabajo?
Esta es la parte de Google en iOS del signal engineering: asegurarse de que el sistema de puja vea las conversiones que le importan de verdad al negocio. En la práctica significa elegir la ruta de Firebase o la independiente pensando en la puja, confirmar el orden del primer arranque en una instalación real y dejar por escrito cuánto deberían diferir Google Ads, el MMP y SKAN antes de que nadie mueva presupuesto. Si no estás seguro de si el problema es la medición, el growth audit es donde lo compruebo. Una mejor medición no decide dónde gasta una App Campaign, algo que explico en por qué una App Campaign mueve el gasto a YouTube.
Fuentes
Todas verificadas el 29 de septiembre de 2026.
- Google Ads Help: About on-device conversion measurement for iOS App campaigns, sin fecha de página.
- Google Ads Help: Implement on-device conversion measurement with a standalone SDK, sin fecha de página.
- Google Ads Help: About Integrated Conversion Measurement for App Campaigns, en despliegue desde mayo de 2025.
- Google Ads Help: Understanding iOS App campaign measurement and reporting, sin fecha de página.
- Google Ads Help: About bidding in App campaigns, sin fecha de página.
- Google for Developers: Integrated Conversion Measurement, última actualización el 22 de octubre de 2025.
- Google: iOS Best Practices Guide: Do the iOS Three to maximize your ROI, sin fecha.
- Google: iOS App campaign advancements, publicado el 13 de mayo de 2026.
- Firebase: Tutorial: Measure iOS Ads conversions using event data, step 2, última actualización el 25 de septiembre de 2026.
- GitHub: GoogleAdsOnDeviceConversion, versión 3.7.0 del 1 de septiembre de 2026 y el mapa de versiones de GA4F.
- AppsFlyer: Bulletin: AppsFlyer and Google attribution solution [Open BETA], editado el 5 de agosto de 2026.
- AppsFlyer: Google Ads (AdWords) Integration setup for advertisers, editado el 15 de septiembre de 2026.
- Adjust Dev Hub: Google On-device Conversion Measurement, sin fecha de página.
- Adjust Help Center: Set up Google Ads in Adjust, sin fecha de página.
- Singular: Google Ads (AdWords) Mobile App Campaigns - Attribution Integration, actualizado el 24 de septiembre de 2026.
- Apple Developer: User Privacy and Data Use, sin fecha de página.
Preguntas frecuentes
¿Necesito Firebase para la medición en el dispositivo de Google en iOS?
No para la medición en sí. Google documenta un SDK independiente, GoogleAdsOnDeviceConversion, para las apps que no pueden integrar Google Analytics for Firebase, y AppsFlyer y Adjust aceptan cualquiera de las dos rutas. Firebase importa para la puja: Google dice que tROAS en App Campaigns requiere el SDK de Firebase, y AppsFlyer dice que la exclusión de audiencias solo funciona cuando la campaña optimiza hacia eventos de Firebase.
¿Está disponible Google ICM en Europa para iOS?
No, según la documentación a 29 de septiembre de 2026. La página de medición en el dispositivo de Google dice que la función está inactiva para los usuarios del EEE, el Reino Unido y Suiza, AppsFlyer excluye de ICM ese tráfico de iOS, y Singular excluye los dispositivos iOS del EEE y del Reino Unido. Google anunció en mayo de 2026 un soporte ampliado para esos usuarios, sin fecha. Las conversiones modeladas de Google Ads y SKAdNetwork siguen cubriéndolos.
¿Aparecerán las instalaciones de ICM en Google Ads?
Hoy no. Google dice que los datos de ICM no están disponibles en el reporting de Google Ads y aparecen en tu partner de atribución, mientras que Google Ads muestra sus propias conversiones modeladas. Google dice también que el reporting de iOS en Google Ads pasará de conversiones modeladas a atribución ground truth para las campañas con datos de eventos de medición en el dispositivo.
¿Debería desactivar el enmascaramiento de IP o los ajustes de privacidad para conseguir más claims de ICM?
Esa es una decisión de cumplimiento del dueño de la app, no un paso para resolver problemas. AppsFlyer señala que el enmascaramiento de IP puede afectar a ICM y que su ajuste de privacidad muestra los datos de Google como restringidos. Apple prohíbe derivar datos de un dispositivo para identificarlo y exige el permiso ATT para hacer tracking. Decide esos ajustes con tu asesor legal de privacidad y luego mide lo que permita la configuración elegida.