Базовое руководство по интеграции Unity SDK
В этом руководстве рассказывается, как интегрировать Pushwoosh Unity SDK в ваше приложение.
Предварительные требования
Anchor link toШаги интеграции
Anchor link to1. Добавьте Pushwoosh Unity SDK
Anchor link toДобавьте следующее в ваш файл Packages/manifest.json:
{ "dependencies": { "com.pushwoosh.unity.core": "6.2.7", "com.pushwoosh.unity.android": "6.2.7", "com.pushwoosh.unity.ios": "6.2.7" }, "scopedRegistries": [ { "name": "npmjs", "url": "https://registry.npmjs.org", "scopes": ["com.pushwoosh"] } ]}Добавляйте только те пакеты платформ, которые вам нужны. Например, опустите com.pushwoosh.unity.android, если вы ориентируетесь только на iOS.
В Unity перейдите в Window > Package Manager > + > Add package from git URL и добавьте следующие URL-адреса один за другим:
https://github.com/Pushwoosh/pushwoosh-unity.git?path=com.pushwoosh.unity.corehttps://github.com/Pushwoosh/pushwoosh-unity.git?path=com.pushwoosh.unity.androidhttps://github.com/Pushwoosh/pushwoosh-unity.git?path=com.pushwoosh.unity.iosЗагрузите Pushwoosh.unitypackage из релизов на GitHub и импортируйте через Assets > Import Package > Custom Package.
2. Установите External Dependency Manager
Anchor link toSDK требует External Dependency Manager for Unity (EDM4U) для разрешения нативных зависимостей Android и iOS.
Добавьте следующий scoped registry в ваш файл Packages/manifest.json:
{ "scopedRegistries": [ { "name": "package.openupm.com", "url": "https://package.openupm.com", "scopes": ["com.google.external-dependency-manager"] } ]}Затем добавьте пакет в ваши зависимости:
"com.google.external-dependency-manager": "1.2.183"3. Инициализируйте SDK
Anchor link toСоздайте скрипт PushNotificator.cs и прикрепите его к любому GameObject на сцене:
using UnityEngine;using System.Collections.Generic;
public class PushNotificator : MonoBehaviour{ void Start() { Pushwoosh.ApplicationCode = "XXXXX-XXXXX"; Pushwoosh.FcmProjectNumber = "XXXXXXXXXXXX";
Pushwoosh.Instance.OnRegisteredForPushNotifications += (token) => { Debug.Log("Push token: " + token); };
Pushwoosh.Instance.OnFailedToRegisteredForPushNotifications += (error) => { Debug.Log("Registration failed: " + error); };
Pushwoosh.Instance.RegisterForPushNotifications(); }}Замените:
XXXXX-XXXXXна ваш Pushwoosh Application Code.XXXXXXXXXXXXна номер вашего проекта Firebase (только для Android).
4. Нативная настройка для iOS
Anchor link to4.1 Capabilities
Anchor link toПосле сборки проекта iOS из Unity откройте сгенерированный проект Xcode и добавьте следующие capabilities в Signing & Capabilities:
- Push Notifications
- Background Modes с отмеченным пунктом Remote notifications
Для Time Sensitive Notifications (iOS 15+) также добавьте capability Time Sensitive Notifications.
4.2 Info.plist
Anchor link toДобавьте Pushwoosh Device API Token в ваш Info.plist:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>4.3 Отслеживание доставки сообщений
Anchor link toДобавьте Notification Service Extension target в ваш проект Xcode. Это необходимо для точного отслеживания доставки и Rich Media на iOS.
Следуйте нативному руководству, чтобы добавить extension target.
5. Нативная настройка для Android
Anchor link to5.1 Добавьте файл конфигурации Firebase
Anchor link toПоместите файл google-services.json в директорию Assets вашего проекта Unity.
5.2 Добавьте метаданные Pushwoosh
Anchor link toДобавьте Pushwoosh Device API Token в ваш файл Assets/Plugins/Android/AndroidManifest.xml внутри тега <application>:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />6. Запустите проект
Anchor link to- Соберите и запустите проект на целевой платформе.
- Предоставьте разрешение на получение push-уведомлений при запросе.
- Перейдите в панель управления Pushwoosh и отправьте push-уведомление.
Расширенная интеграция
Anchor link toНа этом этапе вы можете отправлять и получать push-уведомления. В разделах ниже рассматривается основная функциональность SDK.
Слушатели событий push-уведомлений
Anchor link toSDK предоставляет два слушателя событий для обработки push-уведомлений:
OnPushNotificationsReceived— срабатывает при поступлении push-уведомленияOnPushNotificationsOpened— срабатывает, когда пользователь нажимает на уведомление
Настройте этих слушателей во время инициализации SDK:
void Start(){ Pushwoosh.ApplicationCode = "XXXXX-XXXXX"; Pushwoosh.FcmProjectNumber = "XXXXXXXXXXXX";
Pushwoosh.Instance.OnPushNotificationsReceived += (payload) => { Debug.Log("Push received: " + payload); };
Pushwoosh.Instance.OnPushNotificationsOpened += (payload) => { Debug.Log("Push opened: " + payload); };
Pushwoosh.Instance.RegisterForPushNotifications();}Конфигурация пользователя
Anchor link toПерсонализируйте push-уведомления, идентифицируя пользователей и устанавливая их свойства:
// Установить User ID для отслеживания на разных устройствахPushwoosh.Instance.SetUserId("user-123");
// Установить email пользователяPushwoosh.Instance.SetEmail("user@example.com");
// Установить пользователя с ID и emailPushwoosh.Instance.SetUser("user-123", new List<string> { "user@example.com" });
// Установить предпочитаемый языкPushwoosh.Instance.SetLanguage("en");Теги
Anchor link toТеги — это пары ключ-значение, присваиваемые устройствам, которые позволяют сегментировать пользователей и отправлять целевые сообщения:
// Строковый тегPushwoosh.Instance.SetStringTag("favorite_category", "electronics");
// Целочисленный тегPushwoosh.Instance.SetIntTag("purchase_count", 5);
// Тег-списокPushwoosh.Instance.SetListTag("interests", new List<object> { "sports", "music", "tech" });
// Получить все тегиPushwoosh.Instance.GetTags((tags, error) => { if (error != null) { Debug.Log("Error: " + error.Message); return; } foreach (var tag in tags) { Debug.Log(tag.Key + ": " + tag.Value); }});События
Anchor link toОтслеживайте действия пользователей для анализа поведения и запуска автоматизированных сообщений:
// Отследить событие входаPushwoosh.Instance.PostEvent("login", new Dictionary<string, object> { { "username", "user-123" }, { "login_type", "email" }});
// Отследить событие покупкиPushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object> { { "product_id", "SKU-001" }, { "price", 29.99 }, { "currency", "USD" }});Настройки коммуникации
Anchor link toПозвольте пользователям программно подписываться на push-уведомления или отписываться от них:
// Включить коммуникациюPushwoosh.Instance.SetCommunicationEnabled(true);
// Отключить коммуникациюPushwoosh.Instance.SetCommunicationEnabled(false);
// Проверить текущее состояниеbool isEnabled = Pushwoosh.Instance.IsCommunicationEnabled();Управление значком приложения (badge)
Anchor link toУправляйте числом на значке приложения на поддерживаемых платформах:
// Установить конкретное число на значкеPushwoosh.Instance.SetBadgeNumber(3);
// Увеличить число на значкеPushwoosh.Instance.AddBadgeNumber(1);
// Очистить значокPushwoosh.Instance.SetBadgeNumber(0);Устранение неполадок
Anchor link toЕсли у вас возникнут какие-либо проблемы в процессе интеграции, обратитесь к разделу поддержки и сообщества.