リワード広告を複数回呼び出す

このガイドでは、Michao!!のリワード広告を複数回呼び出す方法のドキュメントを提供します。

主要ポイント

  • リワード広告を複数回表示するには、表示のたびに広告枠を再定義する必要があります
  • 広告枠の再定義は、前回の広告表示が完了した後に行います
  • 広告を表示するには、広告枠の定義が完了してから render メソッドを呼び出す必要があります

基本的な実装手順

1. 広告枠の初期定義

最初に広告枠の初期化関数を用意します。

window.alm = window.alm || { que: [] };

function initRewardAd() {
  window.alm.que.push(function() {
    // 広告枠の定義
    window.alm.defineAdSlot("/1/rewarded", "reward_test");
  });
}

initRewardAd();

2. リワード完了後の再定義

リワード完了のイベント発生時に広告枠を再定義することで、次回の広告表示に備えます。

function initRewardAd() {
  window.alm.que.push(function() {
    // 広告枠の定義
    window.alm.defineAdSlot("/1/rewarded", "reward_test");
    
    // イベントの設定
    window.alm.getAdTracker("reward_test").then(function(adTracker) {
      // リワード完了時の処理
      adTracker.track(window.alm.Events.REWARDED, function() {
        // リワード付与の処理
        giveRewardToUser();
        
        // 次回の広告表示のために広告枠を再定義
        setTimeout(function() {
            initRewardAd();
        }, 1000);
      });
    });
  });
}

3. 広告表示ボタンの実装

ユーザーが広告を表示するためのボタンを実装します。

document.getElementById("reward-play-btn").onclick = function() {
  // 広告を表示
  window.alm.render("reward_test");
};

実装例

以下は、リワード広告を複数回呼び出すための最小限の実装例です。

window.alm = window.alm || { que: [] };

// 広告初期化
function initRewardAd() {
  window.alm.que.push(function() {
    // 広告枠の定義
    window.alm.defineAdSlot("/1/rewarded", "reward_test");
    
    // イベントの設定
    window.alm.getAdTracker("reward_test").then(function(adTracker) {
      // リワード完了時の処理
      adTracker.track(window.alm.Events.REWARDED, function() {
        // リワード付与の処理
        giveRewardToUser();
        
        // 次回の広告表示のために広告枠を再定義
        setTimeout(function() {
            initRewardAd();
        }, 1000);
      });
    });
  });
}

// ページ読み込み時に初期化
initRewardAd();

// 広告表示ボタンの処理
document.getElementById("reward-play-btn").onclick = function() {
  window.alm.render("reward_test");
};

// リワード付与の処理(ゲーム内通貨の追加など)
function giveRewardToUser() {
  // ここにリワード付与のロジックを記述
}

注意点

  1. 広告枠の再定義のタイミングは、リワード完了後、少し間隔(1秒程度)を空けることをお勧めします
  2. 広告を表示するためには、必ず広告枠の定義が完了している必要があります
  3. イベントは広告枠の再定義ごとに設定し直す必要があります

よくある問題と解決方法

問題: 2回目以降の広告が表示されない
解決方法: リワード完了後に広告枠が正しく再定義されているか確認してください

問題: 広告表示後にエラーが発生する
解決方法: 広告枠の再定義が完了してから render メソッドを呼び出しているか確認してください