Базовое руководство по интеграции 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 Releases и импортируйте через 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 в ваш проект Xcode. Это необходимо для точного отслеживания доставки и Rich Media на iOS.
Следуйте нативному руководству, чтобы добавить таргет расширения.
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();Управление бейджами
Anchor link toУправляйте числом на бейдже приложения на поддерживаемых платформах:
// Установить бейдж на определенное числоPushwoosh.Instance.SetBadgeNumber(3);
// Увеличить бейджPushwoosh.Instance.AddBadgeNumber(1);
// Очистить бейджPushwoosh.Instance.SetBadgeNumber(0);Устранение неполадок
Anchor link toЕсли у вас возникнут какие-либо проблемы в процессе интеграции, обратитесь к разделу поддержки и сообщества.