> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topsort.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GAM Demand Mediation

> Convierte inventario no vendido en ingresos con implementación rápida

export const LastUpdatedEs = ({date}) => {
  const label = "Última actualización:";
  return <>
      <style>{`
        .last-updated-component {
          display: inline-flex;
          align-items: center;
          gap: 8px;
          padding: 10px 16px;
          border-radius: 8px;
          margin-top: 12px;
          margin-bottom: 16px;
          font-size: 14px;
          background-color: rgba(0, 0, 0, 0.05);
          border: 1px solid rgba(0, 0, 0, 0.12);
          color: rgba(0, 0, 0, 0.75);
          line-height: 1;
        }

        .last-updated-component svg {
          flex-shrink: 0;
          vertical-align: middle;
        }

        .last-updated-component span {
          display: inline-flex !important;
          align-items: center !important;
          line-height: 1 !important;
        }

        [data-theme="dark"] .last-updated-component {
          background-color: #3a3a3a;
          border: 2px solid #888888;
          color: #ffffff;
        }

        [data-theme="dark"] .last-updated-component svg {
          stroke: #ffffff;
        }
      `}</style>
      <div className="last-updated-component">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <circle cx="12" cy="12" r="10" />
          <polyline points="12 6 12 12 16 14" />
        </svg>
        <span>
          <strong style={{
    fontWeight: 600
  }}>{label}</strong> 
          <time dateTime={date}>{date}</time>
        </span>
      </div>
    </>;
};

### ¿Qué es GAM Demand Mediation?

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Genera ingresos incrementales con impresiones de banner que de otro modo
  quedarían sin completar, sin cambiar tu configuración actual de Topsort.
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Cuando Topsort no tiene demanda para un banner slot, devolvemos automáticamente
  un anuncio de Google Ad Manager (GAM). Solo tienes que renderizarlo.
</div>

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/topsort/images/knowledge-base/gam-fallback-flow.png" alt="Diagrama del flujo de GAM fallback mostrando la subasta devolviendo una etiqueta GAM cuando no existe demanda de Topsort" />
</Frame>

### 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 como de acuerdos directos

### ¿Para quién es?

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Cualquier marketplace de Topsort en todo el mundo con slots de banners.
</div>

### Proceso de incorporación

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Si tu marketplace está interesado en GAM demand mediation, comunícate con tu
  equipo de cuenta de Topsort.
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Una integración típica toma <strong>solo unas pocas horas del tiempo de un
  ingeniero del marketplace</strong> y puede realizarse en vivo en una sola
  llamada con un ingeniero de integración de Topsort. El proceso sigue estos pasos:
</div>

<Steps>
  <Step title="Alinear el alcance del piloto">
    Selecciona 2-3 espacios de banners y acuerda las políticas de moderación de contenido.
  </Step>

  <Step title="Configurar la conexión GAM MCM">
    Vincula las cuentas de Topsort y del retailer, y actualiza <code>ads.txt</code> y <code>sellers.json</code>.
  </Step>

  <Step title="Implementar el flujo de passback">
    Simplemente agrega un snippet de código muy pequeño en cada ad slot para renderizar un anuncio de Topsort o un anuncio de GAM.
  </Step>

  <Step title="Pruebas">
    Topsort validará la integración.
  </Step>
</Steps>

### Ejemplo de respuesta

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Cuando no hay demanda de Topsort disponible para un espacio de banner habilitado para GAM demand mediation,
  el <a href="/es/api-reference/auctions/create-auctions">endpoint de subastas</a> devuelve un snippet de GAM en el campo <code>asset</code> del ganador.
</div>

```json theme={null}
{
  "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",
          "rank": 1
        }
      ],
      "error": false
    }
  ]
}
```

## Passback flow

<Note>
  El único desarrollo requerido por el marketplace es agregar un snippet de código pequeño a cada ad slot que quieran habilitar para demanda de GAM.
</Note>

```javascript theme={null}
// response is response from Topsort auction endpoint
const { results } = await response.json();
const passback = results?.[0]?.winners?.[0]?.metadata?.passbacktag;

if (passback) {
  const iframe = document.createElement("iframe");
  document.getElementById("banner-slot-3")?.appendChild(iframe);
  iframe.contentDocument.write(passback);
  iframe.contentDocument.close();
} else {
  // render normal Topsort ad
}
```

***

<LastUpdatedEs date="2026-03-19" />
