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 de 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 usuario-agente se construye en el cliente, Android// Specified by API consumer. iOS// Specified by API consumer. |
version | Es la versión del producto de análisis o de anuncios.
( Android// Specified by API consumer. iOS// Specified by API consumer. |
os_and_version | El sistema operativo y la versión del sistema operativo en los 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 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 usuario-agente de la app se construye por completo en el cliente, excluye ; Proxy
. Por lo tanto, un usuario-agente de la 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)
Solicitud de 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
1.0
.
Una solicitud de conversión de aplicación estándar contendrá los siguientes parámetros.
Solicitud de seguimiento de conversiones | |
---|---|
dev_token |
Obligatorio Ubicación: Consulta Es el token de desarrollador único y estático 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 determinadas 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 cualquier dato adicional del evento enriquecido 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} |
rdid |
Obligatorio Ubicación: Consulta Es una cadena de UUID válida que representa el ID de dispositivo sin procesar. f10e1de2-e237-4f50-b6aa-843c45cc63d6 En caso de que falte el ID del dispositivo, como el ID de un usuario que no dio su consentimiento para el ATT, configúralo como todo ceros. 00000000-0000-0000-0000-000000000000 |
id_type |
Obligatorio Ubicación: Consulta Es el tipo de identificador almacenado en el campo Androidadvertisingid iOSidfa |
eea |
Obligatorio en determinadas condiciones Ubicación: Consulta Es el alcance del EEA.
|
ad_personalization |
Obligatorio en determinadas condiciones Ubicación: Consulta Marcas para los 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 función Limitar el seguimiento de anuncios para el 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 una precisión de hasta microsegundos. 1432681913.123456 |
value |
Opcional Ubicación: Consulta Es el valor monetario del evento, si corresponde. 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 determinadas condiciones Ubicación: Consulta Es el código de moneda según la norma ISO 4217 para el parámetro USD |
gclid |
Obligatorio en determinadas condiciones Ubicación: Consulta Es el valor del parámetro de búsqueda Cj0KEQjw0dy4BRCuuL_e5M |
market_referrer_gclid |
Obligatorio en determinadas condiciones Ubicación: Consulta Es el valor del parámetro de búsqueda BX3QojHp4mY5MrJtFM_d1u |
gclid_only_request |
Obligatorio en determinadas condiciones Ubicación: Consulta Es el identificador para la atribución basada en 1 |
gbraid |
Obligatorio en determinadas condiciones Ubicación: Consulta Valor de ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O |
app_open_source |
Obligatorio en determinadas 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.
Solicitud de muestra
A 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.0 ?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 datos de ingresos con el rdid (advertisingid) no disponible:
POST /pagead/conversion/app/1.0 ?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.0 ?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-8
A continuación, se muestra un ejemplo de una solicitud de inicio de sesión de reatribució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.0 ?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-8
A 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.0 ?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-8
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:
Float
- 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.5
2.99
1000000.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
-11
0
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 definida en la zona horaria UTC con una precisión de hasta microsegundos
- Ejemplos válidos:
1478713087
para Wed, 09 Nov 2016 17:38:07 GMT1073513982.123000
para el mié., 7 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"]
Respuesta 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áquina, 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 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 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 contienen las siguientes propiedades.
Notas importantes sobre el comportamiento de la respuesta según el consentimiento del usuario:
Si la conversión tiene consentimiento para usar los datos del usuario de los anuncios y el usuario tiene consentimiento para el 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 otorgó 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 utiliza 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 se produjo el evento del anuncio, en segundos con una precisión de hasta 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. Se garantiza que este valor es único. 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 generó 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 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 publicitaria 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 publicitaria 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 DisplayEditores de la Web en dispositivos móvilesmGDN Google AdMob YouTubeRed de videos de YouTubeYouTubeVideos YouTubeSearch VideoPartners GoogleTvRed de videos de GoogleTVGoogleTvVideos en varias redesCampaña de máximo rendimiento en múltiples redescross-network |
video_id |
Solo se proporciona cuando string Es el ID de 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. 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. My App AdGroup |
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 participación. string |
Ejemplos de respuesta
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 de aplicaciones universal:
{ "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": null, "ad_group_name": "", "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": "My App AdGroup", "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": "My App AdGroup", "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 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": "My App AdGroup", "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 CPS de Play y de Búsqueda según los artículos 5(2)(b) y 5(2)(c):
{ "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": null, "ad_group_name": "", "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": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
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, 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": null, "ad_group_name": "", "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": null, "ad_group_name": "", "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": null, "ad_group_name": "", "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 original de seguimiento de conversiones, pero con una ruta de acceso de solicitud de:
/pagead/conversion/app/1.0/cross_network
y la incorporació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.0/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-8
Una solicitud de atribución entre redes válida siempre recibirá una respuesta genérica 200 sin cuerpo de respuesta.