# Publicidade


O player pode exibir anúncios em vídeo por uma tag VAST ou VPAID, ou pelo Google IMA. Configure os anúncios com um parâmetro de URL ou pela IFrame API.

Para uma configuração básica sem a API, consulte [Publicidade](https://docs-br.kinescope.com/video-player/advertising/) na documentação do produto. Esta página aborda a configuração programática.

> **Внимание:**

Os anúncios podem não funcionar com vídeos protegidos por DRM. Bloqueadores de anúncios e políticas de reprodução automática do navegador também podem impedir a exibição.



## Incorporação simples com `adtagurl`

```html
<iframe
  src="https://kinescope.io/embed/VIDEO_ID?adtagurl=https%3A%2F%2Fexample.com%2Fvast.xml"
  allow="autoplay; fullscreen; picture-in-picture; encrypted-media; gyroscope; accelerometer; clipboard-write; screen-wake-lock;"
  style="border: none;"
></iframe>
```

O valor de `adtagurl` deve ser codificado para URL. Esse parâmetro tem status `@experimental`.

## IFrame API: `playlist[].ad`

Defina esse campo em [`create()`](https://docs-br.kinescope.com/player-docs/embedding/iframe-api-create-player/#create) ou com [`setPlaylistItemOptions`](https://docs-br.kinescope.com/player-docs/embedding/iframe-api-control-player/#setPlaylistItemOptions).

### Pre-roll a partir de uma URL de tag

```js
playerFactory.create('player', {
  url: 'https://kinescope.io/VIDEO_ID',
  playlist: [
    {
      ad: {
        adTagUrl: 'https://example.com/vast.xml',
      },
    },
  ],
})
```

Você pode passar um array de URLs: `adTagUrl: ['https://…/a.xml', 'https://…/b.xml']`.

### Mid-roll e vários pontos

Para definir os pontos de anúncio, passe um array de itens com `trigger`:

```js
playlist: [
  {
    ad: [
      {
        id: 'preroll',
        adTagUrl: 'https://example.com/preroll.xml',
        trigger: { percentages: [0] },
      },
      {
        id: 'midroll',
        adTagUrl: 'https://example.com/midroll.xml',
        trigger: { timePoints: [60, 180] },
      },
      {
        id: 'every-10-min',
        adTagUrl: 'https://example.com/recurring.xml',
        trigger: { interval: 600 }, // A cada 10 minutos
      },
    ],
  },
]
```

| Campo de `trigger` | Descrição |
| :--- | :--- |
| `percentages` | Percentual do tempo de reprodução atual, como `[0, 50]` |
| `timePoints` | Tempo em segundos, como `[60, 600]` |
| `interval` | Repete a cada N segundos, como `600` |

Defina um tipo de acionador em cada item de anúncio.

### Opções de origem do anúncio

| Campo | Status | Descrição |
| :--- | :--- | :--- |
| `adTagUrl` | Público | URL de tag VAST ou VPAID, ou um array de URLs |
| `adTag` | `@experimental` | Texto completo da tag ou um array de tags |
| `adsRequest` | `@experimental` | Objeto de solicitação (`adsRequest`) do [Google IMA](https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side) |
| `yaOptions` | `@experimental` | Configurações do [Yandex Video Ads SDK](https://yandex.ru/dev/video-sdk/doc/ru/sdk-html5/AdConfig-interface) |

Use apenas um desses campos em cada item de anúncio.

Exemplo com o texto completo da tag:

```js
ad: {
  adTag: `<?xml version="1.0"?><VAST version="3.0">…</VAST>`,
}
```

## Evento de intervalo de anúncio

```js
player.on(player.Events.AdBreakStateChanged, (event) => {
  if (event.data.active) {
    // Um anúncio está sendo exibido
  } else {
    // O intervalo de anúncio terminou
  }
})
```

O evento [`AdBreakStateChanged`](https://docs-br.kinescope.com/player-docs/embedding/iframe-api-control-player/#Events.AdBreakStateChanged) tem status `@experimental`.

## Próximos passos

- [Controlar o player](https://docs-br.kinescope.com/player-docs/embedding/iframe-api-control-player/) — configure `playlist[].ad` e trate eventos
- [Criptografia DRM](https://docs-br.kinescope.com/content-protection/drm-encryption/) — consulte as limitações de proteção de conteúdo
- [Publicidade em modelos de player](https://docs-br.kinescope.com/video-player/advertising/) — configure anúncios sem a API
- [Incorporação simples com iframe](https://docs-br.kinescope.com/player-docs/embedding/simple-iframe-embed/) — conheça outros parâmetros de URL

