Schnellstart für Pushbenachrichtigungen
Pushbenachrichtigungen von PlayFab werden durch eine Verknüpfung von drei Hauptsystemen aktiviert:
- Das Gerätebetriebssystem des Spielers (Android, iOS usw.)
- Der anbieterspezifische Kanal (Google, Apple usw.)
- Plattformübergreifendes Nachrichtenrouting (PlayFab über Amazon Simple Notification Service [SNS]).
Notiz
Wenn eines dieser Systeme nicht mehr verknüpft ist, erhalten Clients keine Benachrichtigungen mehr. Es ist ziemlich einfach, versehentlich eines der drei Systeme zu ändern und die Verbindung zu unterbrechen. Darüber hinaus ist es schwierig, an jedem einzelnen Punkt des Flusses zu wissen, ob alle Systeme ordnungsgemäß konfiguriert sind.
Das PlayFab-Pushroutingsystem
Jeder PlayFab-Titel kann einen Google -Benachrichtigungskanal (GCM) und einen Apple Push -Benachrichtigungskanal (APNS, APNS_SANDBOX) zu einem bestimmten Zeitpunkt aktivieren. Diese können auf eine von zwei Arten konfiguriert werden:
- Verwenden der Benutzeroberfläche im Game Manager unter Einstellungen –> Pushbenachrichtigungen.
- Verwenden von PlayFab Admin API - SetupPushNotification.
Ausführlichere Informationen zum Setup finden Sie in den folgenden Tutorials:
Pushnachrichten im Spiel
Pushnachrichten variieren je nach Entwicklungsmodul/-plattform. Die einfachste Möglichkeit zum Empfangen von Pushbenachrichtigungen ist jedoch die Verwendung eines Unity-Projekts mit unserem SDK und dem Firebase Cloud Messaging (FCM)-Plug-In für Android oder nur Unity für iOS.
- Empfangen von Push unter Android : Hierfür ist ein Plug-In erforderlich. Das am besten unterstützte Plug-In ist das native FCM-Plug-In.
- Empfangen von Push unter iOS : Dies erfordert kein Plug-In für einfache Pushnachrichten.
Tipp
Anweisungen zum Einrichten des FCM Unity-Plug-Ins oder zum Pushen auf Android Studio finden Sie in der FCM-Dokumentation.
Testen des Setups
Nachdem Sie Ihren Titel und Client konfiguriert haben, können Sie Ihre Konfiguration mithilfe der PlayFab-Server-API SendPushNotification testen. Mit dieser API können Sie beliebig viele Pushbenachrichtigungen ohne zusätzliche Kosten senden.
Sie können den PlayFab CloudScript-Dienst als schnelle und sichere Server-API-Umgebung verwenden. Von dort aus können push-Benachrichtigungen nach Bedarf gesendet werden.
Um diese Methode zum Testen Ihrer Konfiguration zu verwenden, laden Sie den Code im folgenden Beispiel hoch, oder fügen Sie diesen an das CloudScript Ihres Titels an.
Beispiel
Stellen Sie sich folgenden Fall vor:
Spieler in Ihrem Titel können auf eine Bestenliste zugreifen, die auf Rangstatistiken basiert.
Jeder Spieler kann 1 CH-Währung zahlen und einen anderen Spieler herausfordern, der bis zu 5 Positionen vom aktuellen Spieler entfernt ist.
Betrachten Sie zunächst eine virtuelle Währung, wie im folgenden Beispielscreenshot gezeigt (Informationen zum Definieren einer virtuellen Währung finden Sie im Tutorial währungen ).
Betrachten Sie nun die folgenden Statistiken, die für jeden Spieler definiert sind (informationen zum Generieren einer Test-Bestenliste finden Sie im Tutorial Zugreifen auf archivierte Turnierergebnisse ).
Nachdem Sie diese Voraussetzungen eingerichtet haben, können Sie ein Pushbenachrichtigungs-Challenge-System einrichten.
Der folgende Clientcode ruft cloudScript ChallengePlayer
auf.
public void ChallengeRandomClosePlayer(string currentPlayerId) {
PlayFabClientAPI.GetLeaderboardAroundPlayer(new GetLeaderboardAroundPlayerRequest() {
MaxResultsCount = 10,
StatisticName = "Rank",
PlayFabId = currentPlayerId,
}, result => OnLeaderboardLoaded(result,currentPlayerId),OnPlayFabError);
}
private void OnLeaderboardLoaded(GetLeaderboardAroundPlayerResult leaderboard, string currentPlayerId) {
var index = (int)(UnityEngine.Random.value * (leaderboard.Leaderboard.Count-1));
if (leaderboard.Leaderboard[index].PlayFabId == currentPlayerId)
index = (index + 1) % leaderboard.Leaderboard.Count;
var targetId = leaderboard.Leaderboard[index].PlayFabId;
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest() {
FunctionName = "ChallengePlayer",
FunctionParameter = new Dictionary<string, object>() {
{ "TargetId", targetId }
}
}, null, OnPlayFabError);
}
public void OnPlayFabError(PlayFabError obj) {
Debug.Log(obj.GenerateErrorReport());
}
Der ChallengePlayer
CloudScript-Code verarbeitet die Anforderung, überprüft den Status der Bestenliste und sendet die Anforderungs-Pushbenachrichtigung an das Ziel.
handlers.ChallengePlayer = function (args) {
var targetId = args.TargetId;
var leaderboard = server.GetLeaderboardAroundUser({
MaxResultsCount : 10,
PlayFabId : currentPlayerId,
StatisticName : "Rank"
});
for(var i = 0; i < leaderboard.Leaderboard.length; i++) {
var target = leaderboard.Leaderboard[i];
if(target.PlayFabId !== targetId) continue;
// subtract virtual currency from current player
server.SubtractUserVirtualCurrency({
VirtualCurrency : "CH",
PlayFabId : currentPlayerId,
Amount : 1
});
// get current player profile
var profile = server.GetPlayerProfile({
PlayFabId : currentPlayerId
}).PlayerProfile;
// try to send push notification
try {
server.SendPushNotification({
Recipient : targetId,
Package : {
Message : `${profile.DisplayName} challenges you for a battle!`,
Title: "You have been challenged",
}
});
} catch (ex) {
// Target player has not registered for Push Notifications
}
return;
}
}
Verwendung von Pushbenachrichtigungen
Die Möglichkeit, Pushbenachrichtigungen zu verwenden, ist eine großartige Leistung. Wenn sie missbraucht werden, kann es jedoch dazu führen, dass Benutzer sich von zukünftigen Benachrichtigungen abmelden oder sogar ein Spiel ganz verlassen.
Wenn Sie jedoch mit Bedacht verwendet werden, können Pushbenachrichtigungen eines Der besten Tools für den Aufbau und die Wartung Ihrer Spielcommunity sein.
Pushbenachrichtigungen sind ein Feuer- und Vergessen-Nachrichtenprotokoll , das keine Übermittlung garantiert.
Notiz
Denken Sie daran, dass es keine Garantie dafür gibt, dass Ihre Spieler Ihre Nachricht empfangen, öffnen oder mit ihnen interagieren. Angesichts dieser Einschränkung ist es eine gute Methode, Nachrichten als Bonusfunktionen zu verwenden, anstatt als kritischer Teil Ihrer Gameplay-Schleife.
Für iOS-Plattformen erhalten Apps eine einmalige Eingabeaufforderung vom Betriebssystem, mit der der Benutzer die status von Pushbenachrichtigungen bestimmen kann. Nachdem der Benutzer seine erste Auswahl getroffen hat, wird diese Einstellung beibehalten, bis:
Die App wird aktualisiert oder neu installiert.
Der Benutzer nimmt Änderungen an den Einstellungen über das Einstellungsmenü seines Smartphones vor.
Für Android-Apps sind Benachrichtigungen standardmäßig aktiviert und können vom Client nach Be willen aktiviert und deaktiviert werden.
Tipp
Es empfiehlt sich, Ihre Benachrichtigungslistener bei jeder Sitzung neu zu initialisieren.
Ressourcen
Die folgenden Ressourcen enthalten zusätzliche Informationen zu den Themen in dieser Schnellstartanleitung:
- Firebase Unity SDK: Eine all-in-One-FCM-Lösung für Unity. Mit diesem SDK können Sie neben allen anderen Features Pushbenachrichtigungen empfangen und verarbeiten, die über FCM gesendet werden.
- Push It Real Good: How to Get Players to Say Yes to Push Notifications: This blog post details additional strategies and techniques for using push notifications.
- Pushbenachrichtigungen: In diesem Blogbeitrag wird das neueste Upgrade der Pushfunktion und der Wechsel zu FCM als primäres Plug-In für Android beschrieben.
- Postman-Schnellstart: In dieser Schnellstartanleitung erfahren Sie, wie Sie unsere APIs mit Postman testen.