Seguimiento de conversiones de aplicaciones y remarketing: especificaciones de solicitudes y respuestas

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. (Google AdMob)

Ten en cuenta que, si el usuario-agente se construye en el cliente, name debe ser el ID del paquete de la app del cliente.


Android
// Specified by API consumer.

iOS
// Specified by API consumer.
version

Es la versión del producto de análisis o de anuncios. (7.10.1)


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. (Android 6.0 )


Android
String osAndVersion =
    "Android " + Build.VERSION.RELEASE;

iOS
UIDevice *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. (en_US)


Android
String locale = Locale.getDefault();

iOS
NSString *locale =
  [[NSLocale currentLocale]
    localeIdentifier]
device

Es el nombre del dispositivo físico que ejecuta el producto de análisis o anuncios. (iPhone9,1)


Android
String 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 (Build/13D15)


Android
String 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
, donde version es la versión prevista de la API de seguimiento de conversiones. Actualmente, la única versión válida es 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 first_open siempre se debe enviar para atribuir instalaciones, y el evento session_start siempre se debe enviar para reatribuir sesiones. Usa in_app_purchase para las compras realizadas a través de la tienda de aplicaciones nativa y ecommerce_purchase para todas las demás compras.

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 app_event_type. Este campo debe contener de 1 a 64 caracteres Unicode (con codificación UTF-8). Este campo es obligatorio si app_event_type es personalizado.

level_achieved
Level Achieved

Este campo no debe contener ninguno de los valores reservados para app_event_type. Si se usa un nombre de evento reservado, la API devolverá un error APP_EVENT_NAME_RESERVED_VALUE.

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 rdid. Es posible que aceptemos más valores en el futuro, pero, para comenzar, admitiremos los siguientes.


Android

advertisingid

iOS

idfa
eea

Obligatorio en determinadas condiciones


Ubicación: Consulta


Es el alcance del EEA.

0: Los reglamentos europeos no se aplican a este usuario ni a esta conversión.

1: Los reglamentos europeos se aplican a este usuario y a esta conversión. Por ejemplo, si un usuario se encuentra en el EEA, está dentro del alcance de las reglamentaciones europeas aplicables.


*Required to be sent when the value is known.

ad_personalization

Obligatorio en determinadas condiciones


Ubicación: Consulta


Marcas para los anuncios personalizados

0: El usuario final rechazó el consentimiento para la personalización de anuncios

1: El usuario final otorgó el consentimiento para la personalización de anuncios


*Required to be sent when the value is known.

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.

0: El usuario rechazó el consentimiento para la transmisión de datos a nivel del usuario a Google con fines publicitarios

1: El usuario otorgó el consentimiento para la transmisión de datos a nivel del usuario a Google con fines publicitarios


*Required to be sent when the value is known.

lat

Obligatorio


Ubicación: Consulta


Es el estado de la función Limitar el seguimiento de anuncios para el dispositivo.

  • 0: El usuario no eligió limitar el seguimiento de anuncios.
  • 1: El usuario eligió limitar el seguimiento de anuncios.

app_version

Obligatorio


Ubicación: Consulta


Es la versión actual de la app, que debe estandarizarse de la siguiente manera.


Android

packageManager.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.


Android

android.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 app_version.

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 value. Este campo es obligatorio si se proporciona el parámetro value y no está en blanco.

USD
gclid

Obligatorio en determinadas condiciones


Ubicación: Consulta


Es el valor del parámetro de búsqueda gclid de una URL de vínculo directo que abrió la app.

Cj0KEQjw0dy4BRCuuL_e5M
market_referrer_gclid

Obligatorio en determinadas condiciones


Ubicación: Consulta


Es el valor del parámetro de búsqueda gclid de una URL de vínculo directo capturada del valor de install_referrer a través de la API de Play Install Referrer.

BX3QojHp4mY5MrJtFM_d1u
gclid_only_request

Obligatorio en determinadas condiciones


Ubicación: Consulta


Es el identificador para la atribución basada en gclid en situaciones en las que rdid (advertisingid) está disponible como not o todos los zeroes Y está presente gclid o market_referrer_gclid.

1
gbraid

Obligatorio en determinadas condiciones


Ubicación: Consulta


Valor de gbraid del último visto enviado a través de la URL de vínculo directo que abrió la app. Ten en cuenta que este valor debe almacenarse en caché en la app para que se pueda enviar con las conversiones futuras que se produzcan en la app.

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
       &timestamp=1432681913.123456
       &value=1.99
       &currency_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
       &timestamp=1432681913.123456
       &value=1.99
       &currency_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
       &timestamp=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
       &timestamp=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
       &timestamp=1432681913.123456
       &value=1.99
       &currency_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., 2016
      • mm = mes de dos dígitos, p.ej., 09 para septiembre
      • dd = 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"
  • 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 GMT
      • 1073513982.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


ad_event_id sirve como identificador único para los eventos de anuncios. Se reutiliza en la solicitud de atribución de redes múltiples y se debe registrar o conservar para fines de depuración.

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 aplicaciones
ClickToDownload
Participación en la aplicación
AppDeepLink
Participación en la app: Flujo de instalación y continuación
AppDeepLinkContinue
Comodín para otros valores
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á null cuando campaign_type sea ACI o ACE y network_type sea Display.


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.


Búsqueda de Google normal
GoogleSearch
Socios de búsqueda de Google
SearchPartners

Display

Editores de la Web en dispositivos móviles
mGDN
Publicadores de aplicaciones
Google AdMob

YouTube

Red de videos de YouTube
YouTubeVideos
Red de Búsqueda de YouTube
YouTubeSearch
Socios de video
VideoPartners

GoogleTv

Red de videos de GoogleTV
GoogleTvVideos

en varias redes

Campaña de máximo rendimiento en múltiples redes
cross-network
video_id

Solo se proporciona cuando network_type es YouTube y campaign_type no es ACI ni ACE.


string


Es el ID de video de YouTube asociado al evento del anuncio.

dQw4w9WgXcQ
keyword

Solo se proporciona cuando network_type es Search y campaign_type no es ACI ni ACE.


string


Es la palabra clave de la búsqueda asociada con el evento del anuncio.

+food +delivery
match_type

Solo se proporciona cuando network_type es Search y campaign_type no es ACI ni ACE.


string


Es el tipo de concordancia para las palabras clave de búsqueda.

Exacta
e
Frase
p
Amplia
b
placement

Solo se proporciona cuando network_type es Display y campaign_type no es ACI ni ACE.


string


Es la posición asociada al evento del anuncio.

mobileapp::1-343200656
ad_group_id

Solo se proporciona cuando campaign_type no es Performance_Max.


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 campaign_type es ACI, ACE o ACPRE.


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 campaign_type no es ACI, ACE, ACPRE o Performance_Max.


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": []
}
{
  "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
}
{
  "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
}
{
  "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 ad_event_id del evento de anuncio asociado con la atribución en la solicitud anterior.

attributed

Obligatorio


Ubicación: Consulta


Indica si el consumidor de la API otorgó crédito a Google Ads por la conversión. 0 o 1

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
       &timestamp=1432681913.123456
       &value=1.99
       &currency_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.