Saltar al contenido

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 to

Pasos de integración

Anchor link to

1. Añadir el SDK de Unity de Pushwoosh

Anchor link to

Añada lo siguiente a su Packages/manifest.json:

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 plataforma que necesite. Por ejemplo, omita com.pushwoosh.unity.android si solo se dirige a iOS.

2. Instalar el External Dependency Manager

Anchor link to

El SDK requiere el 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 to

Cree un script PushNotificator.cs y adjúntelo a cualquier GameObject en la escena:

PushNotificator.cs
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-XXXXX con su Código de Aplicación de Pushwoosh.
  • XXXXXXXXXXXX con su número de proyecto de Firebase (solo para Android).

4. Configuración nativa de iOS

Anchor link to

4.1 Capacidades

Anchor link to

Despué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 de Time Sensitive Notifications.

4.2 Info.plist

Anchor link to

Añada el Token de API de Dispositivo de Pushwoosh a su Info.plist:

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

4.3 Seguimiento de la entrega de mensajes

Anchor link to

Añada un objetivo de Extensión de Servicio de Notificación 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 objetivo de la extensión.

5. Configuración nativa de Android

Anchor link to

5.1 Añadir archivo de configuración de Firebase

Anchor link to

Coloque el archivo google-services.json en el directorio Assets de su proyecto de Unity.

5.2 Añadir metadatos de Pushwoosh

Anchor link to

Añada el Token de API de Dispositivo de Pushwoosh a su Assets/Plugins/Android/AndroidManifest.xml dentro de la etiqueta <application>:

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

6. Ejecutar el proyecto

Anchor link to
  1. Compile y ejecute el proyecto en su plataforma de destino.
  2. Conceda permiso para las notificaciones push cuando se le solicite.
  3. Vaya al Panel de Control de Pushwoosh y envíe una notificación push.

Integración extendida

Anchor link to

En 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 to

El SDK proporciona dos escuchadores de eventos para manejar las notificaciones push:

  • OnPushNotificationsReceived — se activa cuando llega una notificación push
  • OnPushNotificationsOpened — se activa cuando un usuario toca una notificación

Configure estos escuchadores durante la inicialización del SDK:

PushNotificator.cs
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 to

Personalice las notificaciones push identificando a los usuarios y estableciendo sus propiedades:

// Establecer el ID de usuario para el seguimiento entre dispositivos
Pushwoosh.Instance.SetUserId("user-123");
// Establecer el correo electrónico del usuario
Pushwoosh.Instance.SetEmail("user@example.com");
// Establecer usuario con ID y correo electrónico
Pushwoosh.Instance.SetUser("user-123", new List<string> { "user@example.com" });
// Establecer idioma preferido
Pushwoosh.Instance.SetLanguage("en");

Las etiquetas son pares clave-valor asignados a los dispositivos, lo que permite la segmentación de usuarios y la mensajería dirigida:

// Etiqueta de cadena
Pushwoosh.Instance.SetStringTag("favorite_category", "electronics");
// Etiqueta de entero
Pushwoosh.Instance.SetIntTag("purchase_count", 5);
// Etiqueta de lista
Pushwoosh.Instance.SetListTag("interests", new List<object> { "sports", "music", "tech" });
// Obtener todas las etiquetas
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);
}
});

Rastree las acciones del usuario para analizar el comportamiento y activar mensajes automatizados:

// Rastrear un evento de inicio de sesión
Pushwoosh.Instance.PostEvent("login", new Dictionary<string, object> {
{ "username", "user-123" },
{ "login_type", "email" }
});
// Rastrear un evento de compra
Pushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object> {
{ "product_id", "SKU-001" },
{ "price", 29.99 },
{ "currency", "USD" }
});

Preferencias de comunicación

Anchor link to

Permita a los usuarios optar por recibir o no notificaciones push de forma programática:

// Habilitar la comunicación
Pushwoosh.Instance.SetCommunicationEnabled(true);
// Deshabilitar la comunicación
Pushwoosh.Instance.SetCommunicationEnabled(false);
// Comprobar el estado actual
bool isEnabled = Pushwoosh.Instance.IsCommunicationEnabled();

Gestión de badges

Anchor link to

Controle el número del badge de la aplicación en las plataformas compatibles:

// Establecer el badge a un número específico
Pushwoosh.Instance.SetBadgeNumber(3);
// Incrementar el badge
Pushwoosh.Instance.AddBadgeNumber(1);
// Limpiar el badge
Pushwoosh.Instance.SetBadgeNumber(0);

Solución de problemas

Anchor link to

Si encuentra algún problema durante el proceso de integración, consulte la sección de soporte y comunidad.