Saltar al contenido principal

Información general

Introducción

Las pruebas A/B permiten a los anunciantes segmentar a los usuarios a los que llegan en X para comprender cómo optimizar mejor el rendimiento de las campañas y obtener información que sirva para orientar sus estrategias de marketing. Estos segmentos —denominados divisiones de grupos de usuarios— se asignan de forma aleatoria y son mutuamente excluyentes. Con la aleatorización, los factores que influyen en los resultados se distribuyen por igual. En otras palabras, no existen diferencias inherentes entre los grupos ni en sus comportamientos esperados. Por ello, cuando se aplica una única variación a un grupo de usuarios y no a los demás, la diferencia en el rendimiento de la campaña puede atribuirse a esa variación. Si bien es posible probar muchas variaciones a la vez, recomendamos encarecidamente probar una sola variación a la vez. Esto aísla el factor causal de la diferencia observada en el rendimiento de la campaña. Las variaciones se establecen a nivel de campaña. Por ejemplo, si el anunciante desea probar la eficacia de una nueva pieza creativa, debe crear dos campañas idénticas en las que la única diferencia sea la pieza creativa. En el futuro, planeamos admitir variaciones a nivel de línea de pedido.

Casos de uso

Las pruebas A/B se utilizan con mayor frecuencia para respaldar (1) casos de optimización para clientes orientados al rendimiento que desean entender qué funciona mejor en X para optimizar su inversión y (2) casos de aprendizaje para anunciantes de marca que quieren aprovechar esos aprendizajes para orientar su estrategia de marketing.  La API admitirá pruebas A/B para cualquier variable de campaña, incluidas:
  • Creatividad 
  • Segmentación 
  • Tipo de puja
  • Unidad de puja

Pruebas A/B

Las pruebas A/B permiten a los anunciantes segmentar a los usuarios a los que llegan en X para comprender cómo optimizar mejor el rendimiento de la campaña y extraer aprendizajes que orienten sus estrategias de marketing. Estos segmentos —denominados divisiones de grupos de usuarios— se asignan aleatoriamente y son mutuamente excluyentes. Con la aleatorización, los factores que influyen en los resultados se distribuyen por igual. En otras palabras, no hay diferencias inherentes entre los grupos ni en sus comportamientos esperados. Por ello, cuando se aplica una única variación a un grupo de usuarios y no a los demás, la diferencia en el rendimiento de la campaña puede atribuirse a esa variación. Si bien es posible probar muchas variaciones a la vez, recomendamos encarecidamente probar una sola variación por vez. Esto aísla el factor causal de la diferencia observada en el rendimiento de la campaña. Las variaciones se definen a nivel de campaña o de grupo de anuncios. El grupo de anuncios se configura mediante line item en la Ads API. Como ejemplo de una variación a nivel de grupo de anuncios, si el anunciante desea evaluar la eficacia de una nueva creatividad, debería crear una campaña con 2 grupos de anuncios idénticos donde la única diferencia sea la creatividad.

Casos de uso

Las pruebas A/B se utilizan con mayor frecuencia para respaldar (1) casos de uso de optimización para clientes orientados al rendimiento que desean comprender qué funciona mejor en X a fin de optimizar su inversión y (2) casos de uso de aprendizaje para anunciantes de marca que quieren aplicar esos aprendizajes para orientar su estrategia de marketing.  La API admitirá pruebas A/B para cualquier variable de campaña, incluidas:
  • Creatividades
  • Segmentación
  • Tipo de puja
  • Unidad de puja

Atributos

Las pruebas A/B se representan como estructuras anidadas. Hay campos de nivel superior para la propia prueba A/B y un array de objetos de grupos de usuarios, cada uno con un conjunto de campos que la describen. A alto nivel, toda prueba A/B debe incluir la siguiente información.
  • La duración de la prueba, representada por los campos start_time y end_time
  • El nivel en el que se realizará la división, representado por el campo entity_type
  • Al menos dos (y como máximo 30) grupos de usuarios, cada uno representado como un objeto en el array user_groups
Cada grupo de usuarios debe incluir la siguiente información.
  • El porcentaje de usuarios que se debe asignar al grupo de usuarios correspondiente, representado por el campo size
  • Los IDs de campaña/IDs de line item que deben conformar el conjunto de usuarios para el grupo de usuarios correspondiente, representados por el array entity_ids
Opcionalmente, se pueden establecer valores de nombre y descripción para las pruebas A/B y para los grupos de usuarios. A continuación se puede encontrar información sobre las reglas de validación y otras restricciones. Otros metadatos, como el ID o la fecha de creación, también se incluyen, pero los establece automáticamente X. A continuación se muestra un ejemplo de entidad de prueba A/B a nivel de campaña.
{
  "created_at": "2020-12-01T00:00:00Z",
  "created_by": {
    "user_id": "756201191646691328",
    "username": "apimctestface"
  },
  "deleted": false,
  "description": "ejemplo de documentación",
  "end_time": "2020-12-05T01:00:00Z",
  "entity_type": "CAMPAIGN",
  "id": "hr7l0",
  "name": "primera prueba A/B",
  "start_time": "2020-12-01T01:00:00Z",
  "status": "SCHEDULED",
  "user_groups": [
    {
      "id": "p1bcx",
      "name": "primer grupo",
      "description": null,
      "size": "50.0",
      "entity_ids": [
        "f2qcw",
        "f2tht"
      ]
    },
    {
      "id": "p1bcy",
      "name": "segundo grupo",
      "description": "segundo grupo de prueba A/B",
      "size": 50,
      "entity_ids": [
        "f2rqi",
        "f2tws"
      ]
    }
  ],
  "updated_at": "2020-12-01T00:00:00Z",
  "updated_by": {
    "user_id": "756201191646691328",
    "username": "apimctestface"
  }
}
A continuación se muestra un ejemplo de una entidad de prueba A/B a nivel de partida.
{
   "created_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "name":"Prueba2e",
   "start_time":"2022-08-15T00:00:00Z",
   "updated_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "description":"Mi segunda prueba A/B",
   "entity_type":"LINE_ITEM",
   "end_time":"2022-08-30T00:00:00Z",
   "id":"1ul",
   "user_groups":[
      {
         "name":"primer grupo",
         "size":"50.0",
         "description":"descripción del primer grupo",
         "entity_ids":[
            "ij9dh"
         ],
         "id":"4xe"
      },
      {
         "name":"segundo grupo",
         "size":"50.0",
         "description":"descripción del segundo grupo",
         "entity_ids":[
            "ihng8"
         ],
         "id":"4xf"
      }
   ],
   "status":"SCHEDULED",
   "created_at":"2022-08-11T00:10:50Z",
   "updated_at":"2022-08-11T00:10:50Z",
   "deleted":false
}

Uso

Las subsecciones a continuación describen cómo crear y actualizar pruebas A/B. La lectura y la eliminación funcionan igual que en el resto de los endpoints de la Ads API.

Creación

Crea una prueba A/B usando el endpoint POST accounts/:account_id/ab_tests. El endpoint solo acepta cuerpos POST en JSON. El Content-Type debe establecerse en application/json. Después de que el anunciante configure dos o más campañas, se puede crear una prueba A/B. Como se indicó arriba, las pruebas A/B deben incluir: duración de la prueba, nivel de división y al menos dos grupos de usuarios. Cada grupo de usuarios debe declarar el porcentaje de usuarios que se le debe asignar, así como los ID de campaña que deben conformar su conjunto de usuarios. Cada uno de estos se describe con más detalle a continuación. Duración de la prueba:
  • Los valores de start_time y end_time deben
    • Estar en el futuro (en relación con el momento en que se crea la prueba A/B)
    • Superponerse con las fechas de vuelo de la campaña/line item
  • La prueba debe durar al menos un día para campañas que no sean de App y al menos cinco días para campañas basadas en App
Nivel de división:
  • El entity_type puede establecerse en CAMPAIGN o LINE_ITEM
Grupos de usuarios:
  • Cada grupo de usuarios está representado como un objeto en el array user_groups
    • Se requiere un mínimo de dos grupos de usuarios
    • Se permite un máximo de 30 grupos de usuarios
  • El tamaño de cada grupo de usuarios se establece usando una representación de cadena de un valor numérico entre 1.00 y 99.00
    • Nota: Los valores de tamaño de todos los objetos deben sumar 100.00
  • Los ID de campaña deben especificarse en el array entity_ids de cada grupo de usuarios
Opcionalmente, establece el nombre y la descripción de la prueba A/B o de uno o más grupos de usuarios. La siguiente solicitud crea una prueba A/B a nivel de campaña que dura cuatro días y tiene dos grupos de usuarios con 50% de usuarios en cada grupo. El primer grupo de usuarios se basa en las campañas f2qcw y f2tht; el segundo grupo de usuarios se basa en las campañas f2rqi y f2tws. La solicitud también agrega nombres y descripciones a algunas partes de la entidad. twurl -X POST -H ads-api.x.com “/8/accounts/18ce54d4x5t/ab_tests” -d ’{“end_time”: “2020-12-05T01:00:00Z”, “entity_type” : “CAMPAIGN”, “start_time”: “2020-12-01T01:00:00Z”, “user_groups”: [{“entity_ids”: [“f2qcw”, “f2tht”], “size”: “50.00”, “name”: “first group”},{“entity_ids”: [“f2rqi”, “f2tws”], “size”: “50.00”, “name”: “second group”, “description”: “second AB test group”}], “name”: “first AB test”, “description”: “documentation example”}’
twurl -X POST -H ads-api.x.com "/8/accounts/18ce54d4x5t/ab_tests" -d '{"end_time": "2020-12-05T01:00:00Z", "entity_type" : "CAMPAIGN", "start_time": "2020-12-01T01:00:00Z", "user_groups": [{"entity_ids": ["f2qcw", "f2tht"], "size": "50.00", "name": "primer grupo"},{"entity_ids": ["f2rqi", "f2tws"], "size": "50.00", "name": "segundo grupo", "description": "segundo grupo de prueba A/B"}], "name": "primera prueba A/B", "description": "ejemplo de documentación"}'

{
  "request": {
    "params": {
      "account_id": "18ce54d4x5t",
      "end_time": "2020-12-05T01:00:00Z",
      "entity_type": "CAMPAIGN",
      "start_time": "2020-12-01T01:00:00Z",
      "user_groups": [
        {
          "entity_ids": [
            "f2qcw",
            "f2tht"
          ],
          "size": "50.0",
          "name": "primer grupo"
        },
        {
          "entity_ids": [
            "f2rqi",
            "f2tws"
          ],
          "size": "50.0",
          "name": "segundo grupo",
          "description": "segundo grupo de prueba A/B"
        }
      ],
      "name": "primera prueba A/B",
      "description": "ejemplo de documentación"
    }
  },
  "data": {
    "created_at": "2020-12-01T00:00:00Z",
    "created_by": {
      "user_id": "756201191646691328",
      "username": "apimctestface"
    },
    "deleted": false,
    "description": "ejemplo de documentación",
    "end_time": "2020-12-05T01:00:00Z",
    "entity_type": "CAMPAIGN",
    "id": "hr7l0",
    "name": "primera prueba A/B",
    "start_time": "2020-12-01T01:00:00Z",
    "status": "SCHEDULED",
    "user_groups": [
      {
        "id": "p1bcx",
        "name": "primer grupo",
        "description": null,
        "size": "50.0",
        "entity_ids": [
          "f2qcw",
          "f2tht"
        ]
      },
      {
        "id": "p1bcy",
        "name": "segundo grupo",
        "description": "segundo grupo de prueba A/B",
        "size": "50.0",
        "entity_ids": [
          "f2rqi",
          "f2tws"
        ]
      }
    ],
    "updated_at": "2020-12-01T00:00:00Z",
    "updated_by": {
      "user_id": "756201191646691328",
      "username": "apimctestface"
    }
  }
}
Para pruebas A/B a nivel de línea de pedido La principal diferencia entre las pruebas A/B a nivel de campaña y a nivel de línea de pedido es el entity_type. Debemos configurarlo en ‘entity_type’ = ‘LINE_ITEM’ para las pruebas A/B a nivel de línea de pedido. Esto aplica a todas las acciones sobre una prueba A/B ya creada a continuación.  Requisitos:
  1. Todas las líneas de pedido de la campaña de pruebas A/B deben incluirse en la prueba dividida.
  2. Solo se permite una división equitativa a nivel de línea de pedido.
  3. La cantidad de líneas de pedido por grupos de usuarios permitida en 1 prueba dividida debe ser menor o igual a 5. 
  4. Solo 1 línea de pedido por grupo de usuarios.

Actualización

Actualiza una prueba A/B usando el endpoint PUT accounts/:account_id/ab_tests/:ab_test_id. El endpoint requiere enviar un blob JSON en la solicitud. El Content-Type debe establecerse en application/json. Como otros endpoints de actualización, el endpoint PUT accounts/:account_id/ab_tests/:ab_test_id requiere que el ID de la prueba A/B se incluya en la URL. En general, las pruebas A/B solo pueden actualizarse mientras el estado es SCHEDULED. Hay una excepción: es posible actualizar el end_time de la prueba A/B mientras está LIVE. Este endpoint admite JSON parcial con IDs de objeto. Se aplican los siguientes principios:
  • Para agregar o eliminar objetos o elementos, envía el array completo (y sus subestructuras); es una operación de reemplazo
  • En caso contrario, modifica (cambia, agrega, elimina) los fields existentes haciendo referencia a nombres de claves o IDs
    • Para eliminar un campo, establece su valor en null
    • Los campos que no se envían no se modifican
Por ejemplo, para agregar un tercer grupo de usuarios a la prueba A/B creada anteriormente, deberás enviar el array user_groups con los dos objetos de grupo de usuarios existentes y el nuevo que deseas agregar. Piensa en esto como recrear el array user_groups; envía los data como si lo estuvieras creando así desde el principio (no envíes IDs de objetos de grupos de usuarios). El array user_groups en la solicitud de actualización podría representarse de la siguiente manera.
[
  {
    "entity_ids": [
      "f2qcw",
      "f2tht"
    ],
    "size": "30.0",
    "name": "primer grupo"
  },
  {
    "entity_ids": [
      "f2rqi",
      "f2tws"
    ],
    "size": "30.0",
    "name": "segundo grupo",
    "description": "segundo grupo de prueba AB"
  },
  {
    "entity_ids": [
      "i1vwr",
      "i1xre"
    ],
    "size": "40.0"
  }
]
Observa que los valores de tamaño en todos los objetos siguen sumando 100.00. Si no los hubiéramos actualizado para los dos primeros objetos —antes establecidos en 50.00 cada uno—, la solicitud habría fallado. Si, en cambio, simplemente quisiéramos añadir una descripción al primer grupo de usuarios, el array user_groups en la solicitud de actualización se representaría de la siguiente manera.
[
  {
    "id": "p1bcx",
    "description": "actualizado mediante una solicitud PUT"
  }
]
Nos referimos al objeto del grupo de usuarios por id y solo incluimos el campo que queremos modificar.

Ejemplos de solicitudes

Esta sección ofrece ejemplos adicionales de solicitudes de actualización. Considere que se ejecutan de forma secuencial. Los bloques JSON están formateados para facilitar la lectura. Se omiten las respuestas. Para realizar las siguientes modificaciones, la solicitud se representaría de la siguiente manera. (Es el mismo ejemplo utilizado anteriormente).
  1. Agrega un tercer grupo de usuarios sin nombre ni descripción
  2. Cambia el porcentaje de usuarios en cada grupo de usuarios
twurl -X PUT -H ads-api.x.com “/8/accounts/18ce54d4x5t/ab_tests/hr7l0” -d ’
twurl -X PUT -H ads-api.x.com "/8/accounts/18ce54d4x5t/ab_tests/hr7l0" -d '
{
  "user_groups": [
    {
      "entity_ids": [
        "f2qcw",
        "f2tht"
      ],
      "size": "30.00",
      "name": "primer grupo"
    },
    {
      "entity_ids": [
        "f2rqi",
        "f2tws"
      ],
      "size": "30.00",
      "name": "segundo grupo",
      "description": "segundo grupo de prueba A/B"
    },
    {
      "entity_ids": [
        "i1vwr",
        "i1xre"
      ],
      "size": "40.00"
    }
  ]
}'
Para realizar las siguientes modificaciones, la solicitud se representaría de la siguiente manera.
  1. Eliminar la descripción de la prueba A/B
  2. Agregar una descripción al primer grupo de usuarios
  3. Agregar un id de entidad (f2syz) al segundo grupo de usuarios
twurl -X PUT -H ads-api.x.com “/8/accounts/18ce54d4x5t/ab_tests/hr7l0” -d ’
twurl -X PUT -H ads-api.x.com "/8/accounts/18ce54d4x5t/ab_tests/hr7l0" -d '
{
  "description": null,
  "user_groups": [
    {
      "id": "p1bcx",
      "description": "primer grupo de prueba AB"
    },
    {
      "id": "p1bcy",
      "entity_ids": [
        "f2rqi",
        "f2tws",
        "f2syz"
      ]
    }
  ]
}'
La tercera modificación requiere que incluyamos los dos id de entidad existentes junto con el nuevo. Observa que no se realizaron cambios en el tercer grupo de usuarios. Para aplicar las siguientes modificaciones, la solicitud se representaría de la siguiente manera.
  1. Elimina el segundo grupo de usuarios
  2. Cambia el porcentaje de usuarios en cada grupo de usuarios
twurl -X PUT -H ads-api.x.com "/8/accounts/18ce54d4x5t/ab_tests/hr7l0" -d '
{
  "user_groups": [
    {
      "entity_ids": [
        "f2qcw",
        "f2tht"
      ],
      "size": "55.00",
      "name": "first group"
    },
    {
      "entity_ids": [
        "i1vwr",
        "i1xre"
      ],
      "size": "45.00"
    }
  ]
}'

Referencia de la API

Pruebas A/B

GET accounts/:account_id/ab_tests

Obtén detalles de algunas o de todas las pruebas A/B.
URL del recurso
https://ads-api.x.com/12/accounts/:account_id/ab_tests
Parámetros
NombreDescripción
account_id
obligatorio
El identificador de la cuenta utilizada. Aparece en la ruta del recurso y, por lo general, es un parámetro obligatorio para todas las solicitudes de la Advertiser API, excepto GET accounts. La cuenta especificada debe estar asociada con el usuario autenticado.

Tipo: string

Ejemplo: 18ce54d4x5t
ab_test_ids
opcional
Limita la respuesta solo a las pruebas A/B deseadas especificando una lista de identificadores separados por comas. Se pueden proporcionar hasta 200 id.

Tipo: string

Ejemplo: hr7l0
count
opcional
Especifica la cantidad de registros que se intentará recuperar por cada solicitud.

Tipo: int

Predeterminado: 200
Mín., Máx.: 1, 1000
cursor
opcional
Especifica un cursor para obtener la siguiente página de resultados. Consulta Paginación para más información.

Tipo: string

Ejemplo: 8x7v00oow
live_during
opcional
Limita la respuesta a pruebas A/B que estuvieron o estarán activas durante el rango de fechas dado. Devuelve pruebas A/B cuyos horarios de inicio y fin se superponen, parcial o totalmente, con el rango de fechas dado.

Especifica los valores como fechas separadas por comas, expresadas en ISO 8601. La fecha anterior debe especificarse primero.

Tipo: string

Ejemplo: 2020-11-01T08:00:00Z,2020-12-01T08:00:00Z
q
opcional
Consulta opcional para limitar el recurso por name. Omite este parámetro para recuperar todo.

Tipo: string

Longitud mín., máx.: 1, 80
sort_by
opcional
Ordena por el atributo admitido en orden ascendente o descendente. Consulta Ordenación para más información.

Tipo: string

Ejemplo: created_at-asc
status
opcional
Limita la respuesta a pruebas A/B con el estado deseado.

Tipo: enum

Valores posibles: COMPLETED, LIVE, SCHEDULED
user_id
opcional
Limita la respuesta a pruebas A/B creadas por el id de usuario especificado.

Nota: No se puede especificar al mismo tiempo que username.

Tipo: long

Ejemplo: 756201191646691328.
username
opcional
Limita la respuesta a pruebas A/B creadas por el nombre de usuario especificado. No incluyas el símbolo ”@” inicial.

Nota: No se puede especificar al mismo tiempo que user_id.

Tipo: string

Ejemplo: apimctestface.
with_deleted
opcional
Incluye resultados eliminados en tu solicitud.

Tipo: boolean

Predeterminado: false
Valores posibles: true, false
Ejemplo de solicitud
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests
Ejemplo de respuesta
    {
      "request": {
        "params": {
          "account_id": "18ce54d4x5t"
        }
      },
      "data": [
        {
          "created_at": "2022-05-25T00:00:00Z",
          "created_by": {
            "user_id": "756201191646691328",
            "username": "apimctestface"
          },
          "deleted": false,
          "description": "ejemplo de documentación",
          "end_time": "2022-05-30T01:00:00Z",
          "entities": [
            {
              "id": "p1bcx",
              "account_id": "18ce54d4x5t"
            },
            {
              "id": "p1bcy",
              "account_id": "18ce54d4x5t"
            }
          ],
          "entity_type": "CAMPAIGN",
          "id": "hr7l0",
          "name": "primera prueba A/B",
          "start_time": "2022-05-25T01:00:00Z",
          "status": "SCHEDULED",
          "user_groups": [
            {
              "id": "p1bcx",
              "name": "primer grupo",
              "description": null,
              "size": "50.0",
              "entity_ids": [
                "f2qcw",
                "f2tht"
              ]
            },
            {
              "id": "p1bcy",
              "name": "segundo grupo",
              "description": "segundo grupo de prueba A/B",
              "size": "50.0",
              "entity_ids": [
                "f2rqi",
                "f2tws"
              ]
            }
          ],
          "updated_at": "2022-05-25T00:00:00Z",
          "updated_by": {
            "user_id": "756201191646691328",
            "username": "apimctestface"
          }
        }
      ],
      "next_cursor": null
    }

POST accounts/:account_id/ab_tests

Crea una nueva prueba A/B. Todos los parámetros se envían en el cuerpo de la solicitud y se requiere un Content-Type de application/json.
URL del recurso
https://ads-api.x.com/12/accounts/:account_id/ab_tests
Parámetros
NombreDescripción
account_id
requerido
El identificador de la cuenta utilizada. Aparece en la ruta del recurso y, por lo general, es un parámetro obligatorio para todas las solicitudes de la Advertiser API, excepto GET accounts. La cuenta especificada debe estar asociada al usuario autenticado.

Tipo: string

Ejemplo: 18ce54d4x5t
end_time
requerido
La hora, en formato ISO 8601, en la que finalizará la prueba A/B.

Tipo: string

Ejemplo: 2020-10-02T00:00:00Z
entity_type
requerido
El tipo de entidad que se utilizará para la división de los grupos de usuarios.

Tipo: enum

Valores posibles: CAMPAIGN, LINE_ITEM
start_time
requerido
La hora, en formato ISO 8601, en la que comenzará la prueba A/B.

Tipo: string

Ejemplo: 2022-05-30T00:00:00Z
user_groups
requerido
Describe los grupos de usuarios. Más información en la tabla a continuación. Se pueden especificar entre 2 y 30 grupos de usuarios.

Tipo: array of objects
description
opcional
La descripción de la prueba A/B. Longitud máxima: 1.024 caracteres.

Tipo: string

Ejemplo: documentation example
name
opcional
El nombre de la prueba A/B. Longitud máxima: 255 caracteres.

Tipo: string

Ejemplo: first AB test

Grupos de usuarios

NombreDescripción
entity_ids
obligatorio
Un arreglo de IDs de entidad.

Nota: Las entidades solo pueden asociarse con una prueba A/B.

Tipo: arreglo

Ejemplo: ["dxi0l", "e66bl"]
size
obligatorio
El porcentaje de usuarios que se asignará a este grupo de usuarios. Es un valor numérico representado como una cadena con un máximo de dos dígitos después del punto decimal. Por ejemplo, representa el 40% como: 40, 40.0 o 40.00.

Nota: Los valores de tamaño de todos los objetos deben sumar 100.00.

Tipo: arreglo

Mín., Máx.: 1.00, 99.00
description
opcional
La descripción del grupo de usuarios. Longitud máxima: 1,024 caracteres.

Tipo: cadena

Ejemplo: second AB test group
name
opcional
El nombre del grupo de usuarios. Longitud máxima: 255 caracteres.

Tipo: cadena

Ejemplo: first group

Ejemplo de solicitud

POST https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests -d '{"end_time": "2022-05-30T01:00:00Z", "entity_type" : "CAMPAIGN", "start_time": "2022-05-25T01:00:00Z", "user_groups": [{"entity_ids": ["f2qcw", "f2tht"], "size": "50.00", "name": "first group"},{"entity_ids": ["f2rqi", "f2tws"], "size": "50.00", "name": "second group", "description": "second AB test group"}], "name": "first AB test", "description": "documentation example"}'

Ejemplo de respuesta

    {
      "request": {
        "params": {
          "account_id": "18ce54d4x5t",
          "end_time": "2022-05-30T01:00:00Z",
          "entity_type": "CAMPAIGN",
          "start_time": "2022-05-25T01:00:00Z",
          "user_groups": [
            {
              "entity_ids": [
                "f2qcw",
                "f2tht"
              ],
              "size": "50.0",
              "name": "primer grupo"
            },
            {
              "entity_ids": [
                "f2rqi",
                "f2tws"
              ],
              "size": "50.0",
              "name": "segundo grupo",
              "description": "segundo grupo de prueba AB"
            }
          ],
          "name": "primera prueba AB",
          "description": "ejemplo de documentación"
        }
      },
      "data": {
        "created_at": "2022-05-25T00:00:00Z",
        "created_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        },
        "deleted": false,
        "description": "ejemplo de documentación",
        "end_time": "2022-05-30T01:00:00Z",
        "entities": [
          {
            "id": "p1bcx",
            "account_id": "18ce54d4x5t"
          },
          {
            "id": "p1bcy",
            "account_id": "18ce54d4x5t"
          }
        ],
        "entity_type": "CAMPAIGN",
        "id": "hr7l0",
        "name": "primera prueba AB",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "primer grupo",
            "description": null,
            "size": "50.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "segundo grupo",
            "description": "segundo grupo de prueba AB",
            "size": "50.0",
            "entity_ids": [
              "f2rqi",
              "f2tws"
            ]
          }
        ],
        "updated_at": "2022-05-25T00:00:00Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }

PUT accounts/:account_id/ab_tests/:ab_test_id

Actualiza la prueba A/B especificada. Todos los parámetros se envían en el cuerpo de la solicitud y se requiere Content-Type: application/json. Este endpoint admite JSON parcial con IDs de objeto. Se aplican los siguientes principios:
  • Para agregar o eliminar objetos o elementos, envía el arreglo completo (y sus subestructuras); esta es una operación de reemplazo
    • Piensa en esto como volver a crear el arreglo
  • En caso contrario, modifica (cambia, agrega, elimina) los fields existentes haciendo referencia a nombres de clave o IDs
    • Para eliminar un field, establece su valor en null
    • Los fields que no se envían no se modifican
En general, las pruebas A/B solo pueden actualizarse mientras el status es SCHEDULED. Hay una excepción: es posible actualizar el end_time de la prueba A/B mientras está LIVE.
URL del recurso
https://ads-api.x.com/12/accounts/18ce54d4x5t/:ab_test_id
Parámetros
NombreDescripción
account_id
obligatorio
El identificador de la cuenta utilizada. Aparece en la ruta del recurso y, por lo general, es un parámetro obligatorio para todas las solicitudes de la Advertiser API, excepto GET accounts. La cuenta especificada debe estar asociada con el usuario autenticado.

Tipo: string

Ejemplo: 18ce54d4x5t
ab_test_id
obligatorio
Una referencia a la prueba A/B con la que estás operando en la solicitud.

Tipo: string

Ejemplo: hr7l0
description
opcional
La descripción de la prueba A/B. Longitud máxima: 1.024 caracteres.

Nota: Solo se puede actualizar mientras el status de la prueba A/B sea SCHEDULED.

Tipo: string

Ejemplo: documentation example
end_time
opcional
La hora, expresada en ISO 8601, en que finalizará la prueba A/B.

Nota: Solo se puede actualizar mientras el status de la prueba A/B sea SCHEDULED o LIVE.

Tipo: string

Ejemplo: 2020-10-02T00:00:00Z
name
opcional
El nombre de la prueba A/B. Longitud máxima: 255 caracteres.

Nota: Solo se puede actualizar mientras el status de la prueba A/B sea SCHEDULED.

Tipo: string

Ejemplo: first AB test
start_time
opcional
La hora, expresada en ISO 8601, en que comenzará la prueba A/B.

Nota: Solo se puede actualizar mientras el status de la prueba A/B sea SCHEDULED.

Tipo: string

Ejemplo: 2022-05-30T00:00:00Z
user_groups
obligatorio
Describe los grupos de usuarios. Más información en la tabla a continuación.

Nota: Solo se puede actualizar mientras el status de la prueba A/B sea SCHEDULED.

Tipo: array of objects

Grupos de usuarios

NombreDescripción
id
a veces obligatorio
Una referencia al objeto de grupo de usuarios con el que está operando en la solicitud.

Nota: Obligatorio al modificar (cambiar, agregar o eliminar) fields del objeto de grupo de usuarios.

Nota: No especifique un ID al agregar o eliminar objetos completos de grupo de usuarios.

Tipo: string

Ejemplo: p1bcx
description
opcional
La descripción del grupo de usuarios. Longitud máxima: 1,024 caracteres.

Nota: Quite el valor especificando el campo con null.

Tipo: string

Ejemplo: second AB test group
entity_ids
opcional
Un arreglo de ID de entidades.

Nota: Esta es una operación de reemplazo. Sobrescribe lo que se hubiera establecido previamente.

Nota: Las entidades solo pueden asociarse con una prueba A/B.

Tipo: array

Ejemplo: ["dxi0l", "e66bl"]
name
opcional
El nombre del grupo de usuarios. Longitud máxima: 255 caracteres.

Nota: Quite el valor especificando el campo con null.

Tipo: string

Ejemplo: first group
size
opcional
El porcentaje de usuarios que se asignarán a este grupo de usuarios. Es un valor numérico representado como cadena con, como máximo, dos dígitos después del punto decimal. Por ejemplo, 40% se puede representar como: 40, 40.0 o 40.00.

Nota: Los valores de tamaño de todos los objetos deben sumar 100.00.

Tipo: string

Mín., Máx.: 1.00, 99.00
Solicitud de ejemplo
Esta solicitud realiza las siguientes modificaciones.
  1. Elimina la descripción de la prueba A/B
  2. Cambia la hora de finalización
  3. Agrega una descripción al primer grupo de usuarios
  4. Cambia el porcentaje de usuarios en cada grupo de usuarios
  5. Agrega un ID de entidad (f2syz) al segundo grupo de usuarios
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests/hr7l0 -d '{"description": null, "end_time": "2022-06-01T01:00:00Z", "user_groups": [{"id": "p1bcx", "description": "first AB test group", "size": "60.00"},{"id": "p1bcy", "size": "40.00", "entity_ids": ["f2rqi", "f2tws", "f2syz"]}]}'
Ejemplo de respuesta
    {
      "request": {
        "params": {
          "account_id": "18ce54d4x5t",
          "ab_test_id": "hr7l0",
          "description": null,
          "end_time": "2022-06-01T01:00:00Z",
          "user_groups": [
            {
              "id": "p1bcx",
              "description": "primer grupo de prueba A/B",
              "size": "60.0"
            },
            {
              "id": "p1bcy",
              "size": "40.0",
              "entity_ids": [
                "f2rqi",
                "f2tws",
                "f2syz"
              ]
            }
          ]
        }
      },
      "data": {
        "created_at": "2020-05-25T00:00:00Z",
        "created_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        },
        "deleted": false,
        "description": null,
        "end_time": "2022-06-01T01:00:00Z",
        "entities": [
          {
            "id": "p1bcx",
            "account_id": "18ce54d4x5t"
          },
          {
            "id": "p1bcy",
            "account_id": "18ce54d4x5t"
          }
        ],
        "entity_type": "CAMPAIGN",
        "id": "hr7l0",
        "name": "primera prueba A/B",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "primer grupo",
            "description": "primer grupo de prueba A/B",
            "size": "60.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "segundo grupo",
            "description": "segundo grupo de prueba A/B",
            "size": "40.0",
            "entity_ids": [
              "f2rqi",
              "f2tws",
              "f2syz"
            ]
          }
        ],
        "updated_at": "2022-05-25T00:17:23Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }

DELETE accounts/:account_id/ab_tests/:ab_test_id

Eliminar la prueba A/B especificada. Nota: Eliminar una prueba A/B es irreversible y los intentos posteriores de eliminar el recurso devolverán HTTP 404.
URL del recurso
https://ads-api.x.com/12/accounts/:account_id/ab_tests/:ab_test_id
Parámetros
NombreDescripción
ab_test_id
obligatorio
Una referencia a la prueba A/B con la que operas en la solicitud.

Tipo: string

Ejemplo: hr7l0
Ejemplo de solicitud
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests/hr7l0

Ejemplo de respuesta

    {
      "request": {
        "params": {
          "account_id": "18ce54d4x5t",
          "ab_test_id": "hr7l0"
        }
      },
      "data": {
        "created_at": "2022-05-25T00:00:00Z",
        "created_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        },
        "deleted": true,
        "description": null,
        "end_time": "2022-06-01T01:00:00Z",
        "entities": [
          {
            "id": "p1bcx",
            "account_id": "18ce54d4x5t"
          },
          {
            "id": "p1bcy",
            "account_id": "18ce54d4x5t"
          }
        ],
        "entity_type": "CAMPAIGN",
        "id": "hr7l0",
        "name": "primera prueba A/B",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "primer grupo",
            "description": "primer grupo de prueba A/B",
            "size": "60.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "segundo grupo",
            "description": "segundo grupo de prueba A/B",
            "size": "40.0",
            "entity_ids": [
              "f2rqi",
              "f2tws",
              "f2syz"
            ]
          }
        ],
        "updated_at": "2022-06-02T00:18:31Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }