楽天リワードSDK Unity Plugin 詳細機能 - RakutenReward/RakutenRewardSDK GitHub Wiki
詳細な機能について
RakutenReward クラス
アプリからSDK側の情報を取得する場合、RakutenRewardクラスの下記メソッドを使用してください。
メソッド | 戻り値の型 | 説明 |
---|---|---|
GetStatus | RakutenRewardStatus | リワード機能のステータスを返します |
GetUnclaimedCount | int | ポイント未獲得件数を返します |
GetPoint | int | ユーザの現在のポイント数を返します |
IsSignin | bool | ユーザのログイン状態を返します |
IsOptedOut | bool | リワード機能のopt-in/out設定を返します |
IsUIEnabled | bool | 通知UIの表示/非表示設定を返します |
GetVersion | string | SDKのバージョンを返します |
SetIDFA | IDFAを設定する(iOS) | |
GetIDFA | string | IDFAを取得する(iOS) |
RakutenRewardStatus
RakutenRewardStatusはリワード機能の状態を返すenumで、下記のように定義されてます。
メソッド | 戻り値の型 |
---|---|
Online | リワード機能は正常に動作しています |
Offline | 通信又はその他の問題により、リワード機能は正常に動作していません |
AppCodeInvalid | AppCodeが不正のため、リワード機能は正常に動作していません |
RakutenRewardStatusの値は、下記のように取得することができます。
RakutenRewardStatus status = RakutenReward.GetInstance().GetStatus();
getVersion
SDKのバージョンはstring形式で定義されています。(例:”3.0.0”) 下記の方法でSDKのバージョンを取得することができます。
string version = RakutenReward.GetInstance().GetVersion();
isOpetedOut
ユーザはポータルの設定画面から、リワード機能をオプトアウト(無効化)することができます。ユーザがリワード機能を無効化した場合、optedOutの値はtrueになります。
bool isOptedOut = RakutenReward.GetInstance().IsOptedOut();
isUIEnabled
ユーザはポータルの設定画面から、ミッション達成時の通知UIの表示有無を選択することができます。ユーザが通知UIを非表示に設定した場合、uiEnabledの値はfalseになります。
bool isUIEnabled = RakutenReward.GetInstance().IsUIEnabled();
AchievementData クラス
AchievementDataはユーザが達成したミッションの情報を定義したクラスで、下記のプロパティを保持しています。
プロパティ | 型 | 説明 |
---|---|---|
name | string | ミッション名 |
iconUrl | string | アイコン画像のURL |
instruction | string | ミッションの説明 |
actionCode | string | アクションコード |
notificationType | string | 通知タイプ |
achievedDate | string | ミッション達成日 |
point | int | 達成時に得られるポイント数 |
isCustom | bool | 通知タイプがCustomの場合はtrue, それ以外の場合はfalse |
RakutenRewardEventListener
RakutenRewardEventListenerは、下記のActionを定義したクラスです。これを利用することにより、ステータスやユーザ情報の変更、ミッションの達成等があった場合に通知を受け取ることができます。
public class RakutenRewardEventListener : MonoBehaviour {
public static event Action<RakutenRewardStatus> NotifyStateChanged;
public static event Action<IDictionary<string, object>> NotifyUserInfoChanged;
public static event Action<IAchievementData> NotifyAchievement;
}
使用方法
上記の通知を受け取りたい場合、下記の例を参考にRakutenRewardEventListenerのActionの登録を行なってください。
各Actionの使用例
void OnEnable() {
RakutenRewardEventListener.NotifyStateChanged += NotifyStateChanged;
RakutenRewardEventListener.NotifyUserInfoChanged += NotifyUserInfoChanged;
RakutenRewardEventListener.NotifyAchievement += NotifyAchievement;
}
void OnDisable() {
RakutenRewardEventListener.NotifyStateChanged -= NotifyStateChanged;
RakutenRewardEventListener.NotifyUserInfoChanged -= NotifyUserInfoChanged;
RakutenRewardEventListener.NotifyAchievement -= NotifyAchievement;
}
private void NotifyStateChanged(RakutenRewardStatus status) {
Debug.Log("# Status changed.");
}
private void NotifyUserInfoChanged(IDictionary<string, object> userInfo) {
int unclaimedCount = int.Parse(userInfo["unclaimedCount"].ToString());
Debug.Log("# unclaimedCount: " + unclaimedCount);
}
private void NotifyAchievement(IAchievementData achievementData) {
// Show custom notification UI
if (achievementData.GetIsCustom()) {
this.customAchievementData = achievementData;
string text = achievementData.GetName() + ":" + achievementData.GetPoint;
GetComponent<CustomNotification> ().ShowCustomNotification(text);
}
}
NotifyUserinfoChanged
NotifyUserInfoChangedアクションはユーザ情報に変更があった時に呼ばれます。 (例:ユーザがログイン又はログアウトした時)
NotifiyStateChanged
NotifyStateChangedアクションはRakutenRewardStatusの値に変更があった時に呼ばれます。例えば1日1回、初回起動時にミッションを達成させたい場合、このアクションを利用して実装することが可能です。下記のように、ステータスがOnlineになったタイミングを検知して、LogActionメソッドを呼んでください。 ※1日1回等の判定は別途必要です
private void NotifyStateChanged(RakutenRewardStatus status) {
Switch(status) {
case .Online:
RakutenReward.GetInstance().LogAction("YOUR_ACTION_CODE");
...
}
}
BaseNativeActivity
BaseNativeActivityはプラグイン(RakutenRewardUnity-release.aar)に含まれるクラスで、UnityPlayerActivityクラスを継承しています。プロジェクト内の他ライブラリが既にUnityPlayerActivityを継承しておりコンフリクトが発生する場合は、既にUnityPlayerActivityを継承しているクラスをさらに継承する新しいクラスを作成し、そちらにBaseNativeActivity内の処理を記載した上でプラグイン用のjar (aar)を再構築してください。
※BaseNativeActivityのソースコードは下記ページ内のリンクからダウンロード可能です。 (ダウンロード)
位置情報の設定について
楽天リワードでは広告の最適化のため位置情報の取得を行なっていますが、これを開発者様側の設定でオフにすることが可能です。 (iOSのみ、 Androidは位置情報の取得はしておりません)
RakutenReward のオブジェクトのパラメータの"Manual Location Permission Request"という部分にチェックを入れます。 (デフォルトではチェックは入っていません) 入れることで位置情報の取得のAPIを呼ぶことがなくなり、位置情報取得のパーミッションダイアログを出さなくなります。
広告IDを設定する(プラグインバージョン1.2.0)
RakutenReward.GetInstance().SetIDFA("value");