Push Notification

Đây là tính năng sử dụng Firebase Cloud Message để gửi thông báo tới các thiết bị Android, IOS

1. Điều kiện cần

1.1 Tích hợp SDK

  • Dự án phải có Firebasetích hợp vào game

  • Tích hợp GSM SDK từ version 1.2.3.6 trở lên và phải có thực hiện các api:

    • Set Language:

      • Vào game cần gửi lên GSM ngôn ngữ hiện tại của user, sau khi GSM được Init

      • Khi user thay đổi ngôn ngữ trong Setting thì gửi lên GSM.

  • Tích hợp Firebase Messaging

  • Tích hợp Notification Plugin (Download)

1.2 Thiết lập ở phía game

  • Project Settings Mobile Notification

    • Android: Custom Activity Name: com.google.firebase.MessagingUnityPlayerActivity

    • Phải có đủ Icon Large và Icon Small

      • Icon Small: Là 1 Icon để hiện ở status bar của android với nền trong suốt và hình icon đen trắng (nên để tên icon_small như hình bên dưới)

      • Icon Large: Là icon để hiện ở Notification khi Expand. (Nên để tên icon_big như hình bên dưới)

  • AndroidManifest.xml

    • Thay thế activity UnityPlayerActivity thành com.google.firebase.MessagingUnityPlayerActivity

    • Thêm service: com.google.firebase.messaging.MessageForwardingService

<service android:name="com.google.firebase.messaging.MessageForwardingService"
	android:permission="android.permission.BIND_JOB_SERVICE"
	android:exported="false" >
</service>

Cụ thể code:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools">
  <application>
    <activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:theme="@style/UnityThemeSelector">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
    <!--Chuyển intent khi nhấn notification vào Unity-->
    <service android:name="com.google.firebase.messaging.MessageForwardingService"
		 android:permission="android.permission.BIND_JOB_SERVICE"
		 android:exported="false" >
    </service>
  </application>

</manifest>
  • Firebase Service

    • Cần thiết lập các event để lắng nghe FirebaseMessaging.MessageReceived

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
{
    dependencyStatus = task.Result;
    if (dependencyStatus == Firebase.DependencyStatus.Available)
    {
        FirebaseMessaging.MessageReceived += OnMessageReceived;
    }
    
});

void OnApplicationPause(bool pause)
{
    NotificationLoging.OnApplicationPause(pause);
}
void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e)
{
    NotificationLoging.LogNotificationData(e.Message.Data);
}
 

1.3 Thiết lập ở GSM

  • Vào Firebase ConsoleChọn Dự ánProject SettingsService Accounts ⇒ Generate new private key ⇒ Generate key ⇒ Nhận file .json được tải về

  • Copy toàn bộ nội dung ở file .jsonVào GSM App Manager ⇒Chọn Dự án => Config AppTab FirebasePaste vào Service AccountSubmit

2. Chiến dịch push notification

  • Đăng nhập vào GSM: Vào Menu: Games = > Push Notification => Tìm kiếm và liệt kê các chiến dịch push notification: Xem thêm chi tiết

  • Thêm mới chiến dịch: Xem hướng dẫn Create Push Notification Campaign

  • Cập nhật chiến dịch: Tại danh sách chiến dịch = > Click vào dấu 3 chấm (...) ⇒ Chọn Edit ⇒ Sau đó thiết lập các thông tin giống phần thêm mới. (Create Push Notification Campaign)

  • Xóa chiến dịch: Tại danh sách chiến dịch = > Click vào dấu 3 chấm (...) ⇒ chọn Delete ⇒ Xác nhận để xóa

  • Run chiến dịch: Trường hợp muốn chạy lại 1 chiến dịch nào đó thì thực hiện: Tại danh sách chiến dịch = > Click vào dấu 3 chấm (...) ⇒ chọn Run

  • Stop chiến dịch: Nếu muốn ngừng lịch trình chạy của 1 chiến dịch, thì thực hiện: Tại danh sách chiến dịch = > Click vào dấu 3 chấm (...) ⇒ chọn Stop

3. Lưu ý

  • Cần tránh thiết lập chiến dịch push bị lặp nội dung cho cùng 1 thiết bị.

Last updated