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

# Verwaltung digitaler Assets

> Topsort mit Digital Asset Management-Plattformen verbinden für optimierte kreative Workflows

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

# Topsort mit Digital Asset Management-Systemen verbinden

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Digital Asset Management (DAM)**-Systeme wie Adobe Experience Manager
  Assets, Bynder und andere zentralisieren kreative Assets und generieren
  optimierte URLs für die Verwendung in Kampagnen. Im Gegensatz zur OMS-Konnektivität ist die DAM-Konnektivität derzeit
  mit den bestehenden APIs von Topsort realisierbar.
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Dieser Leitfaden erklärt, wie Sie die APIs von Topsort mit DAM-Systemen integrieren können für
  optimierte kreative Workflows und automatisierte Asset-Verwaltung.
</div>

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/topsort/lJrVI0_31YmwNFmR/images/knowledge-base/dam-diagram-light.svg?fit=max&auto=format&n=lJrVI0_31YmwNFmR&q=85&s=03f87e0d2893edc94ba901eed3c8fc8c" alt="Diagramm zur Darstellung der DAM-Konnektivität" width="1063" height="264" data-path="images/knowledge-base/dam-diagram-light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/topsort/lJrVI0_31YmwNFmR/images/knowledge-base/dam-diagram-dark.svg?fit=max&auto=format&n=lJrVI0_31YmwNFmR&q=85&s=6914f4b495de9ac2d599ec1d7efc8060" alt="Diagramm zur Darstellung der DAM-Konnektivität" width="1063" height="264" data-path="images/knowledge-base/dam-diagram-dark.svg" />
</Frame>

## Wie DAM-Systeme mit Topsort funktionieren

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  DAM-Systeme wie Adobe Experience Manager Assets, Bynder oder Webdam:
</div>

1. **Zentralisieren Assets**: Speichern alle Banner, Produktbilder, Videos in einem organisierten Repository
2. **Generieren CDN-URLs**: Erstellen optimierte und öffentlich zugängliche URLs für jedes Asset
3. **Verwalten Versionen**: Verfolgen genehmigte Versionen und verhindern die Verwendung veralteter Assets
4. **Kontrollieren Markenkonformität**: Stellen sicher, dass nur genehmigte und markenkonforme Assets in Kampagnen gelangen
5. **Globale Asset-Verteilung**: Ein einzelnes Asset-Repository bedient mehrere Marketingkanäle

## Workflows

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Die DAM-Integration umfasst vier verschiedene Workflows für unterschiedliche Rollen und
  Zeitpunkte:
</div>

| **Workflow**                                                          | **Wer**                         | **Wann**                    | **Ziel**                                                 |
| --------------------------------------------------------------------- | ------------------------------- | --------------------------- | -------------------------------------------------------- |
| [Implementierungsleitfaden](#implementierungsleitfaden)               | DevOps/Integrationsteam         | Einmalige Einrichtung       | Automatisierte DAM ↔ Topsort-Synchronisation einrichten  |
| [UI-Workflow](#ui-workflow)                                           | Verkäufer/Marketplace-Admins    | Pro Kampagne                | Banner-Kampagnen über Dashboard mit DAM-URLs erstellen   |
| [API-Workflow](#api-workflow-vollstandige-banner-kampagnenerstellung) | Kampagnenmanager/Werbetreibende | Pro Kampagne                | Banner-Kampagnen programmatisch mit DAM-Assets erstellen |
| [Auktion & Anzeige](#auktionsantwort-mit-dam-url)                     | Marketplace-Entwickler          | Bei jedem Seitenladevorgang | Gewinnende Banner an Nutzer anzeigen                     |

### Erstellung von Banner-Kampagnen mit DAM-Assets

#### UI-Workflow

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Rolle:** Verkäufer/Marketplace-Admins | **Häufigkeit:** Pro Kampagnenkonfiguration
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  \*\*

  <Frame>
    <img src="https://mintcdn.com/topsort/JfdWUceY7Se3NW-0/images/knowledge-base/banner-ad-url-image-example.webp?fit=max&auto=format&n=JfdWUceY7Se3NW-0&q=85&s=a2f769e27762a20d98031497acfff689" alt="Beginn der Erstellung einer Sponsored Brands-Vorlage" width="2982" height="1859" data-path="images/knowledge-base/banner-ad-url-image-example.webp" />
  </Frame>

  \*\*
</div>

<Note>
  Um Banner-Kampagnen mit externen DAM-URLs über die **[Werbeplattform
  ](https://www.topsort.com/retail-media)** zu erstellen, siehe den
  [vollständigen Leitfaden für Banner-Werbekampagnen
  ](/de/knowledge-base/ad-platform/banners/banner-ads-campaigns), der
  den UI-Prozess Schritt für Schritt zeigt, einschließlich wie man externe URLs in der
  Kampagnenkonfiguration referenziert.
</Note>

#### API-Workflow: Vollständige Banner-Kampagnenerstellung

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Rolle:** Kampagnenmanager/Werbetreibende | **Häufigkeit:** Pro Kampagnenkonfiguration
</div>

<Steps>
  <Step title="Asset mit DAM-URL erstellen">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Erstellen Sie zunächst ein Asset in Topsort, das Ihre DAM-URL referenziert:
    </div>

    ```javascript theme={null}
    const assetResponse = await fetch("https://api.topsort.com/v2/assets", {
      method: "POST",
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        name: "Holiday Banner 728x90 - Approved v2",
        url: "https://dam-cdn.retailer.com/campaigns/holiday/banner-728x90-v2.jpg",
        dimensions: {
          width: 728,
          height: 90,
        },
        metadata: {
          approved: true,
          brand_compliant: true,
          expiry_date: "2024-12-31",
          version: "v2",
        },
      }),
    });

    const asset = await assetResponse.json();
    ```
  </Step>

  <Step title="Banner-Kampagne mit Asset erstellen">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Erstellen Sie anschließend eine Banner-Kampagne, die das soeben erstellte Asset referenziert:
    </div>

    ```javascript theme={null}
    const campaignResponse = await fetch("https://api.topsort.com/v2/campaigns", {
      method: "POST",
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        name: "Holiday Banner Campaign",
        type: "banners",
        vendor_id: "vendor-123",
        bidding_strategy: "target_roas",
        target_roas: 4.5,
        budget: {
          amount: 5000,
          currency: "USD",
          period: "lifetime",
        },
        start_date: "2024-11-01",
        end_date: "2024-12-31",
        assets: [asset.id], // Referenziert das erstellte Asset
        slot_id: "homepage_banner_top",
      }),
    });

    const campaign = await campaignResponse.json();
    ```
  </Step>
</Steps>

#### Auktionsantwort mit DAM-URL

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Rolle:** Marketplace-Entwickler | **Häufigkeit:** Bei jedem Seitenladevorgang
</div>

<Steps>
  <Step title="Auktion für Banner-Platzierung ausführen">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Fordern Sie eine Auktion für die Banner-Platzierung an, bei der Ihre DAM-basierte Kampagne konkurrieren kann:
    </div>

    ```javascript theme={null}
    const auctionResponse = await fetch("https://api.topsort.com/v2/auctions", {
      method: "POST",
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        auctions: [
          {
            type: "banners",
            slots: 1,
            slotId: "homepage_banner_top",
            device: "desktop",
          },
        ],
      }),
    });

    const auctionResult = await auctionResponse.json();
    ```
  </Step>

  <Step title="DAM-URL in Antwort erhalten">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Wenn Ihre Banner-Kampagne gewinnt, enthält die Auktionsantwort die ursprüngliche DAM-URL:
    </div>

    ```json theme={null}
    {
      "results": [
        {
          "winners": [
            {
              "rank": 1,
              "type": "product",
              "id": "p_PJbnN",
              "resolvedBidId": "WyJlX1BKYm5OIiwiMTJhNTU4MjgtOGVhZC00Mjk5LTgzMjctY2ViYjAwMmEwZmE4IiwiYmFubmVyQWRzIiwiZGVmYXVsdCIsIiJd",
              "asset": [
                {
                  "url": "https://dam-cdn.retailer.com/campaigns/holiday/banner-728x90-v2.jpg"
                }
              ]
            }
          ],
          "error": false
        }
      ]
    }
    ```
  </Step>

  <Step title="Banner mit DAM-Asset anzeigen">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Verwenden Sie die zurückgegebene URL, um den Banner anzuzeigen und die Leistung zu verfolgen:
    </div>

    ```javascript theme={null}
    // DAM-URL aus Auktionsantwort extrahieren
    const winner = auctionResult.results[0].winners[0];
    const damImageUrl = winner.asset[0].url;
    const resolvedBidId = winner.resolvedBidId;

    // Banner in Ihrer Benutzeroberfläche anzeigen
    const bannerElement = document.createElement("img");
    bannerElement.src = damImageUrl;
    bannerElement.addEventListener("click", () => {
      // Klick-Ereignis für Abrechnung und Attribution verfolgen
      fetch("/api/topsort/events", {
        method: "POST",
        body: JSON.stringify({
          type: "click",
          resolvedBidId: resolvedBidId,
        }),
      });
    });
    ```
  </Step>
</Steps>

### Hauptvorteile der DAM-Integration

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * **Markenkonsistenz**: Nur genehmigte und konforme Assets gelangen in Werbekampagnen -
    **Workflow-Effizienz**: Kreative Teams arbeiten in vertrauten DAM-Tools, Assets
    synchronisieren sich automatisch - **Versionskontrolle**: Wenn Creatives im DAM aktualisiert werden,
    aktualisieren sich Kampagnen-Assets automatisch - **Rechteverwaltung**: Verfolgen Sie Nutzungslizenzen
    und verhindern Sie die Verwendung abgelaufener Assets - **Globale Asset-Verteilung**: Ein einzelnes Asset-Repository bedient mehrere Marketingkanäle
</div>

## Implementierungsleitfaden

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Rolle:** DevOps/Integrationsteam | **Häufigkeit:** Einmalige Einrichtung
</div>

<Steps>
  <Step title="DAM-System-Vorbereitung">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Konfigurieren Sie Ihr DAM-System für optimale Konnektivität mit Topsort:
    </div>

    * **Asset-Organisation**: Strukturieren Sie Assets mit kampagnenspezifischen Ordnern und Metadaten
    * **CDN-Konfiguration**: Stellen Sie sicher, dass das DAM optimierte und öffentlich zugängliche URLs generiert
    * **Genehmigungs-Workflows**: Richten Sie Prozesse ein, um Assets als kampagnenbereit zu markieren
    * **Metadatenstandards**: Definieren Sie konsistentes Tagging für Abmessungen, Versionen, Ablaufdaten
  </Step>

  <Step title="Topsort Assets API-Konfiguration">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Richten Sie die Konnektivität zwischen Ihrem DAM und Topsort ein:
    </div>

    * **Authentifizierung**: Konfigurieren Sie Topsort API-Anmeldeinformationen
    * **URL-Validierung**: Stellen Sie sicher, dass DAM-URLs für Topsort-Systeme zugänglich sind
    * **Automatisierte Synchronisation**: Richten Sie Webhooks oder geplante Jobs ein, um genehmigte Assets zu synchronisieren
    * **Fehlerbehandlung**: Implementieren Sie Wiederholungslogik für fehlgeschlagene Asset-Referenzen
  </Step>

  <Step title="Workflow-Automatisierung">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Implementieren Sie automatisierte Asset-Synchronisation:
    </div>

    ```javascript theme={null}
    // Beispiel für automatische Asset-Synchronisation vom DAM zu Topsort
    const syncApprovedAssets = async () => {
      const approvedAssets = await dam.getAssetsByStatus("approved");

      for (const asset of approvedAssets) {
        if (!asset.syncedToTopsort) {
          await topsortAssetsAPI.create({
            name: asset.name,
            url: asset.cdnUrl,
            dimensions: asset.dimensions,
            metadata: asset.metadata,
          });
          await dam.markAsSynced(asset.id);
        }
      }
    };
    ```
  </Step>
</Steps>

## API-Referenz

### Topsort-APIs für DAM-Integration

| API                                                        | Integrations-Anwendungsfall         | Status      | Dokumentation                                  |
| ---------------------------------------------------------- | ----------------------------------- | ----------- | ---------------------------------------------- |
| [Assets API](/de/ad-server/additional-apis/assets-api)     | DAM-URLs in Kampagnen referenzieren | ✅ Verfügbar | Asset- und Sammlungsverwaltung                 |
| [Campaign API](/de/ad-server/additional-apis/campaign-api) | Kampagnen mit DAM-Assets erstellen  | ✅ Verfügbar | Vollständiges Kampagnen-Lebenszyklusmanagement |

### Authentifizierung

```http theme={null}
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## Best Practices

### Asset-Verwaltung

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * **URLs optimieren**: Stellen Sie sicher, dass das DAM optimierte URLs für schnelles Laden über CDN generiert -
    **Versionskontrolle**: Implementieren Sie klare Versionierung, um veraltete Assets in
    Kampagnen zu vermeiden - **Metadatenstandards**: Verwenden Sie konsistentes Tagging für Abmessungen,
    Kampagnentypen, Genehmigungsstatus - **Zugriffskontrolle**: Stellen Sie sicher, dass Asset-URLs
    für Topsort-Systeme öffentlich zugänglich sind
</div>

### Workflow-Automatisierung

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * **Genehmigungs-Gates**: Synchronisieren Sie nur genehmigte und markenkonforme Assets mit Topsort -
    **Automatisierte Bereinigung**: Entfernen Sie abgelaufene oder veraltete Assets aus aktiven Kampagnen
  * **Fehlerüberwachung**: Verfolgen Sie fehlgeschlagene Asset-Referenzen und Synchronisationsprobleme
</div>

## Fehlerbehebung

### Häufige DAM-Integrationsprobleme

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  1. **Asset-URL-Probleme**
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * Überprüfen Sie, dass DAM-URLs öffentlich zugänglich sind (nicht hinter Authentifizierung) - Überprüfen Sie,
    dass URLs angemessene HTTP-Statuscodes zurückgeben (200) - Stellen Sie sicher, dass CDN-URLs
    für schnelles Laden optimiert sind - Validieren Sie, dass Asset-Abmessungen den
    Anforderungen von Topsort entsprechen
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  2. **Synchronisationsfehler**
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * Überprüfen Sie API-Authentifizierung und Berechtigungen - Überprüfen Sie die Kompatibilität des Asset-Metadatenformats
  * Überwachen Sie Webhook-Zustellungserfolgsraten - Implementieren Sie angemessene
    Fehlerprotokollierung für fehlgeschlagene Synchronisationen
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  3. **Versionskontrollprobleme** - Stellen Sie sicher, dass aktualisierte Assets Kampagnen-Asset-Updates auslösen

  * Überprüfen Sie, dass abgelaufene Assets aus aktiven Kampagnen entfernt werden - Überprüfen Sie, dass
    nur genehmigte Asset-Versionen mit Topsort synchronisiert werden
</div>

### Allgemeine API-Probleme

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  1. **Authentifizierungsfehler**
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * Überprüfen Sie API-Schlüssel-Gültigkeit und Scope-Berechtigungen - Überprüfen Sie Authentifizierungs-Header-Format
  * Überwachen Sie Token-Ablauf
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  2. **Rate Limiting** - Implementieren Sie angemessenes Rate Limiting im Konnektivitätscode -
     Verwenden Sie Batch-Operationen, wenn verfügbar - Fügen Sie Wiederholungslogik mit exponentiellem Backoff hinzu
</div>

## Erste Schritte

### Implementierungsschritte

1. **Bewertung**: Überprüfen Sie die URL-Generierung und API-Funktionen Ihres aktuellen DAM-Systems
2. **API-Anmeldeinformationen**: Erhalten Sie Topsort API-Schlüssel und konfigurieren Sie die Authentifizierung
3. **Proof of Concept**: Beginnen Sie mit einem kleinen Satz von Assets, um den Konnektivitäts-Workflow zu testen
4. **Automatisierung**: Implementieren Sie automatisierte Synchronisationsprozesse für genehmigte Assets
5. **Überwachung**: Richten Sie Tracking für Asset-Synchronisationserfolg und Kampagnenleistung ein

## Verwandte Ressourcen

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * [OMS-Integrationsleitfaden](/de/knowledge-base/ad-server/oms-connectivity) -
    Order Management System-Konnektivität - [Assets API-Dokumentation
    ](/de/ad-server/additional-apis/assets-api) - [Campaign API-Dokumentation
    ](/de/ad-server/additional-apis/campaign-api)
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  *Diese Dokumentation spiegelt die aktuellen Funktionen der Topsort-API wider. DAM-Konnektivität
  ist jetzt mit bestehenden APIs verfügbar. Für die Entwicklung benutzerdefinierter Konnektivität
  wenden Sie sich bitte an Ihren Topsort-Vertreter.*
</div>

***

<LastUpdatedDe date="2025-11-18" />
