Guide d'intégration de base du SDK Unity
Ce guide vous explique comment intégrer le SDK Pushwoosh pour Unity dans votre application.
Prérequis
Anchor link toÉtapes d’intégration
Anchor link to1. Ajouter le SDK Pushwoosh pour Unity
Anchor link toAjoutez ce qui suit à votre fichier Packages/manifest.json :
{ "dependencies": { "com.pushwoosh.unity.core": "6.3.0", "com.pushwoosh.unity.android": "6.3.0", "com.pushwoosh.unity.ios": "6.3.0" }, "scopedRegistries": [ { "name": "npmjs", "url": "https://registry.npmjs.org", "scopes": ["com.pushwoosh"] } ]}N’ajoutez que les paquets de plateforme dont vous avez besoin. Par exemple, omettez com.pushwoosh.unity.android si vous ne ciblez que iOS.
Dans Unity, allez dans Window > Package Manager > + > Add package from git URL et ajoutez les URL suivantes une par une :
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.iosTéléchargez Pushwoosh.unitypackage depuis les Releases GitHub et importez-le via Assets > Import Package > Custom Package.
2. Installer l’External Dependency Manager
Anchor link toLa partie Android du SDK nécessite External Dependency Manager for Unity (EDM4U) pour résoudre les dépendances Android natives. Ignorez cette étape si vous ciblez uniquement iOS.
Ajoutez le registre de portée suivant à votre Packages/manifest.json :
{ "scopedRegistries": [ { "name": "package.openupm.com", "url": "https://package.openupm.com", "scopes": ["com.google.external-dependency-manager"] } ]}Ensuite, ajoutez le paquet à vos dépendances :
"com.google.external-dependency-manager": "1.2.183"3. Choisir comment le SDK iOS est ajouté
Anchor link toPar défaut, l’export iOS récupère le SDK natif depuis le package Swift Pushwoosh-XCFramework avec Swift Package Manager. Vous n’avez besoin ni de CocoaPods ni d’EDM4U pour iOS, et vous n’exécutez pas pod install.
Pour changer la source du SDK iOS ou ajouter des modules optionnels, ouvrez Window > Pushwoosh SDK Setup dans l’éditeur Unity :
- Dans iOS SDK from, sélectionnez Swift Package Manager ou CocoaPods.
- Avec Swift Package Manager, sous Modules (Swift Package Manager only), sélectionnez les modules optionnels utilisés par votre application :
PushwooshLiveActivities,PushwooshInboxKit,PushwooshInApp,PushwooshVoIP,PushwooshForegroundPush,PushwooshKeychain,PushwooshGRPC,PushwooshGeozones. Les modules sont liés à la cible de l’application. Pour utiliser un module dans votre propre extension d’application, ajoutez-le à la cible de l’extension dans Xcode. Avec CocoaPods, l’export se fait sans ces modules.
L’export revient à CocoaPods, et la console Unity indique la raison, dans l’un des cas suivants :
- CocoaPods est sélectionné dans Window > Pushwoosh SDK Setup.
- Le projet contient déjà un pod
PushwooshXCFramework, dans un fichier*Dependencies.xmllu par EDM4U ou dans le Podfile. Pour passer à Swift Package Manager, supprimez ce pod. Pour Geozones, supprimez le podPushwooshXCFramework/Geozoneset sélectionnezPushwooshGeozonesdans Window > Pushwoosh SDK Setup. - La version d’Unity est antérieure à 2021.3.15.
- Target minimum iOS Version est inférieure à 15.0.
Avec CocoaPods, EDM4U n’est pas requis. Le SDK exécute pod install après l’export et génère lui-même le Podfile, sauf si EDM4U est installé et écrit le Podfile à sa place. Si pod install échoue, la console Unity affiche l’erreur. Exécutez pod install dans le dossier du projet Xcode exporté.
Si votre environnement de build ne peut pas accéder à github.com, Xcode ne peut pas résoudre le package Swift. Sélectionnez CocoaPods dans Window > Pushwoosh SDK Setup pour ces builds.
L’export Swift Package Manager conserve Unity-iPhone.xcworkspace : les scripts de build et la CI qui compilent le workspace fonctionnent sans modification.
4. Initialiser le SDK
Anchor link toCréez un script PushNotificator.cs et attachez-le à n’importe quel GameObject de la scène :
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(); }}Remplacez :
XXXXX-XXXXXpar votre Code d’Application Pushwoosh.XXXXXXXXXXXXpar votre numéro de projet Firebase (Android uniquement).
5. Configuration native pour iOS
Anchor link to5.1 Capacités
Anchor link toAprès avoir compilé le projet iOS depuis Unity, ouvrez le projet Xcode généré et ajoutez les capacités suivantes dans Signing & Capabilities :
- Notifications Push
- Modes d’arrière-plan avec Notifications à distance coché
Pour les notifications urgentes (iOS 15+), ajoutez également la capacité Time Sensitive Notifications.
5.2 Info.plist
Anchor link toAjoutez le Jeton d’API d’Appareil Pushwoosh à votre Info.plist :
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>5.3 Suivi de la livraison des messages
Anchor link toAjoutez une cible d’extension de service de notification à votre projet Xcode. Ceci est requis pour un suivi précis de la livraison et pour les Rich Media sur iOS.
Suivez le guide natif pour ajouter la cible d’extension.
6. Configuration native pour Android
Anchor link to6.1 Ajouter le fichier de configuration Firebase
Anchor link toPlacez le fichier google-services.json dans le répertoire Assets de votre projet Unity.
6.2 Ajouter les métadonnées Pushwoosh
Anchor link toAjoutez le Jeton d’API d’Appareil Pushwoosh à votre Assets/Plugins/Android/AndroidManifest.xml à l’intérieur de la balise <application> :
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />7. Exécuter le projet
Anchor link to- Compilez et exécutez le projet sur votre plateforme cible.
- Accordez l’autorisation pour les notifications push lorsque vous y êtes invité.
- Allez dans le Panneau de Contrôle Pushwoosh et envoyez une notification push.
Intégration étendue
Anchor link toÀ ce stade, vous pouvez envoyer et recevoir des notifications push. Les sections ci-dessous couvrent les fonctionnalités de base du SDK.
Écouteurs d’événements de notification push
Anchor link toLe SDK fournit deux écouteurs d’événements pour gérer les notifications push :
OnPushNotificationsReceived— déclenché lorsqu’une notification push arriveOnPushNotificationsOpened— déclenché lorsqu’un utilisateur appuie sur une notification
Configurez ces écouteurs lors de l’initialisation du 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();}Configuration de l’utilisateur
Anchor link toPersonnalisez les notifications push en identifiant les utilisateurs et en définissant leurs propriétés :
// Définir l'ID utilisateur pour le suivi multi-appareilsPushwoosh.Instance.SetUserId("user-123");
// Définir l'e-mail de l'utilisateurPushwoosh.Instance.SetEmail("user@example.com");
// Définir l'utilisateur avec à la fois un ID et un e-mailPushwoosh.Instance.SetUser("user-123", new List<string> { "user@example.com" });
// Définir la langue préféréePushwoosh.Instance.SetLanguage("en");Tags
Anchor link toLes tags sont des paires clé-valeur assignées aux appareils, permettant la segmentation des utilisateurs et l’envoi de messages ciblés :
// Tag de type chaîne de caractèresPushwoosh.Instance.SetStringTag("favorite_category", "electronics");
// Tag de type entierPushwoosh.Instance.SetIntTag("purchase_count", 5);
// Tag de type listePushwoosh.Instance.SetListTag("interests", new List<object> { "sports", "music", "tech" });
// Obtenir tous les tagsPushwoosh.Instance.GetTags((tags, error) => { if (error != null) { Debug.Log("Error: " + error.Message); return; } foreach (var tag in tags) { Debug.Log(tag.Key + ": " + tag.Value); }});Événements
Anchor link toSuivez les actions des utilisateurs pour analyser leur comportement et déclencher des messages automatisés :
// Suivre un événement de connexionPushwoosh.Instance.PostEvent("login", new Dictionary<string, object> { { "username", "user-123" }, { "login_type", "email" }});
// Suivre un événement d'achatPushwoosh.Instance.PostEvent("purchase", new Dictionary<string, object> { { "product_id", "SKU-001" }, { "price", 29.99 }, { "currency", "USD" }});Préférences de communication
Anchor link toPermettez aux utilisateurs d’accepter ou de refuser les notifications push de manière programmatique :
// Activer la communicationPushwoosh.Instance.SetCommunicationEnabled(true);
// Désactiver la communicationPushwoosh.Instance.SetCommunicationEnabled(false);
// Vérifier l'état actuelbool isEnabled = Pushwoosh.Instance.IsCommunicationEnabled();Gestion des badges
Anchor link toContrôlez le numéro du badge de l’application sur les plateformes prises en charge :
// Définir le badge à un nombre spécifiquePushwoosh.Instance.SetBadgeNumber(3);
// Incrémenter le badgePushwoosh.Instance.AddBadgeNumber(1);
// Effacer le badgePushwoosh.Instance.SetBadgeNumber(0);Dépannage
Anchor link toSi un push n’est pas délivré, recherchez le code d’erreur de votre plateforme dans Erreurs d’envoi pour savoir ce qu’il signifie et comment le corriger.
Si vous rencontrez des problèmes lors du processus d’intégration, consultez la section support et communauté.