# Вставка embed виджета

Для кампаний с методом вставки `embed` можно запускать кампанию вручную из другой кампании или внешнего клиентского кода. Скрипт выберет подходящий опыт и вариацию, проверит таргетинги и вставит результат в указанный элемент.

!!!
Метод запускает кампанию по её идентификатору. Кампания должна быть загружена в `dynamic.js` текущей секции.
!!!

---

## Синтаксис

```jsx
GF.Utils.runCampaign(campaignId, params)
```

{.compact}
| Параметр | Тип | Описание |
| --- | --- | --- |
| `campaignId` [!badge variant="danger" text="обязательно"] | `string` | Идентификатор кампании. |
| `params` [!badge variant="danger" text="обязательно"] | `Object` | Параметры запуска. Для `embed` обязателен `target`. |
| Объект **params**: | | |
| `target` [!badge variant="danger" text="обязательно"] | `string` | CSS-селектор DOM-элемента, в который вставляется кампания. |
| `insertMethod` | `string` | Способ вставки: `replace`, `after` или `before`. По умолчанию используется `replace`. |
| `identifier` | `string` | Дополнительный идентификатор для сценариев, где кампания должна учитывать внешний контекст. |
| `context` | `Object` | Контекст страницы для запуска кампании. Если не передан, используется текущий `GF.pageContext`. |

=== Пример использования

```jsx
GF.Utils.runCampaign('649d8dd4c4648f16ce0ab52e', {
  target: '.sl-observable-unit',
});
```
=== Вставка после элемента

```jsx
GF.Utils.runCampaign('649d8dd4c4648f16ce0ab52e', {
  target: '.product-card',
  insertMethod: 'after',
  context: {
    type: 'PRODUCT',
    data: ['1000001'],
  },
});
```
===

!!!warning
Проверьте, что селектор `target` существует на странице к моменту вызова. Если элемент появляется асинхронно, сначала дождитесь его через `GF.waitForElement`.
!!!
