見出し画像

MMORTBS開発記-034 広告ガチャ作成

いつもありがとうございます。

スキマ時間開発のお時間です。よろしくお願いします。

前回までのあらすじ

  課金アイテム周りが完成しました。


では、次はリワードガチャ。広告を使えるようにしていきます。

まずは、Admobにアプリを追加。

まだ未公開なので、仮の情報で作成します。



広告ユニットを追加ボタン押下
こんな感じで選べます。今回はリワード広告のみを使います。
私自身が、ゲームで望まない広告出されると基本即アンインストールの人なので。。。


ユニット名を入力


詳細設定はこんな感じ



無事に作成。



次はUnityにAdmod用のプラグインを追加します。
まずは、gitからモジュールを取得します。

余程最近出ない限り、最新で良い。Known issueは確認しておこう。



gitから取得したパッケージをインポートします。

全てチェックありでいいはず。


iOS用もついでに突っ込みます。
yes!


えねーぶる!


設置中・・・


設定できると、アセットからAdmodの設定を選べるように。


Admodにチェック、Admodの画面で確認できるAndroid用のアプリのIDを設定します。



設定はここまで。
次はC#です。

参考サイトはこちら

まずはこれらのコードをそっくり移植。

    public bool ShowRewardAd()
    {
        if (rewardedAd.IsLoaded()) {
            rewardedAd.Show();
            return true;
        } else {
            Debug.Log("not loaded");
            return false;
        }
    }

    void LoadRewardAd()
    {
        // Clean up banner ad before creating a new one.
        if (rewardedAd != null) {
            rewardedAd = null;
        }

        rewardedAd = new RewardedAd(adId);
        // Register for ad events.
        rewardedAd.OnAdLoaded += HandleRewardAdLoaded;
        rewardedAd.OnAdFailedToLoad += HandleRewardAdFailedToLoad;
        rewardedAd.OnAdOpening += HandleRewardedAdAdOpened;
        rewardedAd.OnAdClosed += HandleRewardedAdAdClosed;
        rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;

        AdRequest adRequest = new AdRequest.Builder().Build();
        this.rewardedAd.LoadAd(adRequest);
    }
    public void HandleRewardAdLoaded(object sender, EventArgs args)
    {
        Debug.Log("HandleRewardAdLoaded event received with message: " + args);
        rewardedAdRetry = false;
    }

    public void HandleRewardAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        LoadAdError loadAdError = args.LoadAdError;
        int code = loadAdError.GetCode();
        string message = loadAdError.GetMessage();


        Debug.Log("Load error string: " + loadAdError.ToString());
        Debug.Log("code: " + code.ToString());

        MonoBehaviour.print(
            "HandleRewardedAdFailedToLoad event received with message: "
                             + message);
        if (code == 2 || code == 0) {
            Debug.Log("error");
        } else {
            Debug.Log("error no fill");
        }
        rewardedAdRetry = true;

    }
    public void HandleRewardedAdAdOpened(object sender, EventArgs args)
    {
        Debug.Log("HandleRewardedAdAdOpened event received");
    }
    public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToShow event received with message: "
                             + args.AdError.GetMessage());
    }
    public void HandleUserEarnedReward(object sender, Reward args)
    {
        string type = args.Type;
        double amount = args.Amount;
        MonoBehaviour.print(
            "HandleRewardedAdRewarded event received for "
                        + amount.ToString() + " " + type);
    }
    public void HandleRewardedAdAdClosed(object sender, EventArgs args)
    {
        Debug.Log("HandleRewardedAdClosed event received");
        rewardedAdRetry = true;
    }


広告処理を広告ガチャに組み込んで、動かしてみます。


無事にダミー広告が表示されました。やればできる子!


さて。マネタイズ周りも作成したところで、しばらくは細かいゲーム仕様追加を入れていきましょう。



最後まで読んでいただきありがとうございました。







この記事が気に入ったらサポートをしてみませんか?