# Интеграция с Segment

<Aside type="caution" icon="setting" title="Требуется помощь разработчика">
 Вам понадобится помощь вашей команды разработчиков для настройки интеграции. Пожалуйста, поделитесь с ними этим руководством.
</Aside>


[Segment](https://segment.com/) — это платформа клиентских данных, которая упрощает сбор данных о пользователях и помогает эффективно их использовать. Если вы храните свои клиентские данные в Segment, вы можете настроить интеграцию с Pushwoosh всего за несколько кликов.

После настройки интеграции Segment будет отправлять в Pushwoosh следующие данные:

*   Атрибуты пользователя: имя, устройство, предпочтения, местоположение, поведение и т.д. Pushwoosh сохранит эти данные как [теги](/ru/product/audience-data-and-segmentation/user-data-tags/tags/) и их значения для каждого пользователя.
*   События: каждое событие Segment будет передано в Pushwoosh и сохранено как [событие Pushwoosh](/ru/product/audience-data-and-segmentation/events/) с тем же именем. Pushwoosh также получит информацию о том, какие события вызвал каждый пользователь.

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

**1. Создавайте таргетированные кампании на основе данных о поведении пользователей.** Используйте данные о событиях из Segment для создания точных сегментов пользователей в Pushwoosh на основе определенного поведения пользователей.

Например, Segment отправляет в Pushwoosh данные о событии _SubscribedToOffers_. Вы можете создать в Pushwoosh сегмент пользователей, состоящий из тех, кто подписался на специальные предложения:

<img src="/integrations-segment-integration-1.webp" alt="Сегмент пользователей на основе события SubscribedToOffers"/>

Затем вы можете создавать увлекательные Customer Journeys с промо-сообщениями и скидками для пользователей, подписавшихся на ваши предложения:

<img src="/integrations-segment-integration-2.webp" alt="Customer Journey с промо-сообщениями для подписчиков"/>

**2. Персонализируйте сообщения на основе атрибутов пользователей из Segment.** Вы можете использовать атрибуты пользователей, полученные из Segment, для изменения контента ваших пуш-уведомлений, сообщений в приложении и email. Это позволит вам настроить релевантные и высококонверсионные коммуникации.

Например, Segment отправляет в Pushwoosh значения атрибута _searched_product_. Вы можете создать пресет пуш-уведомления, предлагающий скидку на товары из категории, которую пользователь ранее искал:

<img src="/integrations-segment-integration-3.webp" alt="Пресет пуш-уведомления с динамическим контентом для категории товаров"/>

Каждый пользователь получит пуш-уведомление со скидкой на ту категорию товаров, которую он просматривал ранее. Например, те, кто искал спортивную обувь, увидят такое сообщение:

<img src="/integrations-segment-integration-4.webp" alt="Пример пуш-уведомления для категории спортивной обуви" width="375"/>

## Обзор интеграции

### Тип интеграции

*   **Destination**: Данные отправляются из Segment в Pushwoosh.
*   **Source**: Данные отправляются из Pushwoosh в Segment.

### Предварительные требования

Платные аккаунты в Pushwoosh и Segment

### Синхронизируемые сущности

**Source**

*   Статистика пуш-уведомлений


**Destination**

*   Устройства
*   Теги

### Сценарии использования

**Отслеживание уведомлений**

Отправляйте пуш-уведомления и отслеживайте их статус, включая успешную отправку и доставку.

**Анализ событий**

Анализируйте события, инициированные пользователями, такие как доставка пуш-уведомлений или email, и убедитесь, что эти события точно записываются в Segment.

**Управление пользователями**

Регистрируйте и управляйте информацией о пользователях, включая присвоение пользователям соответствующих атрибутов или удаление пользователей при необходимости.

## Настройка интеграции

<Aside type="note">
Перед настройкой интеграции с Segment убедитесь, что вы интегрировали [Pushwoosh SDK](/ru/developer/first-steps/integrate-pushwoosh-sdk).
</Aside>

### Конфигурация Destination

1.  [В интерфейсе Segment](https://app.segment.com/login/) перейдите в **Connections** → **Destinations** и нажмите **Add Destination**.

2.  Найдите **Pushwoosh** и выберите его.

3.  Выберите источники (Sources), к которым вы хотите подключить Destination.

4.  Перейдите в настройки Destination:

<img src="/integrations-segment-integration-5.webp" alt="Настройки Destination в Segment"/>

5.  Введите **ключ API Pushwoosh** и **код приложения**. Убедитесь, что переключатель **Enable Destination** включен. После этого нажмите **Save Changes**.

<details>

<summary>Где найти API-ключ и код приложения?</summary>

Вы можете найти API-ключ в разделе **Settings** → **API Access**:

<img src="/integrations-segment-integration-6.webp" alt="Раздел API Access в настройках Pushwoosh" data-size="original"/>

Код приложения можно найти в левом верхнем углу интерфейса Pushwoosh, прямо под названием проекта:

<img src="/integrations-segment-integration-7.webp" alt="Код приложения в интерфейсе Pushwoosh" data-size="original"/>

</details>

6.  Перейдите на вкладку **Mappings** и убедитесь, что опции **Create or Update User Profile** и **Track Events** включены:

<img src="/integrations-segment-integration-8.webp" alt="Вкладка Mappings с опцией Create or Update User Profile"/>

Важно проверить сопоставление полей событий из вашего источника с Pushwoosh в качестве назначения, чтобы убедиться, что ваши события обрабатываются правильно.

Если событие не содержит поле _**device_platform**_ или это поле неверно, ваше событие будет проигнорировано. Кроме того, если событие не содержит ни _**userId**_, ни _**deviceId**_, оно также будет проигнорировано.

Чтобы убедиться, что ваше сопоставление настроено правильно, перейдите в **Pushwoosh as Destination > Settings**.

<img src="/integrations-segment-integration-9.webp" alt="Настройки Destination для конфигурации маппинга"/>

Затем выберите вкладку **Mapping** и нажмите **Edit Mapping** для метода **Track Events**.

<img src="/integrations-segment-integration-10.webp" alt="Редактирование маппинга для метода Track Events"/>

Далее убедитесь, что сопоставление ваших событий с событиями, отправляемыми в Pushwoosh, верное, и что поля **Device Platform** и **External User ID** (или **Device ID**) правильно сопоставлены.

<img src="/integrations-segment-integration-11.webp" alt="Маппинг событий с Device Platform и External User ID"/>

Ваше событие может отличаться от приведенного выше примера. Однако ключевым моментом является сопоставление передачи данных для платформы и устройства для события, отправляемого в Pushwoosh.

Если интеграция настроена правильно, Pushwoosh начнет получать события и атрибуты пользователей из Segment. На основе этих данных вы можете создавать высокотаргетированные [Customer Journeys](/ru/product/customer-journey/pushwoosh-journey-overview) и [персонализировать](/ru/product/personalization/dynamic-content/) ваши пуш-уведомления, сообщения в приложении и email.

### Конфигурация Source

1.  На странице каталога источников (Sources) вашего рабочего пространства [Sources catalog page](https://app.segment.com/goto-my-workspace/sources/catalog) нажмите **Add Source**.
2.  Найдите "**Pushwoosh**" в каталоге источников, выберите Pushwoosh и нажмите **Add Source**.
3.  На следующем экране дайте источнику имя и настройте другие параметры.

<Aside type="note">
Имя используется как метка в приложении Segment, и Segment создает соответствующее имя схемы в вашем хранилище. Имя может быть любым, но Pushwoosh рекомендует использовать что-то, что отражает сам источник и различает ваши среды (например: Pushwoosh_Prod, Pushwoosh_Staging, Pushwoosh_Dev).
</Aside>

4.  Нажмите **Add Source**, чтобы сохранить настройки.
5.  Скопируйте **Write key** из интерфейса Segment.
6.  Войдите в свой аккаунт Pushwoosh и выберите приложение, которое хотите подключить.
7.  Перейдите в **Settings > 3rd party integration > Segment**, нажмите кнопку **Configure** и введите ваш **Write key** из рабочего пространства Segment.
8.  Перечислите события, которые вы хотите экспортировать, используя разделитель `,` в поле **Events**, или оставьте его пустым, если хотите экспортировать все события, затем нажмите **Apply**.

#### Поток (Stream)

Pushwoosh использует компонент потокового источника (stream Source) Segment для отправки данных о событиях в Segment. Он использует серверный метод `track` для отправки данных в Segment. Эти события затем доступны в любом назначении, которое принимает серверные события, и доступны в схеме в вашем хранилище данных.

По умолчанию Pushwoosh передает User ID из Pushwoosh как свойство `userId` в Segment. Если связанного User ID нет, Pushwoosh передаст HWID как `anonymousId` в Segment.

#### События

В таблице ниже перечислены события, которые Pushwoosh отправляет в Segment. Эти события отображаются как таблицы в вашем хранилище и как обычные события в других назначениях.

| Название события   | Описание                                          |
| ------------------ | ------------------------------------------------- |
| Email Sent         | Email успешно отправлен                           |
| Push Sent          | Пуш-уведомление успешно отправлено                |
| SMS Sent           | SMS отправлено получателю                         |
| Push Opened        | Пуш-уведомление было открыто                       |
| Email Opened       | Email-уведомление было открыто                     |
| Email Delivered    | Email успешно доставлен                           |
| Push Delivered     | Пуш-уведомление успешно доставлено                |
| SMS Delivered      | SMS успешно доставлено                            |
| SMS Not Delivered  | Доставка SMS не удалась                           |
| Email Bounced      | Email возвращен отправителю из-за постоянной ошибки |
| Email Unsubscribed | Нажата ссылка для отписки от email-рассылки       |

#### Свойства событий

В таблице ниже перечислены свойства, включенные в вышеуказанные события.

| Название свойства | Описание                                          |
| --------------- | --------------------------------------------------- |
| `message_type`  | Содержит тип сообщения (Push, Email, In-App или SMS) |
| `campaign_code` | Уникальный идентификатор кампании сообщения         |
| `device_type`   | Тип устройства                                      |

#### Добавление назначений (Destinations)

Теперь, когда ваш источник настроен, вы можете подключить его к назначениям.

Войдите в свои инструменты и проверьте, что ваши события отображаются, как ожидалось, и содержат все ожидаемые свойства. Если ваши события и свойства не отображаются, проверьте доставку событий (Event Delivery) и обратитесь к документации по назначениям для каждого инструмента для устранения неполадок.

Если возникнут какие-либо проблемы с тем, как события поступают в Segment, [свяжитесь с нашей службой поддержки](mailto:support@pushwoosh.com).

## Как работает интеграция

1.  **Инициация пуш-уведомления**: Клиент начинает процесс, инициируя пуш-уведомление через интерфейс Pushwoosh.
2.  **Создание события**: Бэкенд Pushwoosh обрабатывает запрос на пуш-уведомление и генерирует событие. Это событие затем отправляется в топик Kafka под названием `channels-tracking-log`, управляемый Pushwoosh.
3.  **Потребление события**: Сервис интеграции с Segment постоянно прослушивает топик Kafka `channels-tracking-log` и потребляет события по мере их поступления.
4.  **Обработка события**: Потребленные события обрабатываются сервисом интеграции с Segment, который преобразует их в события Segment Track Events.
5.  **Передача события**: Обработанные события Segment Track Events затем отправляются на бэкенд Segment для дальнейшей обработки и анализа.

## Как узнать, что интеграция работает?

#### Destination

##### track-user

Перейдите в ваш **аккаунт Pushwoosh > Ваше подключенное приложение > Audience > User Explorer.** Найдите вашего пользователя/устройство и проверьте теги, которые отправил Segment.

##### post-event

Перейдите в ваш **аккаунт Pushwoosh > Ваше подключенное приложение > Audience > Events**. Выберите событие, нажмите на меню из трех точек и выберите Event Statistics. Убедитесь, что событие подсчитано.

##### delete-user

Перейдите в ваш **аккаунт PW > Ваше подключенное приложение > Audience > User Explorer.** Убедитесь, что пользователь/устройство не существует.

#### Source

Используйте [отладчик источника (Source debugger)](https://segment.com/docs/connections/sources/debugger/), чтобы обнаружить события, которые были отправлены из Pushwoosh в Segment.

## Устранение неполадок

### Проверка статуса интеграции

Для устранения проблем с интеграцией Pushwoosh начните с проверки следующего:

**Destination**

*   **Track-User**: Проверьте информацию о пользователе/устройстве и теги в Pushwoosh в разделе `Audience > User Explorer`.
*   **Post-Event**: Убедитесь, что событие подсчитано в Pushwoosh, проверив статистику событий.
*   **Delete-User**: Подтвердите, что пользователь/устройство больше не существует в Pushwoosh.

**Source**

Используйте отладчик источника на [Segment Debugger](https://segment.com/docs/connections/sources/debugger/), чтобы проверить, правильно ли отправляются события из Pushwoosh в Segment.

### Несоответствие событий

Если события не отображаются в Segment правильно, убедитесь, что события Pushwoosh правильно сопоставлены с событиями Segment Track Events в соответствии с предоставленными правилами сопоставления.

### Проблемы с аутентификацией

Убедитесь, что в запросах к Pushwoosh и Segment используются правильные токены аутентификации или ключи API.

### Проблемы с потоком данных

Подтвердите, что поток данных между Pushwoosh и Segment не прерывается и что топики Kafka отслеживаются правильно.

## FAQ

### Какие типы событий отправляются из Pushwoosh в Segment?

В Segment отправляются зарезервированные события, такие как **Push Sent, Email Sent, SMS Sent, Push Delivered, Email Delivered, SMS Delivered и Email Bounced**.

### Как я могу проверить, что события корректно отправляются в Segment?

Используйте отладчик источника Segment для проверки событий, отправленных из Pushwoosh, и просмотрите статистику событий в вашем аккаунте Pushwoosh, чтобы убедиться, что они правильно подсчитываются.

### Что делать, если у меня возникли проблемы с интеграцией?

Проверьте статус интеграции, верифицируя информацию о пользователе/устройстве, количество событий и удаление пользователей в Pushwoosh. Кроме того, убедитесь, что используются правильные токены аутентификации и что поток данных не прерывается.

### Как обрабатывается информация о пользователе и устройстве в рамках интеграции?

Информация о пользователе и устройстве, включая атрибуты и теги, регистрируется или обновляется в Pushwoosh на основе запросов от Segment. Обратите внимание, что теги по умолчанию не создаются в Pushwoosh автоматически.

### Где я могу найти подробную документацию по интеграции?

Подробная документация доступна в руководствах по интеграции Segment и Pushwoosh, а также в их соответствующей API-документации.