Guía de integración básica del SDK de Unity
Esta guía le guiará a través de la integración del SDK de Unity de Pushwoosh en su aplicación.
Prerrequisitos
Anchor link toPasos de integración
Anchor link to1. Añadir el SDK de Unity de Pushwoosh
Anchor link toAñada lo siguiente a su 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"] } ]}Añada solo los paquetes de la plataforma que necesite. Por ejemplo, omita com.pushwoosh.unity.android si solo se dirige a iOS.
En Unity, vaya a Window > Package Manager > + > Add package from git URL y añada las siguientes URLs una por una:
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.iosDescargue Pushwoosh.unitypackage desde GitHub Releases e impórtelo a través de Assets > Import Package > Custom Package.
2. Instalar el External Dependency Manager
Anchor link toEl SDK requiere External Dependency Manager for Unity (EDM4U) para resolver las dependencias nativas de Android e iOS.
Añada el siguiente scoped registry a su Packages/manifest.json:
{ "scopedRegistries": [ { "name": "package.openupm.com", "url": "https://package.openupm.com", "scopes": ["com.google.external-dependency-manager"] } ]}Luego añada el paquete a sus dependencias:
"com.google.external-dependency-manager": "1.2.183"3. Inicializar el SDK
Anchor link toCree un script PushNotificator.cs y adjúntelo a cualquier GameObject en la escena:
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(); }}Reemplace:
XXXXX-XXXXXcon su Pushwoosh Application Code.XXXXXXXXXXXXcon su número de proyecto de Firebase (solo para Android).
4. Configuración nativa de iOS
Anchor link to4.1 Capacidades
Anchor link toDespués de compilar el proyecto de iOS desde Unity, abra el proyecto de Xcode generado y añada las siguientes capacidades en Signing & Capabilities:
- Push Notifications
- Background Modes con Remote notifications marcado
Para las Notificaciones Sensibles al Tiempo (iOS 15+), añada también la capacidad Time Sensitive Notifications.
4.2 Info.plist
Anchor link toAñada el Pushwoosh Device API Token a su Info.plist:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>4.3 Seguimiento de la entrega de mensajes
Anchor link toAñada un target de Notification Service Extension a su proyecto de Xcode. Esto es necesario para un seguimiento preciso de la entrega y para Rich Media en iOS.
Siga la guía nativa para añadir el target de la extensión.
5. Configuración nativa de Android
Anchor link to5.1 Añadir archivo de configuración de Firebase
Anchor link toColoque el archivo google-services.json en el directorio Assets de su proyecto de Unity.
5.2 Añadir metadatos de Pushwoosh
Anchor link toAñada el Pushwoosh Device API Token a su Assets/Plugins/Android/AndroidManifest.xml dentro de la etiqueta <application>:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />6. Ejecutar el proyecto
Anchor link to- Compile y ejecute el proyecto en su plataforma de destino.
- Conceda permiso para las notificaciones push cuando se le solicite.
- Vaya al Panel de Control de Pushwoosh y envíe una notificación push.
Integración extendida
Anchor link toEn esta etapa, puede enviar y recibir notificaciones push. Las secciones a continuación cubren la funcionalidad principal del SDK.
Escuchadores de eventos de notificaciones push
Anchor link toEl SDK proporciona dos escuchadores de eventos para manejar las notificaciones push:
OnPushNotificationsReceived— se activa cuando llega una notificación pushOnPushNotificationsOpened— se activa cuando un usuario toca una notificación
Configure estos escuchadores durante la inicialización del 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();}Configuración de usuario
Anchor link toPersonalice las notificaciones push identificando a los usuarios y estableciendo sus propiedades:
// Establecer el ID de usuario para el seguimiento entre dispositivosPushwoosh.Instance.SetUserId("user-123");
// Establecer el email del usuarioPushwoosh.Instance.SetEmail("user@example.com");
// Establecer el usuario con ID y emailPushwoosh.Instance.SetUser("user-123", new List<string> { "user@example.com" });
// Establecer el idioma preferidoPushwoosh.Instance.SetLanguage("en");Etiquetas
Anchor link toLas etiquetas son pares clave-valor asignados a los dispositivos, lo que permite la segmentación de usuarios y la mensajería dirigida:
// Etiqueta de cadenaPushwoosh.Instance.SetStringTag("favorite_category", "electronics");
// Etiqueta de enteroPushwoosh.Instance.SetIntTag("purchase_count", 5);
// Etiqueta de listaPushwoosh.Instance.SetListTag("interests", new List<object> { "sports", "music", "tech" });
// Obtener todas las etiquetasPushwoosh.Instance.GetTags((tags, error) => { if (error != null) { Debug.Log("Error: " + error.Message); return; } foreach (var tag in tags) { Debug.Log(tag.Key + ": " + tag.Value); }});Eventos
Anchor link toRastree las acciones del usuario para analizar el comportamiento y activar mensajes automatizados:
// Rastrear un evento de inicio de sesiónPushwoosh.Instance.PostEvent("login", new Dictionary<string, object> { { "username", "user-123" }, { "login_type", "email" }});
// Rastrear un evento de compraPushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object> { { "product_id", "SKU-001" }, { "price", 29.99 }, { "currency", "USD" }});Preferencias de comunicación
Anchor link toPermita que los usuarios opten por recibir o no notificaciones push de forma programática:
// Habilitar la comunicaciónPushwoosh.Instance.SetCommunicationEnabled(true);
// Deshabilitar la comunicaciónPushwoosh.Instance.SetCommunicationEnabled(false);
// Comprobar el estado actualbool isEnabled = Pushwoosh.Instance.IsCommunicationEnabled();Gestión de insignias
Anchor link toControle el número de la insignia de la aplicación en las plataformas compatibles:
// Establecer la insignia a un número específicoPushwoosh.Instance.SetBadgeNumber(3);
// Incrementar la insigniaPushwoosh.Instance.AddBadgeNumber(1);
// Limpiar la insigniaPushwoosh.Instance.SetBadgeNumber(0);Solución de problemas
Anchor link toSi encuentra algún problema durante el proceso de integración, consulte la sección de soporte y comunidad.