Skip to content

Commit

Permalink
Merge pull request #278 from Ksksksksen/doc/251-add-scripts
Browse files Browse the repository at this point in the history
fix(sendsay-docs): add scripts
  • Loading branch information
sendsay-cat authored Mar 29, 2024
2 parents ee05a26 + 355a231 commit a0c0b1d
Show file tree
Hide file tree
Showing 5 changed files with 108 additions and 0 deletions.
95 changes: 95 additions & 0 deletions docs/forms/scripts.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
sidebar_position: 4
sidebar_label: 'Скрипты для форм'
---

# Скрипты для форм

:::tip Важно
Для работы со скриптами необходимы навыки работы с HTML и JavaScript. Обратитесь к разработчику или вебмастеру вашего сайта, если не обладаете такими навыками.
:::

Формы на сайте, созданные в новом интерфейсе Sendsay, запускают следующие JavaScript-события:

### sendsay-form-show

Срабатывает при появлении формы на экране.

Структура `event.detail`:

- `formId` [string] — ID формы
- `account` [string] — аккаунт

### sendsay-form-sent

Срабатывает при успешной отправке формы.

Структура `event.detail` :

- `formId` [string] — ID формы
- `account` [string] — аккаунт
- `extra` [object] — данные формы

## Как отслеживать отправку форм в Яндекс Метрике

При установке на сайт счётчика Яндекс Метрики цель **Отправка формы** создаётся автоматически, если в настройках счётчика включена опция **Автоматические цели**. Отправка формы засчитывается в эту автоцель без дополнительных действий:

![Yandex target](/img/forms/scripts/yandex-target.png)

Вы также можете создать свою цель с типом `JavaScript-событие` и выполнять её при каждой отправке формы. В этом случае на сайт необходимо добавить скрипт:

```js
<script type="text/javascript">
window.addEventListener(
"sendsay-form-sent",
() => {
ym(XXXXXX, "reachGoal", "TARGET");
},
true
);
</script>
```

где `XXXXXX` — номер вашего счётчика, а `TARGET` — идентификатор цели.

[Как создать цель «JavaScript-событие» в Яндекс Метрике](https://metrika.yandex.ru/support/metrica/general/goal-js-event.html#create-goal)

Если на вашем сайте установлено несколько форм Sendsay, вы можете добавить условие, по которому будет выполняться цель только при заполнении конкретной формы:

```js
<script type="text/javascript">
window.addEventListener(
"sendsay-form-sent",
(event) => {
if (event.detail.formId === "555") {
ym(XXXXXX, "reachGoal", "TARGET");
}
},
true
);
</script>
```

где `XXXXXX` — номер вашего счётчика, `555` — ID формы, а `TARGET` — идентификатор цели.

## Как заполнить скрытые поля формы

Если в вашей форме есть скрытые поля, их можно заполнять какими-либо данными. Например, записать URL-адрес страницы, с которой заполнили форму.

Для этого необходимо подписаться на событие появления формы, добавив скрипт на сайт:

```js
<script type="text/javascript">
window.addEventListener(
"sendsay-form-show",
(event) => {
if (event.detail.formId === "555") {
document.querySelector('[name="q280"]').setAttribute("value", location.host);
}
},
true
);
</script>
```

где `555` — ID формы, а `q280` — ID скрытого поля.
6 changes: 6 additions & 0 deletions docs/forms/signup-forms.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ import formTypes from "/img/forms/signup-forms/form-types.png";

[Как создавать поля](https://docs.sendsay.ru/subscribers/subscriber-data/data-groups#как-создать-поле)

В форму можно добавить скрытые поля: подписчики их не увидят, но эти поля можно заполнить нужными данными при отправке формы — например, URL-адресом страницы, c которой заполнили форму.

![Hidden fields](/img/forms/signup-forms/hidden-fields.gif)

[Как заполнить скрытые поля формы](https://docs.sendsay.ru/forms/scripts#как-заполнить-скрытые-поля-формы)

## Как установить форму на сайт

1. Зайдите в раздел **Формы** и откройте форму, которую хотите установить.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
hide_title: true
---

import { Redirect } from '@docusaurus/router';

<Redirect to="/404" />;
Binary file added static/img/forms/scripts/yandex-target.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/forms/signup-forms/hidden-fields.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a0c0b1d

Please sign in to comment.