naichi's lab

3日後の自分(他人)への書き置き

【Unity】AppLovinでリワード動画再生しようとしたらLOADREWARDEDFAILED

f:id:naichilab:20180807015439p:plain:w320

概要

下記記事でAppLovinSDKを導入し、インタースティシャル動画の再生までできました。

blog.naichilab.com

その後リワード動画を再生しようとしてどハマり(丸2日無駄になった)のでメモ

まとめ

  • LOADREWARDEDFAILEDの原因は管理画面の設定だけだった。
  • 管理画面の Rewarded Video は手動でONにする必要がある
  • ONにしても反映に30分とかかかる
  • こうしとけばいい
    • f:id:naichilab:20180807013226p:plain:w320

詳細

LOADREWARDEDFAILEDが発生

AppLovin.PreloadInterstitial();AppLovin.ShowInterstitial(); は設定なしで動いたので同様に下記スクリプトを書いてみた。

using UnityEngine;

public class AppLovinSample : MonoBehaviour
{
    [SerializeField] private string appLovinSdkKey;

    void Start()
    {
        Debug.Log("AdsManagerIos Initialize");
        AppLovin.SetSdkKey(appLovinSdkKey);
        AppLovin.InitializeSdk();
        AppLovin.SetUnityAdListener(gameObject.name);
        AppLovin.LoadRewardedInterstitial();
    }

    void onAppLovinEventReceived(string ev)
    {
        Debug.Log($"onAppLovinEventReceived : {ev}");
        if (ev.Contains("REWARDAPPROVEDINFO"))
        {
        }
        else if (ev.Contains("LOADEDREWARDED"))
        {
        }
        else if (ev.Contains("LOADREWARDEDFAILED"))
        {
        }
        else if (ev.Contains("HIDDENREWARDED"))
        {
            AppLovin.LoadRewardedInterstitial();
        }
    }
}

結果は onAppLovinEventReceived : LOADREWARDEDFAILED ばかり

全然読み込んでくれない。

ずっと Docs -> iOS -> Unity3D -> Rewarded Videos を見ていたのだが、 Docs -> iOS -> iOS SDK Integration -> Rewarded Videos には下記のように書かれていた。

Before integrating Rewarded Video into your application, please be sure it is turned 'ON' in the Manage Apps section.

インタースティシャルはアプリ側から呼び出すだけでONになったからリワードも同様だと思い込んでいた。

ちゃんと全ページに書いといてくれや!!!

こんな感じに設定

f:id:naichilab:20180807013226p:plain:w320

none, 0 のあたりはUnity側で受け取れるがどうせ使わないので適当に設定。

やっぱりエラーからの読み込み成功

管理画面で Rewarded Video をONにしたが、相変わらずエラーする。

インタースティシャルとの違いを確認するためにボタンたくさん置いて手動で呼び出して見たり色々していたらいきなり読み込めた。

onAppLovinEventReceived : LOADEDREWARDED

挙動が訳わからん。

そのあと原因はっきりさせるために色々試してたんだけど、結論としては、

「管理画面の設定変更の反映がめっっっっっっっっっっちゃ遅い!!!」

これだった。たぶん。

テストモードのトグルのところに、

Note: Test Mode may take up to 30 mins to take effect. It will also automatically turn back OFF after 2 hours.

とは書かれている。たしかに引っかかったが他の全設定もこんな遅いのかよ。どうなってるんだ。

まとめ

  • AppLovinの管理画面の設定反映はむっちゃ遅い

Android側未確認だけどたぶん動くだろう・・・明日確認しよ・・・ほんと時間無駄にした。

おまけ

リワード動画再生完了までのコールバックはこんな感じでした。

onAppLovinEventReceived : LOADEDREWARDED  //リワード読み込み
onAppLovinEventReceived : DISPLAYEDREWARDED //リワード動画表示開始
onAppLovinEventReceived : VIDEOBEGAN  //ビデオ再生開始
onAppLovinEventReceived : REWARDAPPROVED  //リワード獲得
onAppLovinEventReceived : REWARDAPPROVEDINFO|0.000000|none //リワード詳細(管理画面で設定した通貨と金額)
onAppLovinEventReceived : VIDEOSTOPPED  //ビデオ停止
onAppLovinEventReceived : HIDDENREWARDED  //リワード画面閉じられた
onAppLovinEventReceived : LOADEDREWARDED  //次の動画準備完了(HIDDENREWARDEDの中でLoadRewardedInterstitialを呼んでいるため)