Push Notifications 란?
Push Notifications는 로컬 알림과 달리 게임 개발자가 사용자를 대상으로 푸시 알림을 보내 게임 내 이벤트나 업데이트 등 서버에서 비정기적으로 알림을 보내고자할때 사용되는 푸시 알림 기능입니다. 이를 통해 게임 이용률을 높이고, 중요한 게임 소식을 즉시 전달할 수 있습니다.
Push Notifications의 주요 사용처 및 장점
- 유저 재접속률 증가
푸시 알림을 통해 유저가 게임으로 다시 돌아오도록 유도할 수 있습니다. 예를 들어, 새로운 이벤트 알림, 업데이트 알림, 또는 게임 내 보상 알림을 통해 사용자의 관심을 끌 수 있습니다. - 실시간 소식 전달
이벤트나 긴급 업데이트 상황에서 유저들에게 즉각적인 소식을 전달할 수 있습니다. - 맞춤화된 메세지 전달
특정 사용자 그룹이나 개별 사용자에 맞춤형 메시지를 전송하여, 게임 내 활동이나 성과에 따라 적합한 알림을 보낼 수 있습니다.
UGS Push Notifications 설정 방법 (google)
1. 유니티 프로젝트 설정
1. Package Manager
- Unity 에디터에서 Package Manager를 열고 UGS의 Push Notifications 패키지를 검색하여 설치합니다.
2 . Firebase 설정
1. Firebase 서비스 키 생성
- Firebase 콘솔에서 프로젝트를 선택합니다.
- 프로젝트 설정으로 이동하여 상단의 서비스 계정을 클릭합니다.
- 서비스 계정 만들기를 선택한 후 새로운 개인 키 생성을 클릭하고, 키 파일을 다운로드합니다.
(Firebase 프로젝트 생성과정에서 별도의 SDK는 설치 X)
- Authentication의 로그인 방법을 하나 추가해야합니다. 그래야 나중에 쓰일 웹API가 생성됩니다. 익명 방법을 하나 추가하는것이 가장 편하다고 생각합니다.
2. Unity 대시보드에 키 업로드
- Unity Cloud 대시보드에서 제품 > 푸시 알림 > 설정으로 이동합니다.
- Google 키 섹션에서 키 추가 또는 편집 아이콘을 선택합니다.
- Firebase에서 다운로드한 키 파일을 업로드한 후 마침을 클릭합니다.
3. 편집기 구성
- Unity 편집기에서 프로젝트 설정 > 서비스 > 푸시 알림으로 이동하여 Android(Firebase) 설정을 구성합니다.
Firebase 세팅값은 Firebase 프로젝트에 들어간뒤, 설정 -> 프로젝트 설정에 있는 내 프로젝트에 있습니다.
- 대시보드로 돌아가 Next 버튼을 클릭해 구성을 완료합니다.
코드 작성
using System;
using Unity.Notifications.Android;
using Unity.Services.Analytics;
using Unity.Services.Core;
using System.Threading.Tasks;
using Unity.Services.PushNotifications;
using UnityEngine;
using UnityEngine.Android;
using Unity.Services.Authentication;
public class PushManager : MonoBehaviour
{
async void Start()
{
// 알람 권한 요청
RequestNotificationPermission();
await UnityServices.InitializeAsync();
// 익명 로그인 시도
await SignInAnonymouslyAsync();
// Unity Analytics를 사용 중이며 데이터 수집이 필요한 경우 사용
AnalyticsService.Instance.StartDataCollection();
}
async Task SignInAnonymouslyAsync()
{
try
{
// 익명 로그인 시도
await AuthenticationService.Instance.SignInAnonymouslyAsync();
Debug.Log("익명 로그인 성공!");
// PlayerID 가져오는 방법
Debug.Log($"PlayerID: {AuthenticationService.Instance.PlayerId}");
}
catch (AuthenticationException ex)
{
// AuthenticationErrorCodes와 에러 코드 비교
// 적절한 오류 메시지를 플레이어에게 알림
Debug.LogException(ex);
}
catch (RequestFailedException ex)
{
// CommonErrorCodes와 에러 코드 비교
// 적절한 오류 메시지를 플레이어에게 알림
Debug.LogException(ex);
}
}
void RequestNotificationPermission()
{
string androidInfo = SystemInfo.operatingSystem;
int apiLevel = int.Parse(androidInfo.Substring(androidInfo.IndexOf("-") + 1, 3), System.Globalization.CultureInfo.InvariantCulture);
// Android 13 이상에서 알림 권한 요청
if (Application.platform == RuntimePlatform.Android &&
33 <= apiLevel &&
!UnityEngine.Android.Permission.HasUserAuthorizedPermission("android.permission.POST_NOTIFICATIONS"))
{
Permission.RequestUserPermission("android.permission.POST_NOTIFICATIONS");
}
// 디바이스의 api level이 26 이상이라면 알림 채널 설정
if (apiLevel >= 26)
{
var channel = new AndroidNotificationChannel()
{
Id = "default_channel",
Name = "pubSdk",
Importance = Importance.High,
Description = "for test",
};
AndroidNotificationCenter.RegisterNotificationChannel(channel);
}
}
public async void pushnoti()
{
try
{
string pushToken = await PushNotificationsService.Instance.RegisterForPushNotificationsAsync();
PushNotificationsService.Instance.OnRemoteNotificationReceived += notificationData =>
{
Debug.Log("Received a notification!");
};
}
catch (Exception e)
{
Debug.Log("Failed to retrieve a push notification token.");
}
}
}
대시보드 알림 테스트 기능
Push notification Settings의 설정에 들어가면 Send test를 눌러 실행할 수 있습니다.
어플을 설치 및 최초 실행 이후 테스트하고자 하는 폰의 토큰을 위 사진에 입력하여 Send를 보내면 테스트 알림이 전송됩니다. 아래 코드를 통해 토큰을 알 수 있습니다.
string pushToken = await PushNotificationsService.Instance.RegisterForPushNotificationsAsync();
마무리
푸시 알림은 게임 종료후에도 플레이어에게 중요한 알림을 전달해 게임 플레이를 유도하는 효과적인 방법입니다. Unity의 푸시 알림 기능은 손쉬운 설정방법과 가이드북을 통해 구현 난이도가 낮아 빠르게 개발 가능합니다.
ttps://docs.unity.com/ugs/manual/push-notifications/manual/get-started
'Unity > Unity Cloud(UGS)' 카테고리의 다른 글
[Unity] UGS - Leaderboards (1) | 2024.10.27 |
---|---|
[Unity] UGS - Asset Manager (1) | 2024.10.26 |
[Unity] UGS - Cloud Code (0) | 2024.10.25 |
[Unity] UGS - Cloud Save (0) | 2024.10.24 |
[Unity] UGS - Remote Config (0) | 2024.10.23 |