# Opciones avanzadas de inserción

> El widget insertado admite más configuración de la que muestra el fragmento para copiar y pegar, incluida la transmisión de opciones del cliente al proceso de pago que abre.

Los códigos de inserción generados en tu cuenta de Entase colocan un widget de evento listo para usar en una página. Están diseñados para copiarse y pegarse sin necesidad de trabajo de desarrollo – consulta [Insertar eventos en tu sitio web](/organizers/sharing-and-embedding/embedding-events-on-your-website.md) para saber cómo obtener uno.

Esta página documenta las opciones que puedes añadir a ese fragmento y cómo configurar el proceso de pago que abre.

El widget carga el cliente JavaScript por sí mismo, por lo que no debes añadir `client.js` junto a él. Tampoco necesita una clave publicable: Entase sirve el widget, por lo que el proceso de pago se autoriza mediante el widget en lugar de mediante una clave en tu página.

## Configuración

Cada widget se configura con un objeto de opciones:

```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` vincula la configuración a su contenedor: el widget se muestra en el elemento cuyo id es `entase_` seguido del mismo código. Si ese elemento no existe, el widget registra una advertencia y no muestra nada.

Añade una entrada por widget para colocar varios en una página.

| Nombre | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| `obj` | cadena | – | El código de objeto de tu fragmento de inserción. Obligatorio. |
| `width` | cadena | `'auto'` | Ancho del contenedor como valor CSS. `'auto'` significa ancho completo. |
| `height` | cadena | `'auto'` | Alto del contenedor como valor CSS. `'auto'` comienza en 200px y el widget cambia su tamaño para ajustarse a su contenido. |
| `theme` | cadena | `'light'` | `'light'` o `'dark'`. |
| `locale` | cadena | `'auto'` | Idioma del widget. `'auto'` lee el atributo `lang` de tu elemento `<html>`. |
| `ext` | booleano | `false` | Diseño ampliado – añade el nombre y el cartel del evento encima de las fechas. |
| `attribution` | booleano | `true` | Muestra la línea de atribución de Entase. Establécelo en `false` para ocultarla. |
| `client` | objeto | `{}` | Opciones transmitidas al cliente JavaScript que abre el proceso de pago. |

Al contenedor se le asigna un ancho mínimo de 200px independientemente de `width`; por debajo de ese valor, el widget no puede organizarse correctamente.

## Configurar el proceso de pago

`client` acepta las mismas opciones que el constructor del cliente, por lo que el proceso de pago abierto desde un widget puede personalizarse y dimensionarse como uno que abras tú mismo:

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

Consulta [Opciones del constructor](/developers/js-client/constructor-options.md) para ver la lista completa.

Dos advertencias. El propio widget establece `tprm` a partir de la URL de la página (consulta más abajo), por lo que se sustituye cualquier valor transmitido aquí. Además, cuando varios widgets comparten una página, comparten una instancia del cliente – las opciones de `client` del último widget inicializado son las que se aplican, así que mantenlas idénticas en todos los widgets de la misma página.

## Reenvío automático de campañas

A diferencia del cliente independiente, el widget lee la cadena de consulta de tu página y reenvía los parámetros de campaña conocidos tanto al widget como al proceso de pago:

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

A un visitante que llega a `yoursite.com/concert?utm_source=facebook&sgm=SOCIAL` se le registra esa atribución en cualquier pedido resultante sin necesidad de configuración adicional. Los parámetros que no están en esta lista se ignoran – para transmitir los tuyos, abre el proceso de pago directamente con el cliente y establece `tprm` tú mismo. Consulta [Seguimiento y consentimiento](/developers/js-client/tracking-and-consent.md).
