Перейти к содержанию

Руководство по базовой интеграции Unity SDK

В этом разделе содержится информация о том, как интегрировать Pushwoosh Unity SDK в ваше приложение.

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

Anchor link to

Для интеграции Pushwoosh Unity SDK в ваше приложение вам понадобится следующее:

Шаги интеграции

Anchor link to

1. Добавьте зависимость Pushwoosh Unity SDK

Anchor link to

Импортируйте плагин push-уведомлений для Unity в папку Assets в Unity.

2. Инициализация Unity SDK

Anchor link to

Создайте скрипт PushNotificator.cs и прикрепите его к Camera Object на сцене. В скрипте:

  • Инициализируйте Pushwoosh SDK с кодом приложения и номером проекта Firebase.
  • Вызовите RegisterForPushNotifications() в вашей логике инициализации для регистрации на получение push-уведомлений.
  • Добавьте обработчики событий регистрации для управления событиями регистрации push-уведомлений:
PushNotificator.cs
using UnityEngine;
using UnityEngine.UI;
public class PushNotificator : MonoBehaviour {
void Start () {
Pushwoosh.ApplicationCode = "__YOUR_APP_ID__";
Pushwoosh.FcmProjectNumber = "__YOUR_FCM_SENDER_ID__";
Pushwoosh.Instance.OnRegisteredForPushNotifications += OnRegisteredForPushNotifications;
Pushwoosh.Instance.OnFailedToRegisteredForPushNotifications += OnFailedToRegisteredForPushNotifications;
Pushwoosh.Instance.RegisterForPushNotifications();
}
void OnRegisteredForPushNotifications(string token) {
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "Received token: \n{0}", token);
}
void OnFailedToRegisteredForPushNotifications(string error) {
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "Error ocurred while registering to push notifications: \n{0}", error);
}
}

Где:

  • __YOUR_APP_ID__ — это код приложения из Панели управления Pushwoosh.
  • __YOUR_FCM_SENDER_ID__ — это номер проекта Firebase из Firebase Console.

3. Нативная настройка для iOS

Anchor link to

3.1 Capabilities

Anchor link to

Чтобы включить Push-уведомления в вашем проекте, необходимо добавить определенные capabilities.

В разделе Signing & Capabilities добавьте следующие capabilities:

  • Push Notifications
  • Background Modes. После добавления этой capability отметьте флажок Remote notifications.

Если вы планируете использовать Time Sensitive Notifications (iOS 15+), также добавьте capability Time Sensitive Notifications.

3.2 Info.plist

Anchor link to

В вашем Runner/Info.plist установите ключ __PUSHWOOSH_DEVICE_API_TOKEN__ в значение Pushwoosh Device API Token:

info.plist
<key>Pushwoosh_API_TOKEN</key>
<string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>

3.3 Отслеживание доставки сообщений

Anchor link to

Вы должны добавить таргет Notification Service Extension в ваш проект. Это необходимо для точного отслеживания доставки и использования таких функций, как Rich Media на iOS.

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

4. Нативная настройка для Android

Anchor link to

4.1 Добавьте конфигурационный файл Firebase

Anchor link to

Поместите файл google-services.json в папку Assets в каталоге вашего проекта.

4.2 Настройте параметры сборки

Anchor link to

В разделе Publishing Settings вашего профиля сборки Android включите опцию Custom Main Manifest.

4.3 Добавьте метаданные Pushwoosh

Anchor link to

В вашем Assets/Plugins/Android/AndroidManifest.xml добавьте Pushwoosh Device API Token внутри тега <application>:

AndroidManifest.xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

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

5. Интеграция с Windows Store

Anchor link to
  1. Добавьте link.xml в ваш каталог Assets/ со следующим содержимым:
<linker>
<assembly fullname="PushSDK" preserve="all"/>
</linker>
  1. Вам также необходимо связать приложение с магазином (Associate App with the Store) в экспортированном проекте Visual Studio. Убедитесь, что ваше приложение подписано сертификатом, соответствующим вашему Publisher Identity.

Включите capability Internet (Client) на вкладке Capabilities вашего .appxmanifest в экспортированном проекте Visual Studio.

6. Запустите проект

Anchor link to
  1. Соберите и запустите проект.
  2. Перейдите в Панель управления Pushwoosh и отправьте push-уведомление.
  3. Вы должны увидеть уведомление в приложении.

Расширенная интеграция

Anchor link to

На этом этапе вы уже интегрировали SDK и можете отправлять и получать push-уведомления. Теперь давайте рассмотрим основную функциональность.

Слушатели событий push-уведомлений

Anchor link to

В Pushwoosh SDK есть два слушателя событий, предназначенных для обработки push-уведомлений:

  • Событие OnPushNotificationsReceived срабатывает, когда получено push-уведомление
  • Событие OnPushNotificationsOpened срабатывает, когда пользователь открывает уведомление

Вам следует настроить эти слушатели событий сразу после инициализации SDK в PushNotificator.cs:

PushNotificator.cs
using UnityEngine;
using UnityEngine.UI;
public class PushNotificator : MonoBehaviour {
void Start () {
Pushwoosh.ApplicationCode = "__YOUR_APP_ID__";
Pushwoosh.FcmProjectNumber = "__YOUR_FCM_SENDER_ID__";
Pushwoosh.Instance.OnPushNotificationsReceived += OnPushNotificationsReceived;
Pushwoosh.Instance.OnPushNotificationsOpened += OnPushNotificationsOpened;
Pushwoosh.Instance.RegisterForPushNotifications();
}
void OnPushNotificationsReceived(string payload) {
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "Received push notificaiton: \n{0}", payload);
}
void OnPushNotificationsOpened(string payload) {
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "Opened push notificaiton: \n{0}", payload);
}

Конфигурация пользователя

Anchor link to

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

public class Registration {
public void afterUserLogin(User user) {
// Установить User ID
Pushwoosh.Instance.SetUserId(user.getId());
// Установить email пользователя
Pushwoosh.Instance.SetEmail(user.getEmail());
// Установка дополнительной информации о пользователе в качестве тегов для Pushwoosh
Pushwoosh.Instance.SetIntTag("Age", user.getAge());
Pushwoosh.Instance.SetStringTag("Name", user.getName());
Pushwoosh.Instance.SetStringTag("LastLoginDate", user.getLastLoginDate());
}
}

Теги — это пары «ключ-значение», присваиваемые пользователям или устройствам, которые позволяют сегментировать аудиторию по таким атрибутам, как предпочтения или поведение, для отправки целевых сообщений.

public class UpdateUser {
public void afterUserUpdateProfile(User user) {
// Установить список любимых категорий
Pushwoosh.Instance.SetListTag(
"favorite_categories": user.getFavoriteCategoriesList()
);
// Установить платежную информацию
Pushwoosh.Instance.SetStringTag("is_subscribed", user.isSubscribed());
Pushwoosh.Instance.SetStringTag("payment_status", user.getPaymentStatus());
Pushwoosh.Instance.SetStringTag("billing_address", user.getBillingAddress());
}
}

События

Anchor link to

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

public class Registration {
// Отслеживать событие входа
public void afterUserLogin(User user) {
Pushwoosh.Instance.PostEvent("login", new Dictionary<string, object>() {
{ "name", user.getName() },
{ "last_login", user.getLastLoginDate() }
});
}
public void afterUserPurchase(Product product) {
// Отслеживать событие покупки
Pushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object>() {
{ "product_id", product.getId() },
{ "product_name", product.getName() },
{ "price", product.getPrice() },
{ "quantity", product.getQuantity() }
});
}
}

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

Anchor link to

Если у вас возникнут какие-либо проблемы в процессе интеграции, обратитесь к разделу поддержки и сообщества.