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

# Gestion des Actifs Numériques

> Connecter Topsort avec les plateformes de gestion des actifs numériques pour des flux de travail créatifs rationalisés

export const LastUpdatedFr = ({date}) => {
  const label = "Dernière mise à jour:";
  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>
    </>;
};

# Connexion de Topsort avec les Systèmes de Gestion des Actifs Numériques

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Les systèmes de **Gestion des Actifs Numériques (DAM)** comme Adobe Experience Manager
  Assets, Bynder et d'autres centralisent les actifs créatifs et génèrent des
  URL optimisées pour l'utilisation dans les campagnes. Contrairement à la connectivité OMS, la connectivité DAM est actuellement
  réalisable avec les API existantes de Topsort.
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Ce guide explique comment intégrer les API de Topsort avec les systèmes DAM pour
  des flux de travail créatifs rationalisés et une gestion automatisée des actifs.
</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="Diagramme montrant la connectivité DAM" 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="Diagramme montrant la connectivité DAM" width="1063" height="264" data-path="images/knowledge-base/dam-diagram-dark.svg" />
</Frame>

## Comment les Systèmes DAM Fonctionnent avec Topsort

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  Les systèmes DAM comme Adobe Experience Manager Assets, Bynder ou Webdam :
</div>

1. **Centralisent les Actifs** : Stockent toutes les bannières, images de produits, vidéos dans un référentiel organisé
2. **Génèrent des URL CDN** : Créent des URL optimisées et accessibles publiquement pour chaque actif
3. **Gèrent les Versions** : Suivent les versions approuvées et empêchent l'utilisation d'actifs obsolètes
4. **Contrôlent la Conformité de la Marque** : Garantissent que seuls les actifs approuvés et conformes à la marque atteignent les campagnes

## Flux de Travail

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  L'intégration DAM implique quatre flux de travail distincts pour différents rôles et
  moments :
</div>

| **Flux de Travail**                                                                | **Qui**                               | **Quand**                   | **Objectif**                                                                           |
| ---------------------------------------------------------------------------------- | ------------------------------------- | --------------------------- | -------------------------------------------------------------------------------------- |
| [Guide d'Implémentation](#guide-dimplementation)                                   | Équipe DevOps/Intégration             | Configuration unique        | Établir une synchronisation automatisée DAM ↔ Topsort                                  |
| [Flux de Travail UI](#flux-de-travail-ui)                                          | Vendeurs/Admins de Marketplace        | Par campagne                | Créer des campagnes de bannières via le tableau de bord avec des URL DAM               |
| [Flux de Travail API](#flux-de-travail-api-creation-complete-de-campagne-banniere) | Gestionnaires de Campagnes/Annonceurs | Par campagne                | Créer des campagnes de bannières de manière programmatique en utilisant des actifs DAM |
| [Enchère & Affichage](#reponse-denchere-avec-url-dam)                              | Développeurs de Marketplace           | À chaque chargement de page | Afficher les bannières gagnantes aux utilisateurs                                      |

### Création de Campagnes de Bannières avec des Actifs DAM

#### Flux de Travail UI

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Rôle :** Vendeurs/Admins de Marketplace | **Fréquence :** Par configuration de campagne
</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="Début de la création du modèle de marques sponsorisées" width="2982" height="1859" data-path="images/knowledge-base/banner-ad-url-image-example.webp" />
  </Frame>

  \*\*
</div>

<Note>
  Pour créer des campagnes de bannières avec des URL DAM externes via la **[Plateforme
  Publicitaire](https://www.topsort.com/retail-media)**, consultez le
  [guide complet des Campagnes de Bannières Publicitaires
  ](/fr/knowledge-base/ad-platform/banners/banner-ads-campaigns) qui
  montre le processus UI étape par étape, y compris comment référencer des URL externes dans
  la configuration de campagne.
</Note>

#### Flux de Travail API : Création Complète de Campagne Bannière

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Rôle :** Gestionnaires de Campagnes/Annonceurs | **Fréquence :** Par configuration de campagne
</div>

<Steps>
  <Step title="Créer un Actif avec une URL DAM">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Tout d'abord, créez un actif dans Topsort qui référence votre URL DAM :
    </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="Créer une Campagne de Bannière en Utilisant l'Actif">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Ensuite, créez une campagne de bannière qui référence l'actif que vous venez de créer :
    </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], // Référence l'actif créé
        slot_id: "homepage_banner_top",
      }),
    });

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

#### Réponse d'Enchère avec URL DAM

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Rôle :** Développeurs de Marketplace | **Fréquence :** À chaque chargement de page
</div>

<Steps>
  <Step title="Exécuter une Enchère pour un Emplacement de Bannière">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Demandez une enchère pour l'emplacement de bannière où votre campagne basée sur DAM peut concourir :
    </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="Recevoir l'URL DAM dans la Réponse">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Lorsque votre campagne de bannière gagne, la réponse d'enchère inclut l'URL DAM originale :
    </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="Afficher la Bannière avec l'Actif DAM">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Utilisez l'URL retournée pour afficher la bannière et suivre les performances :
    </div>

    ```javascript theme={null}
    // Extraire l'URL DAM de la réponse d'enchère
    const winner = auctionResult.results[0].winners[0];
    const damImageUrl = winner.asset[0].url;
    const resolvedBidId = winner.resolvedBidId;

    // Afficher la bannière dans votre interface utilisateur
    const bannerElement = document.createElement("img");
    bannerElement.src = damImageUrl;
    bannerElement.addEventListener("click", () => {
      // Suivre l'événement de clic pour la facturation et l'attribution
      fetch("/api/topsort/events", {
        method: "POST",
        body: JSON.stringify({
          type: "click",
          resolvedBidId: resolvedBidId,
        }),
      });
    });
    ```
  </Step>
</Steps>

### Avantages Clés de l'Intégration DAM

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * **Cohérence de la Marque** : Seuls les actifs approuvés et conformes atteignent les campagnes publicitaires -
    **Efficacité du Flux de Travail** : Les équipes créatives travaillent dans des outils DAM familiers, les actifs
    se synchronisent automatiquement - **Contrôle de Version** : Lorsque les créations sont mises à jour dans le DAM,
    les actifs de campagne se mettent à jour automatiquement - **Gestion des Droits** : Suivez les licences d'utilisation
    et empêchez l'utilisation d'actifs expirés - **Distribution Mondiale des Actifs** : Un référentiel d'actifs unique sert plusieurs canaux marketing
</div>

## Guide d'Implémentation

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Rôle :** Équipe DevOps/Intégration | **Fréquence :** Configuration unique
</div>

<Steps>
  <Step title="Préparation du Système DAM">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Configurez votre système DAM pour une connectivité optimale avec Topsort :
    </div>

    <ul>
      <li><strong>Organisation des Actifs</strong> : Structurez les actifs avec des dossiers et métadonnées spécifiques aux campagnes</li>
      <li><strong>Configuration CDN</strong> : Assurez-vous que le DAM génère des URL optimisées et accessibles publiquement</li>
      <li><strong>Flux de Travail d'Approbation</strong> : Configurez des processus pour marquer les actifs comme prêts pour les campagnes</li>
      <li><strong>Normes de Métadonnées</strong> : Définissez un balisage cohérent pour les dimensions, versions, dates d'expiration</li>
    </ul>
  </Step>

  <Step title="Configuration de l'API Assets Topsort">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Configurez la connectivité entre votre DAM et Topsort :
    </div>

    <ul>
      <li><strong>Authentification</strong> : Configurez les identifiants de l'API Topsort</li>
      <li><strong>Validation des URL</strong> : Assurez-vous que les URL DAM sont accessibles aux systèmes Topsort</li>
      <li><strong>Synchronisation Automatisée</strong> : Configurez des webhooks ou des tâches planifiées pour synchroniser les actifs approuvés</li>
      <li><strong>Gestion des Erreurs</strong> : Implémentez une logique de nouvelle tentative pour les références d'actifs échouées</li>
    </ul>
  </Step>

  <Step title="Automatisation du Flux de Travail">
    <div style={{textAlign: 'justify', marginBottom: '1.5rem'}}>
      Implémentez la synchronisation automatisée des actifs :
    </div>

    ```javascript theme={null}
    // Exemple de synchronisation automatique des actifs du DAM vers 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>

## Référence API

### API Topsort pour l'Intégration DAM

| API                                                        | Cas d'Utilisation de l'Intégration        | Statut       | Documentation                                  |
| ---------------------------------------------------------- | ----------------------------------------- | ------------ | ---------------------------------------------- |
| [API Assets](/fr/ad-server/additional-apis/assets-api)     | Référencer des URL DAM dans les campagnes | ✅ Disponible | Gestion des actifs et collections              |
| [API Campaign](/fr/ad-server/additional-apis/campaign-api) | Créer des campagnes avec des actifs DAM   | ✅ Disponible | Gestion complète du cycle de vie des campagnes |

### Authentification

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

## Meilleures Pratiques

### Gestion des Actifs

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * **Optimiser les URL** : Assurez-vous que le DAM génère des URL optimisées pour un chargement rapide via CDN -
    **Contrôle de Version** : Implémentez un versionnage clair pour éviter les actifs obsolètes dans les
    campagnes - **Normes de Métadonnées** : Utilisez un balisage cohérent pour les dimensions,
    types de campagnes, statut d'approbation - **Contrôle d'Accès** : Assurez-vous que les URL d'actifs sont
    accessibles publiquement aux systèmes Topsort
</div>

### Automatisation du Flux de Travail

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * **Portes d'Approbation** : Synchronisez uniquement les actifs approuvés et conformes à la marque vers Topsort -
    **Nettoyage Automatisé** : Supprimez les actifs expirés ou obsolètes des campagnes actives
  * **Surveillance des Erreurs** : Suivez les références d'actifs échouées et les problèmes de synchronisation
</div>

## Dépannage

### Problèmes Courants d'Intégration DAM

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  1. **Problèmes d'URL d'Actifs**
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * Vérifiez que les URL DAM sont accessibles publiquement (pas derrière une authentification) - Vérifiez
    que les URL retournent des codes de statut HTTP appropriés (200) - Assurez-vous que les URL CDN sont
    optimisées pour un chargement rapide - Validez que les dimensions des actifs correspondent aux
    exigences de Topsort
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  2. **Échecs de Synchronisation**
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * Vérifiez l'authentification API et les permissions - Vérifiez la compatibilité du format des métadonnées des actifs
  * Surveillez les taux de succès de livraison des webhooks - Implémentez une journalisation appropriée
    des erreurs pour les synchronisations échouées
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  3. **Problèmes de Contrôle de Version** - Assurez-vous que les actifs mis à jour déclenchent des mises à jour des actifs de campagne

  * Vérifiez que les actifs expirés sont supprimés des campagnes actives - Vérifiez que
    seules les versions d'actifs approuvées se synchronisent avec Topsort
</div>

### Problèmes Généraux d'API

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  1. **Échecs d'Authentification**
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * Vérifiez la validité de la clé API et les permissions de portée - Vérifiez le format de l'en-tête d'authentification
  * Surveillez l'expiration des jetons
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  2. **Limitation de Débit** - Implémentez une limitation de débit appropriée dans le code de connectivité -
     Utilisez des opérations groupées lorsque disponibles - Ajoutez une logique de nouvelle tentative avec backoff exponentiel
</div>

## Démarrage

### Étapes d'Implémentation

1. **Évaluation** : Examinez la génération d'URL et les capacités API de votre système DAM actuel
2. **Identifiants API** : Obtenez les clés API Topsort et configurez l'authentification
3. **Preuve de Concept** : Commencez avec un petit ensemble d'actifs pour tester le flux de travail de connectivité
4. **Automatisation** : Implémentez des processus de synchronisation automatisés pour les actifs approuvés
5. **Surveillance** : Configurez le suivi pour le succès de la synchronisation des actifs et les performances des campagnes

## Ressources Associées

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  * [Guide d'Intégration OMS](/fr/knowledge-base/ad-server/oms-connectivity) -
    Connectivité Order Management System - [Documentation de l'API Assets
    ](/fr/ad-server/additional-apis/assets-api) - [Documentation de l'API Campaign
    ](/fr/ad-server/additional-apis/campaign-api)
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  *Cette documentation reflète les capacités actuelles de l'API Topsort. La connectivité DAM
  est disponible maintenant en utilisant les API existantes. Pour le développement de connectivité personnalisée,
  veuillez contacter votre représentant Topsort.*
</div>

***

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