# Opções avançadas de incorporação

> O widget de incorporação aceita mais configurações do que as apresentadas no excerto de copiar e colar, incluindo a transmissão de opções do cliente para o checkout que abre.

Os códigos de incorporação gerados na sua conta Entase inserem um widget de evento pronto a usar numa página. Foram concebidos para serem copiados e colados sem trabalho de desenvolvimento – consulte [Incorporar eventos no seu website](/organizers/sharing-and-embedding/embedding-events-on-your-website.md) para saber como obter um.

Esta página documenta as opções que pode adicionar a esse excerto e como configurar o checkout que ele abre.

O widget carrega o próprio cliente JavaScript, pelo que não deve adicionar `client.js` ao lado dele. Também não precisa de uma chave publicável: o widget é disponibilizado pela Entase, pelo que o checkout é autorizado através do widget e não através de uma chave na sua página.

## Configuração

Cada widget é configurado com um objeto de opções:

```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` associa a configuração ao respetivo contentor: o widget é apresentado no elemento cujo ID é `entase_` seguido do mesmo código. Se esse elemento não existir, o widget regista um aviso e não apresenta nada.

Adicione uma entrada por widget para colocar vários numa página.

| Nome | Tipo | Predefinição | Descrição |
|---|---|---|---|
| `obj` | string | – | O código do objeto do seu excerto de incorporação. Obrigatório. |
| `width` | string | `'auto'` | Largura do contentor como valor CSS. `'auto'` significa largura total. |
| `height` | string | `'auto'` | Altura do contentor como valor CSS. `'auto'` começa em 200px e o widget redimensiona-se para se ajustar ao conteúdo. |
| `theme` | string | `'light'` | `'light'` ou `'dark'`. |
| `locale` | string | `'auto'` | Idioma do widget. `'auto'` lê o atributo `lang` do seu elemento `<html>`. |
| `ext` | boolean | `false` | Esquema alargado – adiciona o nome e o cartaz do evento acima das datas. |
| `attribution` | boolean | `true` | Mostra a linha de atribuição da Entase. Defina como `false` para a ocultar. |
| `client` | object | `{}` | Opções transmitidas ao cliente JavaScript que abre o checkout. |

É atribuída ao contentor uma largura mínima de 200px, independentemente de `width`; abaixo desse valor, o widget não consegue dispor-se corretamente.

## Configurar o checkout

`client` aceita as mesmas opções que o construtor do cliente, pelo que o checkout aberto a partir de um widget pode ter o estilo e o tamanho de um que abra diretamente:

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

Consulte [Opções do construtor](/developers/js-client/constructor-options.md) para ver a lista completa.

Duas ressalvas. `tprm` é definido pelo próprio widget a partir do URL da página (ver abaixo), pelo que um valor transmitido aqui é substituído. Além disso, quando vários widgets partilham uma página, partilham uma única instância do cliente – as opções de `client` do último widget inicializado são as que ficam em vigor, pelo que deve mantê-las idênticas entre widgets na mesma página.

## Encaminhamento automático de campanhas

Ao contrário do cliente autónomo, o widget lê a cadeia de consulta da sua página e encaminha parâmetros de campanha conhecidos tanto para o widget como para o checkout:

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

Um visitante que chega a `yoursite.com/concert?utm_source=facebook&sgm=SOCIAL` tem essa atribuição registada em qualquer encomenda resultante sem configurações adicionais. Os parâmetros fora desta lista são ignorados – para incluir os seus próprios parâmetros, abra o checkout diretamente com o cliente e defina você mesmo `tprm`. Consulte [Rastreio e consentimento](/developers/js-client/tracking-and-consent.md).
