# Примеры пользовательских событий

Ниже вы найдете список событий в приложении, рекомендованных для различных категорий приложений.

Чтобы реализовать любое из этих или других событий:

* [создайте событие](/ru/product/audience-data-and-segmentation/events/#1-create-events-in-pushwoosh-control-panel) в вашей Панели управления Pushwoosh и при необходимости добавьте атрибуты;
* интегрируйте метод [postEvent](/ru/developer/api-reference/user-centric-api#postevent) в ваш мобильный проект, указав название события и его атрибуты в точности так, как они указаны в Панели управления.

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Event name", { // название события в точности как в Панели управления
    "attribute 1": "string value", // название и тип атрибута в точности как в Панели управления
    "attribute 2": "string value" // название и тип атрибута в точности как в Панели управления
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "attribute 1" : "string value", // название и тип атрибута в точности как в Панели управления
   "attribute 2" : "string value" // название и тип атрибута в точности как в Панели управления
]
PWInAppManager.shared().postEvent("Event name", withAttributes: attributes) // название события в точности как в Панели управления
```
</TabItem>
<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"attribute 1" : @"string value", // название и тип атрибута в точности как в Панели управления
   @"attribute 2" : @"string value" // название и тип атрибута в точности как в Панели управления
};
[[PushNotificationManager pushManager] postEvent:@“eventName” withAttributes:attributes]; // название события в точности как в Панели управления
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("attribute 1", "string value") // название и тип атрибута в точности как в Панели управления
    .putString("attribute 2", "string value") // название и тип атрибута в точности как в Панели управления
    .build()

PushwooshInApp.getInstance().postEvent("Event name", attributes); // название события в точности как в Панели управления
```
</TabItem>
</Tabs>

<Aside type="note">
Приведенные ниже примеры можно просто вставить в ваше приложение при условии, что в вашей Панели управления создано соответствующее событие и его атрибуты. После интеграции данные о событии будут собираться и станут доступны в разделе Audience -> Events -> Event statistics, и вы сможете использовать это событие при планировании кампаний.
</Aside>

## Мобильные приложения

### Выход из системы

Активируйте это событие, когда пользователи выходят из своих аккаунтов в вашем приложении.

Рекомендуемые атрибуты:

* user\_id: String
* date: Date

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Log out", {
    "user_id": "string value",
    "date": "date value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "user_id" : "string value",
   "date" : "date value"
]
PWInAppManager.shared().postEvent("Log out", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"user_id" : @"string value",
   @"date" : @"date value"
};
[[PushNotificationManager pushManager] postEvent:@"Log out" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("user_id", "string value")
    .putString("date", "date value")
    .build()

PushwooshInApp.getInstance().postEvent("Log out", attributes);
```
</TabItem>
</Tabs>

### Способ оплаты добавлен

Активируйте это событие, когда пользователь добавляет способ оплаты в свой аккаунт в вашем приложении, например, предоставляет данные карты или привязывает аккаунт к платежной системе.

Рекомендуемые атрибуты:

* payment\_method: String,
* user\_id: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Payment method added", {
    "user_id": "string value",
    "payment_method": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "user_id" : "string value",
   "payment_method" : "string value"
]
PWInAppManager.shared().postEvent("Payment method added", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"payment_method" : @"string value",
   @"user_id" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Payment method added" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("payment_method", "string value")
    .putString("user_id", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Payment method added", attributes);
```
</TabItem>
</Tabs>

### Способ оплаты изменен

Отправляйте это событие, когда пользователь обновляет свой способ оплаты в приложении.

Рекомендуемые атрибуты:

* user\_id: String,
* payment\_method: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Payment method changed", {
    "user_id": "string value",
    "payment_method": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "user_id" : "string value",
   "payment_method" : "string value"
]
PWInAppManager.shared().postEvent("Payment method changed", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"user_id" : @"string value",
   @"payment_method" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Payment method changed" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("user_id", "string value")
    .putString("payment_method", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Payment method changed", attributes);
```
</TabItem>
</Tabs>

### Нажатие кнопки

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

Рекомендуемые атрибуты события:

* user\_id: String
* button\_link: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Button clicked", {
    "user_id": "string value",
    "button_link": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "user_id" : "string value",
   "button_link" : "string value"
]
PWInAppManager.shared().postEvent("Button clicked", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"user_id" : @"string value",
   @"button_link" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Button clicked" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("user_id", "string value")
    .putString("button_link", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Button clicked", attributes);

```
</TabItem>
</Tabs>

### Приложение обновлено

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

Рекомендуемые атрибуты:

* previous\_app\_version: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Application updated", {
    "previous_app_version": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "previous_app_version" : "string value"
]
PWInAppManager.shared().postEvent("Application updated", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"previous_app_version" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Application updated" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("previous_app_version", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Application updated", attributes);
```
</TabItem>
</Tabs>

### ОС обновлена

Активируйте это событие, когда пользователь обновляет версию ОС своего устройства, чтобы убедиться, что ваше приложение полностью совместимо.

Рекомендуемые атрибуты:

* previous\_OS\_version: String
* new\_OS\_version: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("OS updated", {
    "previous_OS_version": "string value",
    "new_OS_version": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "previous_OS_version" : "string value",
   "new_OS_version": "string value"
]
PWInAppManager.shared().postEvent("OS updated", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"previous_OS_version" : @"string value",
   @"new_OS_version" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"OS updated" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("previous_OS_version", "string value")
    .putString("new_OS_version", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("OS updated", attributes);
```
</TabItem>
</Tabs>

## Электронная коммерция
### Товар добавлен в корзину

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

Рекомендуемые атрибуты:

* product\_id: String
* price: Integer
* source: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Product added to cart", {
    "product_id": "string value",
    "price": 1,
    "source": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "price" : 1,
   "product_id" : "string value",
   "source" : "string value"
]
PWInAppManager.shared().postEvent("Product added to cart", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"price" : @(1),
   @"product_id" : @"string value",
   @"source" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Product added to cart" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putInt("price", 1)
    .putString("product_id", "string value")
    .putString("source", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Product added to cart", attributes);
```
</TabItem>
</Tabs>

### Покупка со скидкой

Активируйте это событие, как только пользователь покупает какой-либо товар с использованием скидочного купона.

Рекомендуемые атрибуты:

* product\_id: String
* coupon\_id: String
* price: Integer
* discount: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Discounted purchase", {
    "product_id": "string value",
    "coupon_id": "string value",
    "price": 1,
    "discount": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "product_id" : "string value",
   "coupon_id" : "string value",
   "price" : 1,
   "discount" : "string value"
]
PWInAppManager.shared().postEvent("Discounted purchase", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"product_id" : @"string value",
   @"coupon_id" : @"string value",
   @"price" : @(1),
   @"discount" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Discounted purchase" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("product_id", "string value")
    .putString("coupon_id", "string value")
    .putInt("price", 1)
    .putString("discount", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Discounted purchase", attributes);
```
</TabItem>
</Tabs>

### Уход со страницы товара

Активируйте это событие, когда пользователь покидает страницу товара без совершения конверсионного действия.

Рекомендуемые атрибуты:

* product\_id: String
* price: Integer
* source: String
* product\_page\_id: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Product Page abandoned", {
    "product_id": "string value",
    "price": 1,
    "source": "string value",
    "product_page_id": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "product_id" : "string value",
   "price" : 1,
   "source" : "string value",
   "product_page_id" : "string value"
]
PWInAppManager.shared().postEvent("Product Page abandoned", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"product_id" : @"string value",
   @"price" : @(1),
   @"source" : @"string value",
   @"product_page_id" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Product Page abandoned" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("product_id", "string value")
    .putInt("price", 1)
    .putString("source", "string value")
    .putString("product_page_id", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Product Page abandoned", attributes);
```
</TabItem>
</Tabs>

### Товар добавлен в список желаний

Будьте в курсе товаров, которые пользователи сохранили в свои списки желаний, и создавайте персональные предложения и промо-кампании.

Рекомендуемые атрибуты:

* product\_id: String
* wishlist\_id: String
* product\_price: Integer
* source: String
* user\_id: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Product added to wishlist", {
    "product_id": "string value",
    "currency": "string value",
    "price": 1,
    "source": "string value",
    "user_id": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "product_id" : "string value",
   "wishlist_id" : "string value",
   "product_price" : 1,
   "source" : "string value",
   "user_id" : "string value"
]
PWInAppManager.shared().postEvent("Product added to wishlist", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"product_id" : @"string value",
   @"wishlist_id" : @"string value",
   @"product_price" : @(1),
   @"source" : @"string value",
   @"user_id" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Product added to wishlist" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("product_id", "string value")
    .putString("wishlist_id", "string value")
    .putInt("product_price", 1)
    .putString("source", "string value")
    .putString("user_id", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Product added to wishlist", attributes);
```
</TabItem>
</Tabs>

### Товар удален из списка желаний

Активируйте это событие, когда пользователь удаляет товар из своего списка желаний.

Рекомендуемые атрибуты:

* user\_id: String
* wishlist\_id: String
* product\_id: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Product removed from wishlist", {
    "wishlist_id": "string value",
    "user_id": "string value",
    "product_id": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "wishlist_id" : "string value",
   "user_id" : "string value",
   "product_id" : "string value"
]
PWInAppManager.shared().postEvent("Product removed from wishlist", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"wishlist_id" : @"string value",
   @"user_id" : @"string value",
   @"product_id" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Product removed from wishlist" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("wishlist_id", "string value")
    .putString("user_id", "string value")
    .putString("product_id", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Product removed from wishlist", attributes);
```
</TabItem>
</Tabs>

### Категория товара

Отправляйте это событие, когда пользователь покупает товар определенной категории.

Рекомендуемые атрибуты:

* product\_id: String
* product\_category: String
* currency: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Product category", {
    "product_id": "string value",
    "product_category": "string value",
    "currency": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "product_id" : "string value",
   "product_category" : "string value",
   "currency" : "string value"
]
PWInAppManager.shared().postEvent("Product category", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"product_id" : @"string value",
   @"product_category" : @"string value",
   @"currency" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Product category" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("product_id", "string value")
    .putString("product_category", "string value")
    .putString("currency", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Product category", attributes);
```
</TabItem>
</Tabs>

### Первая покупка

Активируйте это событие, как только пользователь совершает свою первую покупку.

Рекомендуемые атрибуты:

* product\_id: String,
* category: String
* date: Date

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("First purchase", {
    "product_id": "string value",
    "category": "string value",
    "date": "date value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "product_id" : "string value",
   "category" : "string value",
   "date" : "date value"
]
PWInAppManager.shared().postEvent("First purchase", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"product_id" : @"string value",
   @"category" : @"string value",
   @"date" : @"date value"
};
[[PushNotificationManager pushManager] postEvent:@"First purchase" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("product_id", "string value")
    .putString("category", "string value")
    .putBoolean("date", "date value")
    .build()

PushwooshInApp.getInstance().postEvent("First purchase", attributes);
```
</TabItem>
</Tabs>

## Игровые приложения

### Новый уровень

Когда пользователь достигает нового игрового уровня, активируйте событие "Новый уровень".

Рекомендуемые атрибуты:

* level\_id: String
* user\_id: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("New level", {
    "level_id": "string value",
    "user_id": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "level_id" : "string value",
   "user_id" : "string value"
]
PWInAppManager.shared().postEvent("New level", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"level_id" : @"string value",
   @"user_id" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"New level" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("level_id", "string value")
    .putString("user_id", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("New level", attributes);
```
</TabItem>
</Tabs>

### Уровень пройден

Отправляйте это событие, когда пользователь завершает определенный игровой уровень.

Рекомендуемые атрибуты:

* level\_id: String
* user\_id: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Level completed", {
    "level_id": "string value",
    "user_id": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "level_id" : "string value",
   "user_id" : "string value"
]
PWInAppManager.shared().postEvent("Level completed", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"level_id" : @"string value",
   @"user_id" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Level completed" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("level_id", "string value")
    .putString("user_id", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Level completed", attributes);
```
</TabItem>
</Tabs>

### Получена виртуальная валюта

Активируйте это событие, когда баланс виртуальной валюты пользователя пополняется.

Рекомендуемые атрибуты:

* currency\_name: String
* quantity: Integer
* user\_id: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Virtual currency earned", {
    "currency_name": "string value",
    "quantity": 1,
    "user_id": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "currency_name" : "string value",
   "quantity" : 1,
   "user_id" : "string value"
]
PWInAppManager.shared().postEvent("Virtual currency earned", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"currency_name" : @"string value",
   @"quantity" : @(1),
   @"user_id" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Virtual currency earned" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("currency_name", "string value")
    .putInt("quantity", 1)
    .putString("user_id", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Virtual currency earned", attributes);
```
</TabItem>
</Tabs>

### Руководство пройдено

Активируйте это событие, когда пользователь завершает внутриигровое руководство.

Рекомендуемые атрибуты:

* tutorial\_name: String
* completion: Boolean

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Tutorial completed", {
    "tutorial_name": "string value",
    "completion": true
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "tutorial_name" : "string value",
   "completion" : true
]
PWInAppManager.shared().postEvent("Tutorial completed", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"tutorial_name" : @"string value",
   @"completion" : @YES
};
[[PushNotificationManager pushManager] postEvent:@"Tutorial completed" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("tutorial_name", "string value")
    .putBoolean("completion", true)
    .build()

PushwooshInApp.getInstance().postEvent("Tutorial completed", attributes);
```
</TabItem>
</Tabs>

### Достижение разблокировано

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

Рекомендуемые атрибуты:

* achievement\_name: String
* level: Integer
* user\_id: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Achievement unlocked", {
    "achievement_name": "string value",
    "level": 5,
    "user_id": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "achievement_name" : "string value",
   "level" : 5,
   "user_id": "string value"
]
PWInAppManager.shared().postEvent("Achievement unlocked", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"achievement_name" : @"string value",
   @"level" : @1,
   @"user_id" : "string value"
};
[[PushNotificationManager pushManager] postEvent:@"Achievement unlocked" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("achievemnt_name", "string value")
    .putString("level", 1)
    .putString("user_id", "string value)
    .build()

PushwooshInApp.getInstance().postEvent("Achievement unlocked", attributes);
```
</TabItem>
</Tabs>

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


### Покупка платной подписки

Отправляйте это событие, когда пользователь приобрел платный тарифный план подписки.

Рекомендуемые атрибуты:

* subscription\_plan\_name: String
* price: Integer
* currency:String
* expiry\_date:Date

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Paid subscription purchase", {
    "subscription_plan_name": "string value",
    "price": 1,
    "currency": "string value",
    "expiry_date": "new Date()"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "subscription_plan_name" : "string value",
   "price" : 1,
   "currency" : "string value",
   "expiry_date" : NSDate()
]
PWInAppManager.shared().postEvent("Paid subscription purchase", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"subscription_plan_name" : @"string value",
   @"price" : @(1),
   @"currency" : @"string value",
   @"expiry_date" : [NSDate date]
};
[[PushNotificationManager pushManager] postEvent:@"Paid subscription purchase" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("subscription_plan_name", "string value")
    .putInt("price", 1)
    .putString("currency", "string value")
    .putDate("expiry_date", new Date())
    .build()

PushwooshInApp.getInstance().postEvent("Paid subscription purchase", attributes);
```
</TabItem>
</Tabs>

### Продление подписки

Активируйте это событие, как только пользователь продлевает свой тарифный план подписки.

Рекомендуемые атрибуты:

* subscription\_plan\_name: String
* price: Integer
* currency: String
* renewal\_count: Integer

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Subscription renewal", {
    "subscription_plan_name": "string value",
    "price": 1,
    "currency": "string value",
    "renewal_count": 1
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "subscription_plan_name" : "string value",
   "price" : 1,
   "currency" : "string value",
   "renewal_count" : 1
]
PWInAppManager.shared().postEvent("Subscription renewal", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"subscription_plan_name" : @"string value",
   @"price" : @(1),
   @"currency" : @"string value",
   @"renewal_count" : @(1)
};
[[PushNotificationManager pushManager] postEvent:@"Subscription renewal" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("subscription_plan_name", "string value")
    .putInt("price", 1)
    .putString("currency", "string value")
    .putInt("renewal_count", 1)
    .build()

PushwooshInApp.getInstance().postEvent("Subscription renewal", attributes);
```
</TabItem>
</Tabs>

### Начало бесплатного пробного периода

Активируйте это событие, когда пользователь решает начать бесплатный пробный период перед оформлением подписки.

Рекомендуемые атрибуты:

* free\_trial\_name: String
* expiry\_date: Date

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Free trial started", {
    "free_trial_name": "string value",
    "expiry_date": "new Date()"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "free_trial_name" : "string value",
   "expiry_date" : NSDate()
]
PWInAppManager.shared().postEvent("Free trial started", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"free_trial_name" : @"string value",
   @"expiry_date" : [NSDate date]
};
[[PushNotificationManager pushManager] postEvent:@"Free trial started" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("free_trial_name", "string value")
    .putDate("expiry_date", new Date())
    .build()

PushwooshInApp.getInstance().postEvent("Free trial started", attributes);
```
</TabItem>
</Tabs>

### Подписка отменена

Используйте это событие для отслеживания отмен подписок в приложении.

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Subscription cancelled");
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

PWInAppManager.shared().postEvent("Subscription cancelled", withAttributes: nil)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

[[PushNotificationManager pushManager] postEvent:@"Subscription canceled" withAttributes:@{}];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

PushwooshInApp.getInstance().postEvent("Subscription cancelled");
```
</TabItem>
</Tabs>

### Конверсия из бесплатной версии в платную

Активируйте это событие, как только пользователь переходит с бесплатного использования вашего приложения на платный тарифный план подписки.

Рекомендуемые атрибуты:

* subscription\_plan\_name: String
* price: Integer
* currency: String
* date: Date

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Conversion from Free to Paid", {
    "subscription_plan_name": "string value",
    "price": 1,
    "currency": "string value",
    "date": "new Date()"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "plan_name" : "string value",
   "price" : 1,
   "currency" : "string value",
   "date" : NSDate()
]
PWInAppManager.shared().postEvent("Conversion from Free to Paid", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"subscription_plan_name" : @"string value",
   @"price" : @(1),
   @"currency" : @"string value",
   @"date" : [NSDate date]
};
[[PushNotificationManager pushManager] postEvent:@"Conversion from Free to Paid" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("subscription_plan_name", "string value")
    .putInt("price", 1)
    .putString("currency", "string value")
    .putDate("date", new Date())
    .build()

PushwooshInApp.getInstance().postEvent("Conversion from Free to Paid", attributes);
```
</TabItem>
</Tabs>

## Медиа

### Поиск

Отправляйте это событие, когда пользователь ищет какой-либо контент в вашем приложении.

Рекомендуемые атрибуты:

* search\_query: String
* category: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:
const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Search", {
        "search_query": "string value",
        "category": "string value"
    });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "search_query" : "string value",
   "category" : "string value"
]
PWInAppManager.shared().postEvent("Search", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"search_query" : @"string value",
   @"category" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Search" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("search_query", "string value")
    .putString("category", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Search", attributes);
```
</TabItem>
</Tabs>

### Контент прочитан

Активируйте это событие, когда пользователь прочитал определенный фрагмент контента.

Рекомендуемые атрибуты:

* category: String
* article\_id: String
* author: String
* published\_date: Date

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Content read", {
    "category": "string value",
    "article_id": "string value",
    "author": "string value",
    "published_date": "new Date()"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "category" : "string value",
   "article_id" : "string value",
   "author" : "string value",
   "published_date" : NSDate()
]
PWInAppManager.shared().postEvent("Content read", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"category" : @"string value",
   @"article_id" : @"string value",
   @"author" : @"string value",
   @"published_date" : [NSDate date]
};
[[PushNotificationManager pushManager] postEvent:@"Content read" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("category", "string value")
    .putString("article_id", "string value")
    .putString("author", "string value")
    .putDate("published_date", new Date())
    .build()

PushwooshInApp.getInstance().postEvent("Content read", attributes);
```
</TabItem>
</Tabs>

### Отправка формы

Отслеживайте отправку ваших форм в приложении (например, Net Promoter Score), выбор предпочтений по контенту и другие опросы.

Рекомендуемые атрибуты:

* form\_name: String
* url: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Form submission", {
    "form_name": "string value",
    "url": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "form_name" : "string value",
   "url" : "string value"
]
PWInAppManager.shared().postEvent("Form submission", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"form_name" : @"string value",
   @"url" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Form submission" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("form_name", "string value")
    .putString("url", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Form submission", attributes);
```
</TabItem>
</Tabs>

### Контентом поделились

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

Рекомендуемые атрибуты:

* category: String
* article\_id: String
* author: String
* published\_date: Date
* button\_id: String
* social\_media: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:

const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Content shared", {
    "category": "string value",
    "article_id": "string value",
    "author": "string value",
    "published_date": "new Date()",
    "button_id": "string value",
    "social_media": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "category" : "string value",
   "article_id" : "string value",
   "author" : "string value",
   "published_date" : NSDate(),
   "button_id" : "string value",
   "social_media" : "string value"
]
PWInAppManager.shared().postEvent("Content shared", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"category" : @"string value",
   @"article_id" : @"string value",
   @"author" : @"string value",
   @"published_date" : [NSDate date],
   @"button_id" : @"string value",
   @"social_media" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Content shared" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("category", "string value")
    .putString("article_id", "string value")
    .putString("author", "string value")
    .putDate("published_date", new Date())
    .putString("button_id", "string value")
    .putString("social_media", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Content shared", attributes);
```
</TabItem>
</Tabs>

### Предпочтения по контенту

Активируйте это событие, когда пользователь выбирает определенную тему, которая его интересует.

Рекомендуемые атрибуты:

* topic: String

<Tabs>
<TabItem label="JavaScript">
```javascript
// Для использования с Web Push SDK вы можете интегрировать этот код:
const Pushwoosh = window.Pushwoosh || [];
Pushwoosh.push(function(api) {
    api.postEvent("Content preferences", {
    "topic": "string value"
  });
});
```
</TabItem>

<TabItem label="Swift">
```swift
// Для использования с iOS SDK вы можете интегрировать этот код:

let attributes: [String : Any] = [
   "topic" : "string value"
]
PWInAppManager.shared().postEvent("Content preferences", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
// Для использования с iOS SDK вы можете интегрировать этот код:

NSDictionary *attributes = @{
   @"topic" : @"string value"
};
[[PushNotificationManager pushManager] postEvent:@"Content preferences" withAttributes:attributes];
```
</TabItem>

<TabItem label="Java">
```java
// Для использования с Android SDK вы можете интегрировать этот код:

TagsBundle attributes = new TagsBundle.Builder()
    .putString("topic", "string value")
    .build()

PushwooshInApp.getInstance().postEvent("Content preferences", attributes);
```
</TabItem>
</Tabs>