Saltar al contenido

Guía de integración básica del SDK de Unity

Esta sección contiene información sobre cómo integrar el SDK de Pushwoosh para Unity en su aplicación.

Prerrequisitos

Anchor link to

Para integrar el SDK de Pushwoosh para Unity en su aplicación, necesitará lo siguiente:

Pasos de integración

Anchor link to

1. Añadir la dependencia del SDK de Pushwoosh para Unity

Anchor link to

Importe el plugin de notificaciones push de Unity en su carpeta Assets en Unity.

2. Inicialización del SDK de Unity

Anchor link to

Cree el script PushNotificator.cs y adjúntelo al Camera Object en la escena. En el script:

  • Inicialice el SDK de Pushwoosh con el código de la aplicación y el número de proyecto de Firebase.
  • Llame a RegisterForPushNotifications() en su lógica de inicialización para registrarse para recibir notificaciones push.
  • Añada manejadores de eventos de registro para gestionar los eventos de registro de 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);
}
}

Donde:

  • __YOUR_APP_ID__ es el código de la aplicación del Panel de Control de Pushwoosh.
  • __YOUR_FCM_SENDER_ID__ es el número de proyecto de Firebase desde la Consola de Firebase.

3. Configuración nativa de iOS

Anchor link to

3.1 Capacidades

Anchor link to

Para habilitar las Notificaciones Push en su proyecto, necesita añadir ciertas capacidades.

En la sección Signing & Capabilities, añada las siguientes capacidades:

  • Push Notifications
  • Background Modes. Después de añadir esta capacidad, marque la casilla para Remote notifications.

Si tiene la intención de usar Notificaciones Sensibles al Tiempo (iOS 15+), añada también la capacidad Time Sensitive Notifications.

3.2 Info.plist

Anchor link to

En su Runner/Info.plist establezca la clave __PUSHWOOSH_DEVICE_API_TOKEN__ al Token de API de Dispositivo de Pushwoosh:

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

3.3 Seguimiento de la entrega de mensajes

Anchor link to

Debe añadir un objetivo de Extensión de Servicio de Notificación a su proyecto. Esto es esencial para un seguimiento preciso de la entrega y para características como Rich Media en iOS.

Siga los pasos de la guía nativa para añadir el objetivo de la extensión y el código de Pushwoosh necesario dentro de ella.

4. Configuración nativa de Android

Anchor link to

4.1 Añadir archivo de configuración de Firebase

Anchor link to

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

4.2 Ajustar la configuración de compilación

Anchor link to

En la sección Publishing Settings de su perfil de compilación de Android, habilite la opción Custom Main Manifest.

4.3 Añadir metadatos de Pushwoosh

Anchor link to

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

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

Importante: Asegúrese de dar al token acceso a la aplicación correcta en su Panel de Control de Pushwoosh. Aprenda más

5. Integración con la Tienda de Windows

Anchor link to
  1. Añada link.xml a su directorio Assets/ con el siguiente contenido:
<linker>
<assembly fullname="PushSDK" preserve="all"/>
</linker>
  1. También necesita Asociar la aplicación con la Tienda en el proyecto exportado de Visual Studio. Asegúrese de que su aplicación esté firmada con un certificado que coincida con su Identidad de Editor.

Opte por la capacidad de Internet (Cliente) en la pestaña Capacidades de su .appxmanifest en el proyecto exportado de Visual Studio.

6. Ejecutar el proyecto

Anchor link to
  1. Compile y ejecute el proyecto.
  2. Vaya al Panel de Control de Pushwoosh y envíe una notificación push.
  3. Debería ver la notificación en la aplicación.

Integración extendida

Anchor link to

En esta etapa, ya ha integrado el SDK y puede enviar y recibir notificaciones push. Ahora, exploremos la funcionalidad principal

Escuchadores de eventos de notificación push

Anchor link to

En el SDK de Pushwoosh hay dos escuchadores de eventos, diseñados para manejar notificaciones push:

  • El evento OnPushNotificationsReceived se activa cuando se recibe una notificación push
  • El evento OnPushNotificationsOpened se activa cuando un usuario abre una notificación

Debe configurar estos escuchadores de eventos justo después de la inicialización del SDK en el 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);
}

Configuración de usuario

Anchor link to

Al centrarse en el comportamiento y las preferencias individuales de los usuarios, puede entregar contenido personalizado, lo que conduce a una mayor satisfacción y lealtad del usuario

public class Registration {
public void afterUserLogin(User user) {
// Set user ID
Pushwoosh.Instance.SetUserId(user.getId());
// Set user email
Pushwoosh.Instance.SetEmail(user.getEmail());
// Setting additional user information as tags for Pushwoosh
Pushwoosh.Instance.SetIntTag("Age", user.getAge());
Pushwoosh.Instance.SetStringTag("Name", user.getName());
Pushwoosh.Instance.SetStringTag("LastLoginDate", user.getLastLoginDate());
}
}

Los tags son pares clave-valor asignados a usuarios o dispositivos, que permiten la segmentación basada en atributos como preferencias o comportamiento, habilitando la mensajería dirigida.

public class UpdateUser {
public void afterUserUpdateProfile(User user) {
// Set list of favorite categories
Pushwoosh.Instance.SetListTag(
"favorite_categories": user.getFavoriteCategoriesList()
);
// Set payment information
Pushwoosh.Instance.SetStringTag("is_subscribed", user.isSubscribed());
Pushwoosh.Instance.SetStringTag("payment_status", user.getPaymentStatus());
Pushwoosh.Instance.SetStringTag("billing_address", user.getBillingAddress());
}
}

Los eventos son acciones específicas del usuario u ocurrencias dentro de la aplicación que se pueden rastrear para analizar el comportamiento y activar los mensajes o acciones correspondientes

public class Registration {
// Track login event
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) {
// Track purchase event
Pushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object>() {
{ "product_id", product.getId() },
{ "product_name", product.getName() },
{ "price", product.getPrice() },
{ "quantity", product.getQuantity() }
});
}
}

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.