Saltar al contenido principal

Descripción General

Topsort ofrece dos formas de integrar demanda de terceros en tu stack publicitario:
  • Mediación de Demanda – Para listings patrocinados, las fuentes de demanda externas (p. ej., Criteo) pueden enviar pujas a la subasta de Topsort, donde compiten directamente contra la demanda de Topsort. La puja más alta gana, independientemente de la fuente.
  • Demand Fallback – Para espacios de banners, Topsort puede devolver una etiqueta de Google Ad Manager (GAM) cuando no hay demanda de Topsort disponible, generando ingresos incrementales para el marketplace a través de anuncios programáticos.

Mediación de Demanda

¿Qué es la Mediación de Demanda?

Anteriormente, las subastas de Topsort solo recibían demanda de fuentes de Topsort (ya sea de vendedores dentro de un marketplace o a través de Toppie). Con la mediación de demanda, Topsort ahora puede obtener demanda de fuentes de terceros.
La primera fuente de demanda de terceros integrada es Criteo, una plataforma líder de publicidad en retail media con presupuestos de grandes marcas alrededor del mundo. Para cada posicionamiento de listado patrocinado, un retailer obtiene pujas de Criteo y las envía a Topsort. Topsort compara las pujas de Criteo con sus propias pujas y selecciona las ganadoras entre ellas.
Topsort puede incorporar fácilmente otras fuentes de demanda más allá de Criteo, siempre que sus pujas puedan enviarse mediante el parámetro demandSources del endpoint de subasta.

Cómo Funciona la Facturación

Con la mediación de demanda usando Criteo:
  • El retailer es propietario de la cuenta/instancia de Criteo, no Topsort
  • Los anunciantes pagan directamente a Criteo
  • Criteo factura a los anunciantes, cobra su tarifa de plataforma y paga al retailer su participación en los ingresos
  • Topsort factura al retailer por separado (estructura de facturación por definir)

Beneficios

Los retailers pueden generar ingresos publicitarios adicionales a través de la mediación de demanda:
  • Cubrir espacios vacíos: Cuando no hay demanda de Topsort para solicitudes de anuncios, la demanda de Criteo puede estar disponible
  • Aumentar la competencia: Cuando existe demanda de Topsort, la demanda de Criteo puede pujar más alto, aumentando los ingresos totales

¿Para quién es?

Si bien cualquier cliente puede agregar demanda de Criteo, esta integración es más relevante para clientes que probablemente atraigan un gasto publicitario significativo en Criteo:
  • Grandes marketplaces en EE. UU.: Muchas marcas importantes de EE. UU. pujan en anuncios de retail media a través de herramientas como Pacvue y Skai, que a su vez pujan en el inventario de Criteo. Esta configuración permite a las grandes marcas evitar la integración directa con cada retailer en el que desean anunciarse.
  • Grandes marketplaces en LATAM: Criteo tiene una presencia significativa en América Latina, lo que hace que esta integración sea valiosa para los grandes marketplaces de la región también.

Proceso de Incorporación

Para incorporar un marketplace con mediación de demanda:
1

Configurar posicionamientos en Criteo

El marketplace debe configurar en su cuenta de Criteo todos los posicionamientos para los que desee obtener demanda de Criteo.
2

Actualizar el código del frontend

Al cargar la página, el marketplace debe:
  1. Obtener pujas de Criteo para el posicionamiento
  2. Enviar esas pujas a Topsort como parámetro adicional en la solicitud de subasta
3

Gestionar la respuesta de la subasta

Topsort devuelve las pujas ganadoras, que pueden incluir ganadores tanto de Topsort como de Criteo.
4

Reportar eventos

Si hay ganadores de Criteo, el marketplace debe reportar los eventos tanto a Topsort como a Criteo.

Implementación en la API

El endpoint de subastas ha sido extendido para admitir fuentes de demanda externas. Agregar demanda externa requiere un nuevo campo de entrada y dos nuevos campos de respuesta para los ganadores de la subasta.
El número de pujas externas está limitado a 100 por solicitud de subasta.

Cambios en la Solicitud

Se ha añadido un nuevo campo demandSources al objeto de subastas:
  • demandSources: Array de objetos demandSource
    • source: Enum que identifica la fuente de demanda externa (p. ej., "criteo")
    • bids: Array de objetos Bid, uno por cada puja externa
Cada objeto Bid contiene:
  • chargeType: Enum (solo se admite "CPC" en la primera versión)
  • entity: Objeto con los campos type e id que identifican el producto patrocinado
  • bidAmount: Monto de la puja en la moneda del marketplace
  • metadata: Campo de formato libre para cualquier metadato necesario en la respuesta del ganador (p. ej., URLs de beacon de puja)

Cambios en la Respuesta

El objeto Winner ha sido actualizado con:
  • demandSource: Cadena que identifica la fuente de la puja ganadora (p. ej., "topsort" o "criteo"). Solo aparece cuando se incluyen pujas externas en la solicitud.
  • metadata: Para los ganadores de pujas externas, transmite los metadatos de entrada de la puja externa. Se omite para las pujas internas de Topsort.
Para las pujas externas, el campo campaignId se omitirá del objeto ganador.

Casos de Error

Nuevos casos de error específicos de la mediación de demanda:
  • La demanda externa no está autorizada para el marketplace
  • Pujas externas inválidas (entidades que no son productos, tipo de cargo incorrecto o monto de puja negativo)
  • Demasiadas pujas externas (más de 100)
  • Demanda externa con un tipo de anuncio distinto a listados
  • Fuente de demanda externa inválida (actualmente solo se admite Criteo)

Ejemplo de Solicitud

{
  "auctions": [
    {
      "type": "listings",
      "slots": 2,
      "category": {
        "id": "paper"
      },
      "opaqueUserId": "user123",
      "demandSources": [
        {
          "source": "criteo",
          "bids": [
            {
              "chargeType": "CPC",
              "entity": {
                "type": "product",
                "id": "product123"
              },
              "bidAmount": 0.75,
              "metadata": {
                "beaconUrls": ["https://example.com/beacon"],
                "clickUrls": ["https://example.com/click"]
              }
            }
          ]
        }
      ]
    }
  ]
}

Ejemplo de Respuesta

{
  "results": [
    {
      "resultType": "listings",
      "winners": [
        {
          "demandSource": "criteo",
          "type": "product",
          "id": "product123",
          "resolvedBidId": "UkoVYQoQBpaVc2jmdMO0BA4QS9VdHRIQAZgtj1MxeFGT5HL2fhBhKRoQBlhiMAUTfKyPJHhKpsqrQCIKCgZzdWJ3YXkQATCmFUDTBEgBUMXa8pu8Mw",
          "rank": 1,
          "metadata": {
            "beaconUrls": ["https://example.com/beacon"],
            "clickUrls": ["https://example.com/click"]
          }
        },
        {
          "demandSource": "topsort",
          "campaignId": "01982d6e-8655-70e2-94e3-3e5e764b4753",
          "type": "product",
          "id": "product456",
          "resolvedBidId": "zOzJwgoQBpaVfNrgdmeSBLgWZwYYmhIQAZgtboZVcOKU4z5edktHUxoQBlhiMAUTfKyPJHhKpsqrQCIQCgxwYW5lbGEtYnJlYWQQATCmFUDTBEgBUKH3-5u8Mw",
          "rank": 2
        }
      ],
      "error": false
    }
  ]
}
Para obtener más información sobre la API de subastas, consulta laReferencia de la API para Crear Subastas

Demand Fallback

¿Qué es la integración de GAM Fallback?

Para los clientes que están configurados para esta integración, el endpoint de subastas de Topsort devuelve una etiqueta de Google Ad Manager (GAM) — unas pocas líneas de código — para los espacios de banners que estén habilitados para demanda de GAM, cuando no haya demanda de Topsort para una solicitud de anuncio en esos espacios.
El retailer renderiza la etiqueta GAM, que muestra un banner publicitario de GAM, generando ingresos incrementales a partir de inventario que de otro modo quedaría sin vender.
Diagrama del flujo de GAM fallback mostrando la subasta devolviendo una etiqueta GAM cuando no existe demanda de Topsort

Beneficios

  • Monetizar inventario no vendido: Los marketplaces pueden generar ingresos con los espacios de banners incluso cuando no hay demanda de Topsort
  • Fuentes de demanda flexibles: Topsort puede configurar las ubicaciones de GAM para obtener demanda tanto de open auction (anunciantes no endémicos que enlazan a otros sitios web) como de acuerdos directos

¿Para quién es?

Cualquier cliente que pueda atraer demanda de GAM desde el GAM open auction es elegible para esta integración.
Es ideal para marketplaces con inventario de banners no vendido o con baja demanda en Topsort.

Proceso de Incorporación

Si tu marketplace está interesado en el GAM fallback, comunícate con tu equipo de cuenta de Topsort. A partir de ahí, trabajaremos contigo para desarrollar un cronograma de integración.
La integración típica toma 3–4 semanas y sigue estos pasos:
1

Alinear el alcance del piloto

Selecciona 2–3 espacios de banners y acuerda las políticas de moderación de contenido.
2

Configurar la conexión GAM MCM

Vincula las cuentas de Topsort y del retailer, y actualiza ads.txt y sellers.json. Topsort utiliza el Multiple Customer Management (MCM) de GAM, que permite a la cuenta GAM de Topsort controlar otras cuentas (p. ej., cuentas de retailers).
3

Configurar el registro compartido de espacios publicitarios

Asegura que los IDs de unidades publicitarias, dimensiones y ubicaciones coincidan entre Topsort y GAM.
4

Implementar el flujo de passback

Topsort aplicará la configuración en la interfaz de GAM y generará etiquetas de passback GPT (fragmentos de código JavaScript). Topsort actualizará su configuración para devolver etiquetas GAM en cualquier subasta de banner donde no haya demanda de Topsort. El retailer actualizará la lógica del frontend para renderizar una etiqueta de passback si la subasta de Topsort devuelve una.
5

Pruebas

Topsort validará la integración a través de espacios de prueba controlados.
6

Lanzamiento

Una vez completadas las pruebas, la integración se activa en los espacios publicitarios acordados.

Ejemplo de Solicitud

Cuando no hay demanda de Topsort disponible para un espacio de banner habilitado para GAM fallback, el endpoint de subastas devuelve un snippet de GAM en el campo asset del ganador. El retailer renderiza este snippet para mostrar un banner publicitario de GAM.
{
  "auctions": [
    {
      "type": "banners",
      "slots": 1,
      "slotId": "fake-slot-2",
      "products": {
        "ids": ["prod-a1b2c3d4"]
      }
    }
  ]
}

Ejemplo de Respuesta

{
  "results": [
    {
      "resultType": "banners",
      "winners": [
        {
          "asset": [
            {
              "content": "{\"type\": \"gam_snippet\", \"content\": \"<div id=\\\"gam-ad\\\"><script>googletag.cmd.push(function() { googletag.display(\\\"div-gpt-ad-12345\\\"); });</script></div>\"}"
            }
          ],
          "type": "url",
          "id": "https://www.example.com",
          "resolvedBidId": "PHRSCwoQBpvFL1sveOSZBCyVii_LCRIQAAAAAAAAAAAAAAAAAAAAABoQAAAAAAAAAAAAAAAAAAAAACIbChdodHRwczovL3d3dy5leGFtcGxlLmNvbRAFUIDQzO7O7_H__wFyEAAAAAAAAAAAAAAAAAAAAAA",
          "rank": 1
        }
      ],
      "error": false
    }
  ]
}
Cada entrada en el array asset contiene un campo content con una cadena JSON de tipo gam_snippet. El retailer debe analizar este contenido y renderizar el HTML/JavaScript incrustado para mostrar el banner de GAM.