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

# Onboarding

> Offsite-Onboarding-Zeitplan, Kontoarchitektur und Einrichtungsschritte.

export const OffsiteVendorAccountArchitectureDiagram = () => <div className="offsite-vendor-account-architecture not-prose" style={{
  margin: "1.5rem 0",
  overflowX: "auto"
}}>
    <style>{`
      .offsite-vendor-account-architecture svg {
        display: block;
        width: 100%;
        max-width: 882px;
        height: auto;
      }

      .offsite-vendor-account-architecture .marketplace-box {
        fill: #dcfce7;
        stroke: #16a34a;
      }

      .offsite-vendor-account-architecture .topsort-box {
        fill: #dbeafe;
        stroke: #2563eb;
      }

      .offsite-vendor-account-architecture .section-title,
      .offsite-vendor-account-architecture .box-label,
      .offsite-vendor-account-architecture .legend-label,
      .offsite-vendor-account-architecture .column-label {
        fill: #111827;
        font-family: Inter, system-ui, -apple-system, sans-serif;
      }

      .offsite-vendor-account-architecture .section-title {
        font-size: 15px;
        font-weight: 700;
      }

      .offsite-vendor-account-architecture .box-label {
        font-size: 12px;
        font-weight: 600;
      }

      .offsite-vendor-account-architecture .column-label,
      .offsite-vendor-account-architecture .legend-label {
        font-size: 11px;
        font-weight: 500;
      }

      .offsite-vendor-account-architecture .connector {
        stroke: #6b7280;
        stroke-width: 1.5;
        fill: none;
      }

      .dark .offsite-vendor-account-architecture .marketplace-box {
        fill: #14532d;
        stroke: #4ade80;
      }

      .dark .offsite-vendor-account-architecture .topsort-box {
        fill: #1e3a8a;
        stroke: #60a5fa;
      }

      .dark .offsite-vendor-account-architecture .section-title,
      .dark .offsite-vendor-account-architecture .box-label,
      .dark .offsite-vendor-account-architecture .legend-label,
      .dark .offsite-vendor-account-architecture .column-label {
        fill: #f3f4f6;
      }

      .dark .offsite-vendor-account-architecture .connector {
        stroke: #9ca3af;
      }
    `}</style>

    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 882 540" role="img" aria-label="Diagram of Google and Meta offsite account architecture showing retailer and Topsort-managed brand accounts">
      <text className="section-title" x="221" y="28" textAnchor="middle">
        Google Offsite Accounts
      </text>
      <text className="section-title" x="662" y="28" textAnchor="middle">
        Meta Offsite Accounts
      </text>

      <line className="connector" x1="477" y1="40" x2="477" y2="470" strokeDasharray="4 4" />

      <text className="column-label" x="144" y="58" textAnchor="middle">
        Merchant Center
      </text>
      <text className="column-label" x="360" y="58" textAnchor="middle">
        Ad Accounts
      </text>

      <rect className="marketplace-box" x="63" y="72" width="162" height="44" rx="8" strokeWidth="2" />
      <text className="box-label" x="144" y="99" textAnchor="middle">
        Retailer MCA
      </text>

      <line className="connector" x1="144" y1="116" x2="144" y2="132" />

      <rect className="topsort-box" x="86" y="132" width="117" height="32" rx="6" strokeWidth="2" />
      <text className="box-label" x="144" y="153" textAnchor="middle">
        Brand MC Acct 1
      </text>

      <line className="connector" x1="144" y1="164" x2="144" y2="176" />

      <rect className="topsort-box" x="86" y="176" width="117" height="32" rx="6" strokeWidth="2" />
      <text className="box-label" x="144" y="197" textAnchor="middle">
        Brand MC Acct 2
      </text>

      <text className="column-label" x="144" y="224" textAnchor="middle">
        ...
      </text>

      <line className="connector" x1="144" y1="232" x2="144" y2="244" />

      <rect className="topsort-box" x="86" y="244" width="117" height="32" rx="6" strokeWidth="2" />
      <text className="box-label" x="144" y="265" textAnchor="middle">
        Brand MC Acct N
      </text>

      <rect className="marketplace-box" x="279" y="72" width="162" height="44" rx="8" strokeWidth="2" />
      <text className="box-label" x="360" y="99" textAnchor="middle">
        Retailer MCC
      </text>

      <line className="connector" x1="360" y1="116" x2="360" y2="132" />

      <rect className="topsort-box" x="279" y="132" width="162" height="44" rx="8" strokeWidth="2" />
      <text className="box-label" x="360" y="159" textAnchor="middle">
        Topsort MCC
      </text>

      <line className="connector" x1="360" y1="176" x2="360" y2="192" />

      <rect className="topsort-box" x="302" y="192" width="117" height="32" rx="6" strokeWidth="2" />
      <text className="box-label" x="360" y="213" textAnchor="middle">
        Brand Ad Acct 1
      </text>

      <line className="connector" x1="360" y1="224" x2="360" y2="236" />

      <rect className="topsort-box" x="302" y="236" width="117" height="32" rx="6" strokeWidth="2" />
      <text className="box-label" x="360" y="257" textAnchor="middle">
        Brand Ad Acct 2
      </text>

      <text className="column-label" x="360" y="284" textAnchor="middle">
        ...
      </text>

      <line className="connector" x1="360" y1="292" x2="360" y2="304" />

      <rect className="topsort-box" x="302" y="304" width="117" height="32" rx="6" strokeWidth="2" />
      <text className="box-label" x="360" y="325" textAnchor="middle">
        Brand Ad Acct N
      </text>

      <rect className="marketplace-box" x="572" y="72" width="180" height="44" rx="8" strokeWidth="2" />
      <text className="box-label" x="662" y="99" textAnchor="middle">
        Retailer Business Manager
      </text>

      <line className="connector" x1="662" y1="116" x2="662" y2="145" />
      <line className="connector" x1="590" y1="145" x2="734" y2="145" />
      <line className="connector" x1="590" y1="145" x2="590" y2="165" />
      <line className="connector" x1="734" y1="145" x2="734" y2="165" />

      <rect className="topsort-box" x="536" y="165" width="108" height="36" rx="6" strokeWidth="2" />
      <text className="box-label" x="590" y="188" textAnchor="middle">
        Brand Ad Acct 1
      </text>

      <rect className="topsort-box" x="536" y="215" width="108" height="36" rx="6" strokeWidth="2" />
      <text className="box-label" x="590" y="238" textAnchor="middle">
        Brand Ad Acct 2
      </text>

      <text className="column-label" x="590" y="272" textAnchor="middle">
        ...
      </text>

      <rect className="topsort-box" x="536" y="285" width="108" height="36" rx="6" strokeWidth="2" />
      <text className="box-label" x="590" y="308" textAnchor="middle">
        Brand Ad Acct N
      </text>

      <rect className="topsort-box" x="680" y="165" width="108" height="36" rx="6" strokeWidth="2" />
      <text className="box-label" x="734" y="188" textAnchor="middle">
        Brand Child BM 1
      </text>

      <rect className="topsort-box" x="680" y="215" width="108" height="36" rx="6" strokeWidth="2" />
      <text className="box-label" x="734" y="238" textAnchor="middle">
        Brand Child BM 2
      </text>

      <text className="column-label" x="734" y="272" textAnchor="middle">
        ...
      </text>

      <rect className="topsort-box" x="680" y="285" width="108" height="36" rx="6" strokeWidth="2" />
      <text className="box-label" x="734" y="308" textAnchor="middle">
        Brand Child BM N
      </text>

      <rect className="marketplace-box" x="36" y="470" width="18" height="18" rx="3" strokeWidth="2" />
      <text className="legend-label" x="61" y="484">
        Marketplace provides and manages
      </text>

      <rect className="topsort-box" x="320" y="470" width="18" height="18" rx="3" strokeWidth="2" />
      <text className="legend-label" x="345" y="484">
        Topsort creates and manages
      </text>
    </svg>
  </div>;

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>
    </>;
};

## Übersicht

Um Offsite-Anzeigen für eine bestimmte Plattform zu starten, gewährt der Marktplatz Topsort Zugriff auf die erforderlichen Werbekonten, implementiert Offsite-Event-Tracking und Topsort übernimmt den Rest der Integration (z. B. Katalog-Sync und Offline-Events mit dem Marktplatz, Validierung).

Topsort führt einen 2-wöchigen Implementierungszeitplan für jede Offsite-Plattform (z. B. Google oder Meta) durch, um einen erfolgreichen POC-Launch sicherzustellen, unterstützt durch dedizierte cross-funktionale Ressourcen des Kunden:

* **Engineering:** \~1 Tag Aufwand eines Marktplatz-Ingenieurs (Integration und Validierung). Die Entwicklung kann wahrscheinlich in einem einzigen 90-minütigen Call mit Topsort-Ingenieuren abgeschlossen werden.
* **Ad Operations:** \~1 Tag Marktplatz-Ad-Ops-Support für Kampagnen-Setup, QA und Launch.

## Kontoarchitektur

Die automatisierte Kontobereitstellung skaliert auf Tausende von Vendors mit klarer Budgettrennung und minimalem manuellem Setup. Nachfolgend die empfohlene Kontostruktur.

<OffsiteVendorAccountArchitectureDiagram />

### Google

* **Marktplatz stellt bereit:** Zugriff auf MCC (Manager-Konto) + MCA (Merchant Center Multi-Client-Konto)
* **Topsort erstellt:** Vendor-Google-Ads-Konten mit erforderlicher Merchant-Center-Verknüpfung

### Meta

* **Marktplatz stellt bereit:** Zugriff auf Parent Business Manager
* **Topsort erstellt:** Child Business Manager und Werbekonto pro Vendor

### TikTok

* **Marktplatz stellt bereit:** Zugriff auf TikTok Business Center / Business Manager mit Berechtigung zur Verwaltung von Werbekonten und Assets
* **Topsort erstellt:** Ein dediziertes TikTok-Werbekonto für die Topsort-Offsite-Integration, typischerweise ein Werbekonto für den Marktplatz/Händler, nicht eines pro Vendor

### Snap

* **Marktplatz stellt bereit:** Zugriff auf Snap Business Manager / Organization mit Berechtigung zur Verwaltung von Werbekonten und Billing/Assets
* **Topsort erstellt:** Ein dediziertes Snap-Werbekonto für die Topsort-Offsite-Integration, typischerweise ein Werbekonto für den Marktplatz/Händler, nicht eines pro Vendor

## Einrichtungsschritte

### Kontoeinrichtung

#### Kontozugriff (Marktplatz)

Der Marktplatz gewährt Topsort Admin-Zugriff auf die erforderlichen Top-Level-Werbeplattform-Konten für die Kanäle, die onboarded werden. Siehe [Kontoarchitektur](#kontoarchitektur) oben für die spezifischen Konten, auf die pro Plattform Zugriff gewährt werden soll.

#### Kontoerstellung (Topsort)

Topsort provisioniert die Vendor-Level-Kontostruktur unter diesen Marktplatz-Containern, einschließlich Child-Werbekonten, Business Managern oder Merchant-Center-Konten, die für die Integration benötigt werden. Siehe [Kontoarchitektur](#kontoarchitektur) oben für das, was Topsort auf jeder Plattform erstellt. Der Marktplatz kann Topsort eine Liste der für Offsite zu aktivierenden Vendors bereitstellen.

### Katalog-Sync (Topsort)

Wenn katalogbasierte Offsite-Formate im Scope sind, synchronisiert Topsort den Marktplatz-Katalog mit der Offsite-Plattform und mappt die Produkte jedes Vendors in die entsprechende Plattform-Kontostruktur für diesen Vendor.

### Event-Tracking-Einrichtung (Marktplatz)

Der einzige Bereich, in dem der Marktplatz Entwicklung betreiben muss, ist Event-Tracking. Um Offsite-Events zu melden, verwenden Sie denselben [`/v2/events`](/de/api-reference/events/report-events)-Endpoint wie für Onsite-Events und übergeben zusätzliche Parameter im Request-Body.

#### Opake User-ID

Dieselbe `opaqueUserId`, die für Onsite-Events verwendet wird, sollte auch für Offsite-Attribution wiederverwendet werden. Keine separate Offsite-Kennung erforderlich. Topsort benötigt eine persistente, datenschutzfreundliche User-Kennung, um Klicks und Käufe kanalübergreifend zu verbinden.

Dieselben Onsite-Anforderungen gelten für Offsite-Nutzung:

* **Persistenz:** Sollte für das Attributionsfenster stabil bleiben (typischerweise 7–30 Tage).
* **Konsistenz:** Derselbe User sollte bei Besuchen und Kanälen nach Möglichkeit dieselbe ID erhalten.
* **Datenschutzfreundlich:** Darf keine PII wie E-Mail, Telefonnummer oder Name enthalten.

#### Klick-URL

Die URL, die der User hat, wenn er über einen Offsite-Ad-Klick auf Ihrer Site landet, enthält wichtige Query-Parameter.

Beispiel-Klick-URL:

```
https://www.retailer.com/search?q=shampoo&
externalCampaignId=9d2d7d7d-5d4f-4d8e-a8d0-2d7a6f9c1234&
externalVendorId=vendor_abc123&
gclid=CjwKCAj_example123&
utm_source=google&
utm_medium=c
```

Query-Parameter:

* `gclid` — von Google angehängte Klick-ID
* `externalCampaignId` und `externalVendorId` — Query-Parameter mit Topsort-Kampagnen-ID und Vendor-ID, von Topsort angehängt. Sollen zusammen mit dem User-Attributionsstatus mindestens für die Dauer des Attributionsfensters (konfigurierbar 7–30 Tage) persistieren. Sollen Navigation und wiederholte Besuche überdauern, damit nachfolgende Kauf-Events korrekt mit dem auslösenden Offsite-Ad-Klick verknüpft werden können.

#### Klicks melden

Senden Sie das folgende Event, wenn ein User über einen Offsite-Ad-Klick auf Ihrer Site landet. Alle Felder sind erforderlich.

```http theme={null}
POST /v2/events
```

```json theme={null}
{
  "clicks": [
    {
      "occurredAt": "2023-11-07T05:31:56Z",
      "opaqueUserId": "<string>",
      "id": "<string>",
      "entity": {
        "id": "product1",
        "type": "product"
      },
      "externalCampaignId": "<Topsort UUID>",
      "externalVendorId": "<Topsort externalVendorId>",
      "dsp_metadata": {
        "gclid": "<Google click ID>"
      },
      "channel": "offsite"
    }
  ]
}
```

#### Käufe melden

Alle Felder sind erforderlich.

```http theme={null}
POST /v2/events
```

```json theme={null}
{
  "purchases": [
    {
      "occurredAt": "2023-11-07T05:31:56Z",
      "opaqueUserId": "<string>",
      "id": "<string>",
      "items": [
        {
          "productId": "product1",
          "vendorId": "<externalVendorId>",
          "unitPrice": 75.0,
          "quantity": 1
        },
        {
          "productId": "product2",
          "vendorId": "<externalVendorId>",
          "unitPrice": 25.0,
          "quantity": 1
        }
      ]
    }
  ]
}
```

#### Events mit Offsite-Plattformen teilen

Der Kunde muss Conversion-Events nicht separat an die Offsite-Plattform melden. Topsort sendet automatisch berechtigte Kauf-Events, die mit der entsprechenden Klick-ID (z. B. Google Click ID oder GCLID) verknüpft sind, über die Offline-Conversions-API der Plattform.

## Onboarding-Zeitplan

### Woche 1 – Zugriff und Event-Tracking-Setup

* Zugriff auf erforderliche Konten gewähren
* Event-Tracking-Implementierung starten
* Katalog bei Bedarf mit Offsite-Plattform synchronisieren
* Erste Systemkonfiguration beginnen

### Woche 2 – Integration und Daten-Setup

* Integration abschließen und Tests beginnen
* Event-Tracking und Katalogstruktur/-qualität validieren
* Nach Abschluss des Setups mit Live-Kampagne validieren und Performance überwachen

***

<LastUpdatedDe date="2026-05-23" />
