Usuario-agente de la app
Como parte de nuestros esfuerzos más amplios para combatir el spam, desarrollamos una especificación estandarizada para el encabezado User-Agent que envía un producto de análisis o anuncios en nombre de un usuario de la app. El User-Agent de la app se puede derivar del código nativo para cumplir con la siguiente especificación:
name version (os_and_version; locale; device; build; Proxy)
La definición de estos campos es la siguiente:
| Componentes de User-Agent | |
|---|---|
| name | Es el nombre del producto de análisis o de anuncios. ( Ten en cuenta que, si el agente de usuario se construye en el cliente, Android// Specified by API consumer. iOS// Specified by API consumer. |
| version | Es la versión del producto de estadísticas o anuncios.
( Android// Specified by API consumer. iOS// Specified by API consumer. |
| os_and_version | Sistema operativo y versión del sistema operativo en el que se ejecuta la app. ( AndroidString osAndVersion =
"Android " + Build.VERSION.RELEASE;iOSUIDevice *uid = [UIDevice currentDevice]; NSString *osAndVersion = [NSString stringWithFormat:@"%@ %@", [uid systemName], [uid systemVersion]]; |
| locale | Es una etiqueta de configuración regional de IETF para el dispositivo, que usa un código de idioma y país de dos letras separados por un guion bajo.
( AndroidString locale = Locale.getDefault(); iOSNSString *locale = [[NSLocale currentLocale] localeIdentifier] |
| device | Es el nombre del dispositivo físico que ejecuta el producto de análisis o de anuncios.
( AndroidString device = Build.MODEL; iOS@import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname("hw.machine", buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; } |
| build | "Build/" seguido del número de compilación del sistema operativo
( AndroidString build = "Build/" + Build.ID; iOS@import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname("kern.osversion", buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; } |
Solo incluye ; Proxy al final del User-Agent de la app cuando compiles el User-Agent de la app en el servidor. Si el User-Agent de la app se construye completamente en el cliente, excluye ; Proxy. Por lo tanto, el User-Agent de una app podría ser el siguiente:
- Android:
AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M; Proxy) - iOS:
AdMob/7.10.1 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
Guía de solicitud del seguimiento de conversiones
El propósito de las solicitudes de seguimiento de conversiones es notificar a Google Ads sobre un evento de aplicación que se debe hacer un seguimiento como conversión o que se debe usar para completar una lista de remarketing, y recuperar los metadatos que describen cualquier clic que precedió al evento.
Todas las llamadas a la API se realizan al dominio www.googleadservices.com. Las solicitudes de conversión son solicitudes POST a través de HTTPS en la siguiente ruta:
/pagead/conversion/app/version
Una solicitud de conversión de aplicación estándar contendrá los siguientes parámetros para la versión 1.1 de la API de App Conversion.
| Solicitud de seguimiento de conversiones | |
|---|---|
dev_token |
Obligatorio Ubicación: Consulta Es el token de desarrollador estático y único que se emite para el consumidor de la API. Z_eErE4DkvcKjDM1OVE4c4 |
link_id |
Obligatorio Ubicación: Consulta Es el identificador de vínculo que une el token de desarrollador del consumidor de la API a una app específica. 31FF8D67E5BB5DD5029DCC2734C2F884 |
app_event_type |
Obligatorio Ubicación: Consulta Es el nombre del evento de la app que ocurrió. Este campo es una enumeración y solo aceptará los siguientes valores: • first_open • session_start • in_app_purchase • view_item_list • view_item • view_search_results • add_to_cart • ecommerce_purchase • custom El evento |
app_event_name |
Obligatorio en ciertas condiciones Ubicación: Consulta Es el nombre de cualquier evento de aplicación personalizado que no se acepta en el campo level_achieved Level Achieved Este campo no debe contener ninguno de los valores reservados para |
app_event_data |
Opcional Ubicación: Cuerpo Reenvía los datos de eventos adicionales enriquecidos como un objeto JSON simple que asigne claves de cadena a valores. Los valores aceptables son las cadenas y los arrays de cadenas. {"level": 5, "attempts": 20} |
odm_info |
Se requiere cuando se utiliza la medición de conversiones integrada en iOS Ubicación: Consulta Es el valor del parámetro de consulta XYZr_AB8C-_zGtKjUhqtzPLeQ8lbJB5dADVR0tpZ9f-28sN5qN9GTZ_FztjL0OL FzgxUJDhZr8w6lwGxAwPcxSwR5orjWepZiVP7sRRoCiaHerR-1TP17eJKtazgeSg _CVEs13LllDTfrhVM8uWISqlg8dXobsLzmj8C7WrOlktHA5P_E23 |
id_type |
Obligatorio Es el tipo de identificador que se pasa en el campo Androidadvertisingid appsetid iOSidfa idfv |
rdid |
Obligatorio Ubicación: Consulta Es una cadena de UUID válida que representa el ID del dispositivo sin procesar. f10e1de2-e237-4f50-b6aa-843c45cc63d6 En caso de que falte el ID del dispositivo, como el ID de dispositivo de un usuario que no dio su consentimiento para el ATT, configúralo como todo cero. 00000000-0000-0000-0000-000000000000 |
ctry_c |
Obligatorio Ubicación: Consulta Es el código ISO de dos letras que indica el país desde el que se originó la conversión. Este campo es obligatorio para habilitar la medición de conversiones de aplicaciones a nivel que no es del usuario en iOS y Android. US, IN |
eea |
Obligatorio en determinadas condiciones Ubicación: Consulta El alcance del EEE.
|
ad_personalization |
Obligatorio en determinadas condiciones Ubicación: Consulta Los parámetros de anuncios personalizados
|
ad_user_data |
Obligatorio en determinadas condiciones Ubicación: Consulta Es la marca de consentimiento para el uso de datos del usuario con fines publicitarios.
|
lat |
Obligatorio Ubicación: Consulta Es el estado de la opción para limitar el seguimiento de anuncios del dispositivo.
|
app_version |
Obligatorio Ubicación: Consulta Es la versión actual de la app, que debe estandarizarse de la siguiente manera. AndroidpackageManager.getPackageInfo(packageName(), PackageManager.GET_META_DATA).versionName iOS[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] 1.2.4 |
os_version |
Obligatorio Ubicación: Consulta Es la versión actual del SO host de la app. Esto se debe estandarizar de la siguiente manera. Androidandroid.os.Build.VERSION.RELEASE iOS[[UIDevice currentDevice] systemVersion] |
sdk_version |
Obligatorio Ubicación: Consulta Es la versión del SDK que midió el evento. Dado que se usa principalmente para la depuración, debe reflejar la versión de lanzamiento exactamente como se publica con los lanzamientos del SDK. Si la app no usa un SDK, pasa el mismo valor que 1.9.5r6 |
timestamp |
Obligatorio Ubicación: Consulta Es la marca de tiempo de UNIX en la que ocurrió el evento de conversión, en segundos con precisión de microsegundos. 1432681913.123456 |
fot |
Obligatorio Ubicación: Consulta Es la marca de tiempo de UNIX del 1432681913.123456 |
value |
Opcional Ubicación: Consulta Es el valor monetario del evento, si lo hay. Siempre debe tener el formato de un valor de punto flotante legible por máquina, con un punto decimal para separar la parte entera y la parte fraccionaria del valor. 1.99 |
currency_code |
Obligatorio en ciertas condiciones Ubicación: Consulta Es el código de moneda según la norma ISO 4217 para el parámetro USD |
gclid |
Obligatorio en ciertas condiciones Ubicación: Consulta Es el valor del parámetro de consulta Cj0KEQjw0dy4BRCuuL_e5M |
market_referrer_gclid |
Obligatorio en ciertas condiciones Ubicación: Consulta Es el valor del parámetro de consulta BX3QojHp4mY5MrJtFM_d1u |
gclid_only_request |
Obligatorio en ciertas condiciones Ubicación: Consulta Es el identificador para la atribución basada en 1 |
gbraid |
Obligatorio en ciertas condiciones Ubicación: Consulta Valor de ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O |
app_open_source |
Obligatorio en ciertas condiciones Ubicación: Consulta Es el valor para identificar el vínculo directo del clic en el anuncio o las sesiones orgánicas de la aplicación. ad_click or organic |
User-Agent |
Obligatorio Ubicación: Encabezado Es el usuario-agente de la app, como se definió en la sección anterior. AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M) |
X-Forwarded-For |
Obligatorio Ubicación: Encabezado Es la dirección IPv4 o IPv6 pública del dispositivo en el que se midió el evento. 216.58.194.174 |
Todas las solicitudes deben enviarse a través de HTTPS. Se rechazarán los pings recibidos a través de HTTP.
Ten en cuenta que, si el cuerpo de la solicitud está vacío (en los casos en que no se pasan datos de eventos enriquecidos en la carga útil de app_event_data), nuestro servidor requiere que establezcas de forma explícita el encabezado Content-Length: 0 en tu solicitud.
Codificación de datos de eventos
Para el parámetro del cuerpo app_event_data, usa las siguientes convenciones para los tipos de datos primitivos:
Número de punto flotante
- Usa el carácter de punto como separador decimal, independientemente de la localización de la app
- Usa una precisión decimal de dos dígitos para representar valores monetarios, p. ej., 2. 99.
- No uses notación exponencial, p. ej., 2E+9.
- No uses el carácter de coma para separar grupos de dígitos, p. ej., 1,000,000.
- Ejemplos válidos:
-0.52.991000000.123
Número entero
- Solo envía valores enteros sin dígitos decimales.
- No uses el carácter de coma para separar grupos de dígitos, p. ej., 1,000,000.
- Ejemplos válidos:
1000-110
Fecha
- Formato de fecha: aaaa-mm-dd
yyyy= año de cuatro dígitos, p.ej., 2016mm= mes de dos dígitos, p.ej., 09 para septiembredd= día de dos dígitos, p.ej., 23 para el 23ᵉʳ día del mes
- Siempre envía la cantidad de dígitos especificada anteriormente. Por ejemplo, si envías el valor de dd para el 5º día del mes, envía
05. - Ejemplos válidos:
"2016-09-23""1990-12-31"
- Formato de fecha: aaaa-mm-dd
Marca de tiempo
- Formato de hora: Marca de tiempo de Unix/época en segundos definida en la zona horaria UTC con precisión de microsegundos
- Ejemplos válidos:
1478713087para Wed, 09 Nov 2016 17:38:07 GMT1073513982.123000para el mié., 07 de enero de 2004, 22:19:42.123 GMT
Arrays
- Solo envía arrays de valores primitivos (cadenas, números y booleanos).
- Ejemplos válidos:
[123, 456, 789]["abc"]
Solicitudes de muestra
A continuación, se muestra un ejemplo de una solicitud de primer acceso con el SDK de On Device Measurement: Event Data para la medición de conversiones integrada:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=first_open
&odm_info=abcdEfadGdaf
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfv
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8A continuación, se muestra un ejemplo de una solicitud de primer acceso sin el SDK de On Device Measurement: Event Data para la medición de conversiones integrada:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=first_open
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfv
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8A continuación, se muestra un ejemplo de una solicitud posterior a la instalación con el SDK de datos de eventos de la medición en el dispositivo para la medición de conversiones integrada:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=first_open
&odm_info=abcdEfadGdaf
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfv
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
&&fot=1432681913.123456
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8A continuación, se muestra un ejemplo de una solicitud de primer acceso sin el SDK de On Device Measurement: Event Data:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=first_open
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfv
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8A continuación, se muestra un ejemplo de una solicitud de primer acceso para una conversión no determinística de Android para ACAPI v1.1:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=first_open
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=appsetid
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
&ctry_c=IN
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (android 11; en-GB; RMX2040; Build/_; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8A continuación, se muestra un ejemplo de una solicitud de seguimiento de conversiones válida con un tipo de evento no personalizado y datos de ingresos:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=in_app_purchase
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfa
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
&value=1.99
¤cy_code=USD
&market_referrer_gclid=BX3QojHp4mY5MrJtFM_d1u
&gclid=Cj0KEQjw0dy4BRCuuL_e5M
&gclid_only_request=0
&gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8{"app_event_data":{"item_id":["Crayons","Markers"]}}A continuación, se muestra un ejemplo de una solicitud de seguimiento de conversiones válida con un tipo de evento no personalizado y información de ingresos con rdid (advertisingid) no disponible:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=in_app_purchase
&rdid=00000000-0000-0000-0000-000000000000
&id_type=advertisingid
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=1
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
&value=1.99
¤cy_code=USD
&market_referrer_gclid=BX3QojHp4mY5MrJtFM_d1u
&gclid=Cj0KEQjw0dy4BRCuuL_e5M
&gclid_only_request=1
&gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; Android,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8{"app_event_data":{"item_id":["Crayons","Markers"]}}Un ejemplo de una solicitud de inicio de sesión válida es el siguiente:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=session_start
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfa
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
&gclid=Cj0KEQjw0dy4BRCuuL_e5M
&gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8A continuación, se muestra un ejemplo de una solicitud de reatribución de inicio de sesión válida para una sesión que comenzó desde el vínculo directo example://product/123?gclid=Cj0KEQjw0dy4BRCuuL_e5M:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=session_start
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfa
&eea=0
&ad_personalization=1
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
&gclid=Cj0KEQjw0dy4BRCuuL_e5M
&gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8A continuación, se muestra un ejemplo de una solicitud de seguimiento de conversiones válida para un usuario del EEE que otorgó el consentimiento para usar sus datos y rechazó la personalización de anuncios:
POST /pagead/conversion/app/1.1
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=in_app_purchase
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfa
&eea=1
&ad_personalization=0
&ad_user_data=1
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
&value=1.99
¤cy_code=USD
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8Guía de respuestas del seguimiento de conversiones
La respuesta del seguimiento de conversiones tiene el siguiente formato:
{
"ad_events": [<ad event objects>],
"errors": [<error strings>],
"attributed": true|false
}
Los arrays ad_events y errors pueden estar vacíos.
Esperamos que los errores sean códigos de error legibles por máquinas, p.ej., invalid_timestamp.
Códigos de error
invalid_timestamp: La solicitud no tenía una marca de tiempo válida.
eea_missing_or_invalid: La solicitud no tenía establecido el campo "eea" o no era válida.
ad_user_data_missing: No se configuró el campo de solicitud "ad_user_data". El campo "ad_user_data" es obligatorio para todas las solicitudes de DMA que se encuentran dentro del alcance.
ad_user_data_invalid: El valor de la solicitud "ad_user_data" no era válido. El campo "ad_user_data" es obligatorio para todas las solicitudes de DMA que se encuentran dentro del alcance.
ad_personalization_missing_or_invalid: La solicitud no tenía establecido el campo "ad_personalization" o no era válido. El campo "ad_personalization" es obligatorio para todas las solicitudes de DMA que se encuentran dentro del alcance.
Los eventos de anuncios son los objetos principales de la atribución de aplicaciones y contendrán las siguientes propiedades.
Notas importantes sobre el comportamiento de la respuesta según el consentimiento del usuario:
Si la conversión tiene el consentimiento de los datos del usuario de los anuncios y el usuario tiene el consentimiento de uso cruzado en su configuración de usuario de Google, Google Ads responderá con un solo último clic en todos sus CPS. Si el usuario no dio su consentimiento para el uso cruzado en la configuración de usuario de Google, Google Ads responderá con varios últimos clics, según el CPS.
Si la conversión incluye ciertos CPS en el consentimiento de uso cruzado seleccionado por el usuario, pero no otros, Google Ads responderá con un solo último clic en los CPS que tengan consentimiento de uso cruzado, pero con varios últimos clics, por CPS, para aquellos que no tengan consentimiento de uso cruzado.
| Respuesta del seguimiento de conversiones | |
|---|---|
ad_event_id |
Siempre presente string
Q2owS0VRancwZHk0QlJDdXVMX2U1TQ |
conversion_metric |
Siempre presente string Es la métrica de conversión que se usa para la atribución. Inicialmente, admitiremos una métrica de conversión. conversion |
timestamp |
Siempre presente número Es la marca de tiempo de UNIX en la que ocurrió el evento del anuncio, en segundos con precisión de microsegundos. Este valor se debe usar para la atribución de último clic. 1432681913.123456 |
campaign_type |
Siempre presente string En este campo, se identificará el tipo de campaña que generó el evento del anuncio. Los valores posibles son los siguientes: ACI ACE ACPRE Search Display Video Shopping Hotel Performance_Max Other ACI es la abreviatura de campaña para instalación de aplicación. ACE es la abreviatura de Campañas de participación en la aplicación. |
campaign_id |
Siempre presente número Es el ID numérico de la campaña que generó el evento del anuncio. Este valor es único garantizado. 123456789 |
campaign_name |
Siempre presente string Es el nombre de la campaña definida por el anunciante que generó el evento del anuncio. No se garantiza que este valor sea único. Occasional Gamers (Video) |
ad_type |
Siempre presente string Es el tipo de anuncio que generó el evento de anuncio. Este valor se puede usar para distinguir entre varios tipos de inventario de la siguiente manera. Promoción de aplicacionesClickToDownload AppDeepLink AppDeepLinkContinue Unknown |
external_customer_id |
Siempre presente número Es el identificador del anunciante que posee la campaña que produjo el evento del anuncio. Este valor se puede usar para diferenciar las cuentas de Google Ads. 123456789 |
location |
Siempre presente número Es el código de ID de ubicación para la ubicación geográfica del evento del anuncio. Consulta la referencia de la API de Google Ads para interpretar los códigos de ubicación. |
network_type |
Siempre presente string En este campo, se identificará la red de publicidad de Google Ads en la que ocurrió el evento del anuncio. Los valores posibles son los siguientes: Search Display YouTube GoogleTv cross-network |
network_subtype |
Será string En este campo, se identificará el "subtipo" de la red de publicidad de Google Ads en la que se produjo el evento del anuncio. Los valores posibles varían según el tipo de red principal. BuscarBúsqueda de Google normalGoogleSearch SearchPartners DisplayPublicadores de la Web en dispositivos móvilesmGDN Google AdMob YouTubeRed de videos de YouTubeYouTubeVideos YouTubeSearch VideoPartners GoogleTvRed de videos de GoogleTVGoogleTvVideos Varias redesCampaña de máximo rendimiento en múltiples redescross-network |
video_id |
Solo se proporciona cuando string Es el ID del video de YouTube asociado al evento del anuncio. dQw4w9WgXcQ |
keyword |
Solo se proporciona cuando string Es la palabra clave de la búsqueda asociada con el evento del anuncio. +food +delivery |
match_type |
Solo se proporciona cuando string Es el tipo de concordancia para las palabras clave de búsqueda. Exactae p b |
placement |
Solo se proporciona cuando string Es la posición asociada al evento del anuncio. mobileapp::1-343200656 |
ad_group_id |
Solo se proporciona cuando número Es el ID numérico del grupo de anuncios que se generó con el evento del anuncio. Este valor tiene la garantía de ser único. Este campo no se proporciona para los eventos de anuncios atribuidos por GBRAID que se atribuyen de forma determinística ( 123456789 |
ad_group_name |
Solo se proporciona cuando string Es el nombre del grupo de anuncios definido por el anunciante que produjo el evento del anuncio. No se garantiza que este valor sea único. Este campo no se proporciona para los eventos de anuncios atribuidos por GBRAID que se atribuyen de forma determinística ( My App AdGroup |
asset_group_id |
Solo se proporciona cuando número Es el ID numérico del grupo de recursos que generó el evento del anuncio. Este valor es único. 123456789 |
creative_id |
Solo se proporciona cuando número Es el ID numérico de la unidad de anuncios de la creatividad que generó el evento del anuncio. Este valor tiene la garantía de ser único. 123456789 |
interaction_type |
Este campo siempre será de interacción. string |
is_deterministic |
Indica si el método de atribución es determinístico o no. Booleano true, false |
device_model |
Es el modelo del dispositivo que produjo el evento del anuncio. String sm-s936w, sm-3936w |
os_version |
Es la versión principal del SO que produjo el evento del anuncio. String 14, 12 |
country |
Es el código de país de dos letras que produjo el evento del anuncio. String CA, US |
city |
Es la ciudad en la que se produjo el evento del anuncio. String san jose, london |
region |
Es el estado o la provincia en la que se produjo el evento del anuncio. String california, british columbia |
Ejemplos de respuesta
A continuación, se muestra un ejemplo de respuesta para una conversión determinística:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "engagement",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"network_type": null,
"network_subtype": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"is_deterministic": true,
"timestamp": 1234567.898765
}],
"errors": [],
"attributed": true
}A continuación, se muestra un ejemplo de una respuesta para una conversión no determinística de iOS:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "engagement",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"network_type": null,
"network_subtype": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"is_deterministic": false,
},
"device_info": {
"device_model": "iphone12,3",
"os_version": "14"
},
"timestamp": 1432681918.123456
}],
"errors": [],
"attributed": true
}A continuación, se muestra un ejemplo de respuesta para una conversión no determinística de Android:
{
"ad_events": [
{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "click",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"network_type": null,
"network_subtype": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"is_deterministic": false,
"geo_info": {
"city": "san jose",
"country": "US",
"region": "california"
},
"device_info": {
"device_model": "sm-s926u",
"os_version": "14"
},
"timestamp": 1432681918.123456
},
],
"errors": [],
"warnings": []
}A continuación, se muestra un ejemplo de una respuesta para una conversión de iOS o Android atribuida por gbraid:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "engagement",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"interaction_type": "engagement",
"network_type": null,
"ad_group_id": null,
"ad_group_name": null,
"asset_group_id": null,
"is_deterministic": true,
"timestamp": 0.000000
}],
"errors": [],
"attributed": true,
"warnings": [],
}A continuación, se muestra un ejemplo de una respuesta del seguimiento de conversiones cuando la solicitud contenía errores:
{
"ad_events": [],
"errors": ["INVALID_CURRENCY_CODE"],
"attributed": false
}A continuación, se muestra un ejemplo de una respuesta negativa del seguimiento de conversiones:
{
"ad_events": [],
"errors": [],
"attributed": false
}Se devolverá una respuesta de seguimiento de conversiones para todas las solicitudes de seguimiento de conversiones.
A continuación, se muestra un ejemplo de una respuesta afirmativa del seguimiento de conversiones para un usuario que no se encuentra en el EEE en el caso de una campaña universal de aplicaciones:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "engagement",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "Search",
"network_subtype": "GoogleSearch",
"video_id": null,
"keyword": null,
"match_type": null,
"placement": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"creative_id": null,
"timestamp": 1432681913.123456
}],
"errors": [],
"attributed": true,
"warnings": []
}A continuación, se muestra un ejemplo de una respuesta afirmativa del seguimiento de conversiones para un usuario que no se encuentra en el EEE en una campaña de Búsqueda:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "engagement",
"campaign_type": "Search",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "Search",
"network_subtype": "GoogleSearch",
"video_id": null,
"keyword": "+space +birds",
"match_type": "b",
"placement": null,
"ad_group_id": 123456789,
"ad_group_name": null,
"asset_group_id": null,
"creative_id": 123456789,
"timestamp": 1432681913.123456
}],
"errors": [],
"attributed": true,
"warnings": []
}A continuación, se muestra un ejemplo de una respuesta afirmativa del seguimiento de conversiones para un usuario que no se encuentra en el EEE en el caso de una campaña de Display:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "engagement",
"campaign_type": "Display",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "Display",
"network_subtype": "mGDN",
"video_id": null,
"keyword": null,
"match_type": null,
"placement": "mobile-app::2-343200656",
"ad_group_id": 123456789,
"ad_group_name": null,
"asset_group_id": null,
"creative_id": 123456789,
"timestamp": 1432681913.123456
}],
"errors": [],
"attributed": true,
"warnings": []
}A continuación, se incluye un ejemplo de una respuesta afirmativa del seguimiento de conversiones para un usuario que no se encuentra en el EEE en el caso de una campaña de YouTube:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "engagement",
"campaign_type": "Video",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "YouTube",
"network_subtype": "YouTubeVideos",
"video_id": "dQw4w9WgXcQ",
"keyword": null,
"match_type": null,
"placement": null,
"ad_group_id": 123456789,
"ad_group_name": null,
"asset_group_id": null,
"creative_id": 123456789,
"timestamp": 1432681913.123456
}],
"errors": [],
"attributed": true,
"warnings": []
}A continuación, se muestra un ejemplo de una respuesta del seguimiento de conversiones atribuidas en la que la conversión se atribuye a las interacciones con anuncios de Play y de Búsqueda, pero se rechaza el consentimiento de uso cruzado de los artículos 5(2)(b) y 5(2)(c) entre los CPS de Play y de Búsqueda:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "click",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "Display",
"network_subtype": "",
"video_id": null,
"keyword": null,
"match_type": null,
"placement": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"creative_id": null,
"timestamp": 1432681913.123456
},
{
"ad_event_id": "I8YUwWqxvOyqcwOcqBAkYZBMaOONSd",
"conversion_metric": "conversion",
"interaction_type": "click",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "Search",
"network_subtype": "",
"video_id": null,
"keyword": null,
"match_type": null,
"placement": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"creative_id": null,
"timestamp": 1432681913.123456
}
],
"errors": [],
"warnings": [],
"attributed": true
}Un ejemplo de una respuesta de seguimiento de conversiones atribuidas en la que la conversión se atribuye a las interacciones con anuncios de Play y de Búsqueda, y se acepta el consentimiento de uso cruzado de los artículos 5(2)(b) y 5(2)(c) entre los CPS de Play y de Búsqueda, es similar al comportamiento de las conversiones actual:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "click",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "Display",
"network_subtype": "",
"video_id": null,
"keyword": null,
"match_type": null,
"placement": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"creative_id": null,
"timestamp": 1432681913.123456
}
],
"errors": [],
"warnings": [],
"attributed": true
}A continuación, se muestra un ejemplo de una respuesta de seguimiento de conversiones atribuidas en la que la conversión se atribuye a las interacciones con anuncios de Play, la Búsqueda y YouTube, y se acepta el consentimiento de uso cruzado de los artículos 5(2)(b) y 5(2)(c) entre los CPS de Play y la Búsqueda, pero se rechaza para el CPS de YouTube:
{
"ad_events": [{
"ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ",
"conversion_metric": "conversion",
"interaction_type": "click",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "Display",
"network_subtype": "",
"video_id": null,
"keyword": null,
"match_type": null,
"placement": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"creative_id": null,
"timestamp": 1432681913.123456
},
{
"ad_event_id": "I8YUwWqxvOyqcwOcqBAkYZBMaOONSd",
"conversion_metric": "conversion",
"interaction_type": "click",
"campaign_type": "ACI",
"campaign_id": 123456789,
"campaign_name": "My App Campaign",
"ad_type": "ClickToDownload",
"external_customer_id": 123456789,
"location": 21144,
"network_type": "YouTube",
"network_subtype": "YouTubeVideos",
"video_id": null,
"keyword": null,
"match_type": null,
"placement": null,
"ad_group_id": 123456789,
"ad_group_name": "My App AdGroup",
"asset_group_id": null,
"creative_id": null,
"timestamp": 1432681913.123456
}
],
"errors": [],
"warnings": [],
"attributed": true
}Solicitud de atribución de varias redes
Cuando Google Ads responde de forma afirmativa a una solicitud de seguimiento de conversiones, el consumidor de la API debe notificar a Google Ads su decisión de atribución en múltiples redes después de identificar el último clic.
La solicitud de atribución en varias redes es idéntica a la solicitud de seguimiento de conversiones original, pero con una ruta de solicitud de:
/pagead/conversion/app/1.1/cross_network
y la adición de dos parámetros obligatorios:
| Solicitud de atribución de varias redes | |
|---|---|
ad_event_id |
Obligatorio Ubicación: Consulta Es el identificador |
attributed |
Obligatorio Ubicación: Consulta Indica si el consumidor de la API otorgó crédito a Google Ads por la conversión. |
Un ejemplo de una solicitud de atribución entre varias redes válida es el siguiente:
POST /pagead/conversion/app/1.1/cross_network
?dev_token=Z_eErE4DkvcKjDM1OVE4c4
&link_id=31FF8D67E5BB5DD5029DCC2734C2F884
&app_event_type=custom
&app_event_name=level_achieved
&rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D
&id_type=idfa
&lat=0
&app_version=1.2.4
&os_version=9.3.2
&sdk_version=1.9.5r6
×tamp=1432681913.123456
&value=1.99
¤cy_code=USD
&ad_event_id=Q2owS0VRancwZHk0QlJDdXVMX2U1TQ
&attributed=1
Host: www.googleadservices.com
User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
X-Forwarded-For: 216.58.194.174
Content-Type: application/json; charset=utf-8Una solicitud de atribución entre redes válida siempre recibirá una respuesta genérica 200 sin cuerpo de respuesta.