楽天リワード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は位置情報の取得はしておりません)

Location Off

RakutenReward のオブジェクトのパラメータの"Manual Location Permission Request"という部分にチェックを入れます。 (デフォルトではチェックは入っていません) 入れることで位置情報の取得のAPIを呼ぶことがなくなり、位置情報取得のパーミッションダイアログを出さなくなります。

広告IDを設定する(プラグインバージョン1.2.0)

RakutenReward.GetInstance().SetIDFA("value");