Saltar al contenido principal

Descripción general

Introducción

Las pruebas A/B permiten a los anunciantes segmentar a los usuarios a los que llegan en X para entender cómo optimizar mejor el rendimiento de las campañas y obtener conclusiones que orienten sus estrategias de marketing. Estos segmentos —denominados divisiones de grupos de usuarios— se asignan de forma aleatoria y son mutuamente exclusivos. 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 definen a nivel de campaña. Por ejemplo, si el anunciante quiere probar la eficacia de una nueva pieza creativa, debe crear dos campañas idénticas donde la única diferencia sea la creatividad. 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 uso de optimización para clientes centrados en el rendimiento que buscan entender qué funciona mejor en X a fin de optimizar su inversión y (2) casos de uso de aprendizaje para anunciantes de marca que desean aprovechar 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

Pruebas A/B

Las pruebas A/B permiten a los anunciantes segmentar a los usuarios a los que llegan en X para comprender la mejor manera de optimizar el rendimiento de la campaña y obtener aprendizajes que orienten sus estrategias de marketing. Estos segmentos —denominados divisiones de grupos de usuarios— son aleatorios y mutuamente excluyentes. Con la aleatorización, los factores que influyen en los resultados se distribuyen de forma equitativa. 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 al mismo tiempo, 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 a nivel de grupo de anuncios. El grupo de anuncios se configura mediante line item en X Ads API. Como ejemplo de una variación a nivel de grupo de anuncios, si el anunciante quiere evaluar la eficacia de un nuevo creativo, debería crear una campaña con 2 grupos de anuncios idénticos donde la única diferencia sea el creativo.

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 buscan aprovechar los aprendizajes para orientar su estrategia de marketing.  La API admitirá pruebas A/B para cualquier variable de campaña, incluidas:
  • Creativo
  • 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 lo describen. A grandes rasgos, 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 debe asignarse al grupo de usuarios indicado, representado por el campo size
  • Los IDs de campaña/IDs de línea de pedido que deben conformar el conjunto de usuarios para el grupo de usuarios indicado, 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 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 para el 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 AB",
  "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 AB",
      "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 entidad de prueba A/B a nivel de elemento de línea.
{
   "created_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "name":"Test2e",
   "start_time":"2022-08-15T00:00:00Z",
   "updated_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "description":"Mi segunda prueba AB",
   "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 con todos los demás endpoints de la X Ads API.

Creación

Cree 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 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 “flight” de la campaña/line item
  • La prueba debe durar al menos un día para campañas no basadas en 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 se representa 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 mediante una representación en cadena de un valor numérico entre 1.00 y 99.00
    • Nota: Los valores de tamaño entre objetos deben sumar 100.00
  • Los id de campaña deben especificarse en el array entity_ids de cada grupo de usuarios
Opcionalmente, establezca 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 un 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 AB"}], "name": "primera prueba AB", "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 AB"
        }
      ],
      "name": "primera prueba AB",
      "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 AB",
    "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 AB",
        "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 line item La principal diferencia entre las pruebas A/B a nivel de campaña y a nivel de line item es el entity_type. Debemos configurarlo como ‘entity_type’ = ‘LINE_ITEM’ para las pruebas A/B a nivel de line item. Esto se aplica a todas las acciones sobre una prueba A/B ya creada que se detallan a continuación.  Requisitos:
  1. Todos los line items de la campaña de pruebas A/B deben incluirse en la prueba dividida.
  2. Solo se permite una división equitativa en el nivel de line item.
  3. La cantidad de line items de grupos de usuarios permitidos en 1 prueba dividida debe ser menor o igual a 5. 
  4. Solo 1 line item por grupo de usuarios.

Actualización

Actualice 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 se pueden actualizar cuando 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íe el arreglo completo (y sus subestructuras); esta es una operación de reemplazo
  • De lo contrario, modifique (cambie, agregue, elimine) fields existentes haciendo referencia a nombres de clave o ids
    • Para eliminar un field, establezca su valor en null
    • Los fields que no se envían no se modifican
Por ejemplo, agregar un tercer grupo de usuarios a la prueba A/B creada anteriormente requeriría enviar el arreglo user_groups con los dos objetos de grupo de usuarios existentes, así como con el nuevo que se desea agregar. Piense en esto como recrear el arreglo user_groups; envíe los data como si lo estuviera creando de esta manera desde el principio (no envíe ids de objetos de grupo de usuarios). El arreglo 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"
  }
]
Observe que los valores de size en todos los objetos siguen sumando 100.00. Si no los hubiéramos actualizado para los dos primeros objetos —que antes estaban en 50.00 cada uno—, la solicitud habría fallado. Si, en cambio, solo quisiéramos agregar 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. Considéralas como llamadas secuenciales. Los blobs 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 la misma que el 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. Elimina la descripción de la prueba A/B
  2. Agrega una descripción al primer grupo de usuarios
  3. Agrega 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 proporcionemos los dos id de entidad existentes junto con el nuevo. Observa que no se hicieron cambios en el tercer grupo de usuarios. Para realizar 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": "primer grupo"
    },
    {
      "entity_ids": [
        "i1vwr",
        "i1xre"
      ],
      "size": "45.00"
    }
  ]
}'

Referencia de la API

Pruebas A/B

GET accounts/:account_id/ab_tests

Obtén los detalles de algunas o 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
required
El identificador de la cuenta en uso. 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.

Type: string

Example: 18ce54d4x5t
ab_test_ids
optional
Limita la respuesta únicamente a las pruebas A/B deseadas especificando una lista de identificadores separados por comas. Se pueden proporcionar hasta 200 IDs.

Type: string

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

Type: int

Default: 200
Min, Max: 1, 1000
cursor
optional
Especifica un cursor para obtener la siguiente página de resultados. Consulta Pagination para más información.

Type: string

Example: 8x7v00oow
live_during
optional
Limita la respuesta a pruebas A/B que estuvieron o estarán activas durante el rango de fechas indicado. Devuelve pruebas A/B cuyos tiempos de inicio y fin se superponen —parcial o totalmente— con dicho rango.

Especifica los valores como fechas separadas por comas, expresadas en ISO 8601. La fecha más temprana debe indicarse primero.

Type: string

Example: 2020-11-01T08:00:00Z,2020-12-01T08:00:00Z
q
optional
Parámetro query opcional para acotar el recurso por name. Omite este parámetro para recuperar todos.

Type: string

Min, Max length: 1, 80
sort_by
optional
Ordena por un atributo admitido en orden ascendente o descendente. Consulta Sorting para más información.

Type: string

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

Type: enum

Possible values: COMPLETED, LIVE, SCHEDULED
user_id
optional
Limita la respuesta a pruebas A/B creadas por el ID de usuario especificado.

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

Type: long

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

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

Type: string

Example: apimctestface
with_deleted
optional
Incluye resultados eliminados en tu solicitud.

Type: boolean

Default: false
Possible values: 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 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"
          }
        }
      ],
      "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
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 al usuario autenticado.

Type: string

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

Type: string

Example: 2020-10-02T00:00:00Z
entity_type
obligatorio
El tipo de entidad que se utilizará para dividir los grupos de usuarios.

Type: enum

Possible values: CAMPAIGN, LINE_ITEM
start_time
obligatorio
La hora, en formato ISO 8601, en la que comenzará la prueba A/B.

Type: string

Example: 2022-05-30T00:00:00Z
user_groups
obligatorio
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.

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

Type: string

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

Type: string

Example: first AB test

Grupos de usuarios

NombreDescripción
entity_ids
obligatorio
Una matriz de IDs de entidad.

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

Type: array

Example: ["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 size entre objetos deben sumar 100.00.

Type: array

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

Type: string

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

Type: string

Example: 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": "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"}'

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": "second group",
              "description": "segundo grupo de prueba A/B"
            }
          ],
          "name": "primera prueba A/B"
          "description": "ejemplo de la documentación"
        }
      },
      "data": {
        "created_at": "2022-05-25T00:00:00Z",
        "created_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        },
        "deleted": false,
        "description": "ejemplo de la 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"
        }
      }
    }

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 un Content-Type de application/json. Este endpoint admite JSON parcial con id de objetos. Se aplican los siguientes principios:
  • Para añadir o eliminar objetos o elementos, envía el arreglo completo (y sus subestructuras); se trata de una operación de reemplazo
    • Piensa en ello como volver a crear el arreglo
  • En caso contrario, modifica (cambia, añade, elimina) los campos existentes haciendo referencia a nombres de clave o id
    • Para eliminar un campo, establece su valor en null
    • Los campos que no se envían no se modifican
En general, las pruebas A/B solo se pueden actualizar mientras el status sea 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 al usuario autenticado.

Tipo: string

Ejemplo: 18ce54d4x5t
ab_test_id
obligatorio
Una referencia a la prueba A/B con la que se opera 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 la 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 la 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 siguiente.

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
Referencia al objeto del grupo de usuarios con el que está operando en la solicitud.

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

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

Type: string

Example: p1bcx
description
opcional
Descripción del grupo de usuarios. Longitud máxima: 1.024 caracteres.

Nota: Para desasignar (eliminar), especifique el campo con un valor null.

Type: string

Example: second AB test group
entity_ids
opcional
Matriz de IDs 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.

Type: array

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

Nota: Para desasignar (eliminar), especifique el campo con un valor null.

Type: string

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

Nota: Los valores de tamaño entre los objects deben sumar 100.00.

Type: string

Min, Max: 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. Añade una descripción al primer grupo de usuarios
  4. Modifica el porcentaje de usuarios en cada grupo de usuarios
  5. Añade 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 del test 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": "primer test A/B",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "primer grupo",
            "description": "primer grupo del test A/B",
            "size": "60.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "segundo grupo",
            "description": "segundo grupo del test 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

Elimina la prueba A/B especificada. Nota: La eliminación de 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
Referencia a la prueba A/B con la que está operando en la solicitud.

Type: string

Example: hr7l0
Ejemplo de petición
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": "primer test A/B",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "primer grupo",
            "description": "primer grupo del test A/B",
            "size": "60.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "segundo grupo",
            "description": "segundo grupo del test A/B"
            "size": "40.0",
            "entity_ids": [
              "f2rqi",
              "f2tws",
              "f2syz"
            ]
          }
        ],
        "updated_at": "2022-06-02T00:18:31Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }
I