# Options d’intégration avancées

> Le widget intégré accepte davantage de configuration que ne le montre l’extrait à copier-coller, y compris la transmission d’options client au checkout qu’il ouvre.

Les codes d’intégration générés dans votre compte Entase insèrent un widget d’événement prêt à l’emploi dans une page. Ils sont conçus pour être copiés-collés sans travail de développement – consultez [Intégrer des événements sur votre site web](/organizers/sharing-and-embedding/embedding-events-on-your-website.md) pour savoir comment en obtenir un.

Cette page décrit les options que vous pouvez ajouter à cet extrait, ainsi que la manière de configurer le checkout qu’il ouvre.

Le widget charge lui-même le client JavaScript ; vous n’avez donc pas à ajouter `client.js` à côté. Il n’a pas non plus besoin d’une clé publiable : le widget est servi par Entase, le checkout est donc autorisé via le widget plutôt que par une clé sur votre page.

## Configuration

Chaque widget est configuré avec un objet d’options :

```html
<div id="entase_OBJ_CODE"></div>
<script>
  window.entase = window.entase || { o: [] };
  window.entase.o.push({
    obj: 'OBJ_CODE',
    theme: 'dark',
    ext: true
  });
</script>
<script src="https://js.entase.com/embed.js" async></script>
```

`obj` associe la configuration à son conteneur : le widget s’affiche dans l’élément dont l’identifiant correspond à `entase_` suivi du même code. Si cet élément est absent, le widget consigne un avertissement et n’affiche rien.

Ajoutez une entrée par widget pour en placer plusieurs sur une même page.

| Nom | Type | Valeur par défaut | Description |
|---|---|---|---|
| `obj` | chaîne | – | Le code objet de votre extrait d’intégration. Obligatoire. |
| `width` | chaîne | `'auto'` | Largeur du conteneur sous forme de valeur CSS. `'auto'` signifie pleine largeur. |
| `height` | chaîne | `'auto'` | Hauteur du conteneur sous forme de valeur CSS. `'auto'` commence à 200 px et le widget se redimensionne pour s’adapter à son contenu. |
| `theme` | chaîne | `'light'` | `'light'` ou `'dark'`. |
| `locale` | chaîne | `'auto'` | Langue du widget. `'auto'` lit l’attribut `lang` de votre élément `<html>`. |
| `ext` | booléen | `false` | Mise en page étendue – ajoute le nom et l’affiche de l’événement au-dessus des dates. |
| `attribution` | booléen | `true` | Affiche la ligne d’attribution Entase. Définissez cette valeur sur `false` pour la masquer. |
| `client` | objet | `{}` | Options transmises au client JavaScript qui ouvre le checkout. |

Le conteneur reçoit une largeur minimale de 200 px, quelle que soit la valeur de `width` ; en dessous, le widget ne peut pas s’afficher correctement.

## Configurer le checkout

`client` accepte les mêmes options que le constructeur du client ; le checkout ouvert depuis un widget peut donc être stylisé et dimensionné comme celui que vous ouvrez vous-même :

```js
window.entase.o.push({
  obj: 'OBJ_CODE',
  client: {
    checkoutMode: 'pane',
    pane: { width: '60vw' },
    backdrop: true,
    backdropColor: '#101014'
  }
});
```

Consultez [Options du constructeur](/developers/js-client/constructor-options.md) pour voir la liste complète.

Deux mises en garde. `tprm` est défini par le widget lui-même à partir de l’URL de la page (voir ci-dessous) ; toute valeur transmise ici est donc remplacée. De plus, lorsque plusieurs widgets partagent une page, ils partagent une même instance client – les options `client` du dernier widget initialisé sont celles qui s’appliquent ; conservez-les donc identiques pour tous les widgets de la même page.

## Transmission automatique des campagnes

Contrairement au client autonome, le widget lit la chaîne de requête de votre page et transmet les paramètres de campagne connus au widget comme au checkout :

`sgm`, `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`, `utm_id`, `utm_source_platform`, `utm_creative_format`, `fbclid`

Lorsqu’un visiteur arrive sur `yoursite.com/concert?utm_source=facebook&sgm=SOCIAL`, cette attribution est enregistrée pour toute commande qui en résulte, sans configuration supplémentaire. Les paramètres ne figurant pas dans cette liste sont ignorés – pour transmettre les vôtres, ouvrez directement le checkout avec le client et définissez vous-même `tprm`. Consultez [Suivi et consentement](/developers/js-client/tracking-and-consent.md).
