> ## 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

> Verwandeln Sie unverkauftes Inventar mit schnellem Setup in Umsatz

export const LastUpdatedDe = ({date}) => {
  const label = "Zuletzt aktualisiert:";
  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>
    </>;
};

### Was ist GAM Demand Mediation?

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Erzielen Sie inkrementellen Umsatz aus Banner-Impressionen, die sonst ungefüllt bleiben würden - ohne Änderungen an Ihrem bestehenden Topsort-Setup.
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Wenn Topsort keine Nachfrage für einen Banner-Slot hat, geben wir automatisch
  eine Google Ad Manager (GAM)-Anzeige zurück. Sie müssen diese nur rendern.
</div>

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/topsort/images/knowledge-base/gam-fallback-flow.png" alt="GAM-Fallback-Flussdiagramm mit GAM-Tag-Rückgabe bei fehlender Topsort-Nachfrage" />
</Frame>

### Vorteile

* **Unverkauftes Inventar monetarisieren:** Umsatz auch ohne Topsort-Nachfrage
* **Flexible Nachfragequellen:** Open Auction oder Direct Deals über GAM

### Für wen ist es geeignet?

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Jeder Topsort-Marktplatz weltweit mit Banner-Slots.
</div>

### Onboarding-Prozess

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Wenn Ihr Marktplatz an GAM demand mediation interessiert ist, wenden Sie sich an Ihr Topsort-Account-Team.
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Eine typische Integration dauert <strong>nur wenige Stunden Entwicklungszeit eines
  Marketplace-Ingenieurs</strong> und kann live in einem einzigen Call umgesetzt werden.
</div>

<Steps>
  <Step title="Pilotumfang festlegen">
    Wählen Sie 2-3 Banner-Slots aus und stimmen Sie Moderationsrichtlinien ab.
  </Step>

  <Step title="GAM-MCM-Verbindung einrichten">
    Verknüpfen Sie Topsort- und Händlerkonten und aktualisieren Sie <code>ads.txt</code> sowie <code>sellers.json</code>.
  </Step>

  <Step title="Passback-Flow implementieren">
    Fügen Sie ein kleines Snippet in jeden Slot ein, um Topsort- oder GAM-Anzeige zu rendern.
  </Step>

  <Step title="Tests">
    Topsort validiert die Integration.
  </Step>
</Steps>

### Beispielantwort

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Wenn keine Topsort-Nachfrage verfügbar ist, liefert der Auktions-Endpoint ein GAM-Snippet im Feld <code>asset</code>.
</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>
  Die einzige notwendige Entwicklung auf Marketplace-Seite ist ein kleines Code-Snippet je aktiviertem GAM-Slot.
</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
}
```

***

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