Unity パッケージの動画リワード実装
Unity LevelPlay 動画リワードは、ユーザー主導の広告ユニットで、アプリ内報酬と引き換えにフルスクリーン広告にエンゲージする機会をユーザーに提供し、ポジティブなユーザーエクスペリエンスを維持しながらエンゲージメントを強化します。
動画リワード広告オブジェクトを作成する
動画リワード広告オブジェクトの作成は、OnInitSuccess コールバックを正常に受信した後に行う必要があります。
このオブジェクトは再利用可能なインスタンスで、セッション中に複数のロードと表示が可能です。作成されたインスタンスは、同一の広告ユニットのロードと表示に使用できます。
より高度な実装では、必要に応じて複数の動画リワード広告オブジェクトを作成することもできます。
// Create Rewarded ad object
LevelPlayRewardedAd = new LevelPlayRewardedAd(RewardedAdUnitId);
動画リワードイベントを実装する
LevelPlayRewardedAdListener を実装して、広告配信に関する情報を取得します。
- 動画リワード広告のロード前にリスナーを設定することをお勧めします。
- 各動画リワード広告にリスナー実装が必要であることに注意してください。
- コールバックはメインスレッドで実行されます。
// Register to Rewarded events
RewardedAd.OnAdLoaded += RewardedOnAdLoadedEvent;
RewardedAd.OnAdLoadFailed += RewardedOnAdLoadFailedEvent;
RewardedAd.OnAdDisplayed += RewardedOnAdDisplayedEvent;
RewardedAd.OnAdDisplayFailed += RewardedOnAdDisplayFailedEvent;
RewardedAd.OnAdRewarded += RewardedOnAdRewardedEvent;
RewardedAd.OnAdClosed += RewardedOnAdClosedEvent;
// Optional
RewardedAd.OnAdClicked += RewardedOnAdClickedEvent;
RewardedAd.OnAdInfoChanged += RewardedOnAdInfoChangedEvent;
// Implement the events
void RewardedOnAdLoadedEvent(LevelPlayAdInfo adInfo){}
void RewardedOnAdLoadFailedEvent(LevelPlayAdError error){}
void RewardedOnAdDisplayedEvent(LevelPlayAdInfo adInfo){}
void RewardedOnAdDisplayFailedEvent(LevelPlayAdDisplayInfoError infoError){}
void RewardedOnAdRewardedEvent(LevelPlayAdInfo adInfo, LevelPlayReward adReward){}
void RewardedOnAdClosedEvent(LevelPlayAdInfo adInfo){}
void RewardedOnAdClickedEvent(LevelPlayAdInfo adInfo){}
void RewardedOnAdInfoChangedEvent(LevelPlayAdInfo adInfo){}
LevelPlay Ad Info
LevelPlayAdInfo パラメーターはロードに成功した広告の情報を含んでいます。
利用可能なフィールドの詳細については、こちらをご覧ください。
動画リワード広告をロードする
動画リワード広告をロードするには、LoadAd メソッドを呼びます。
// Load rewarded ad
RewardedAd.LoadAd();
動画リワード広告を表示する
LevelPlayRewardedAdListener の onAdLoaded コールバックを受信したら、動画リワード広告を表示します。
- プレースメントを使用している場合は、ShowAd API の一部として追加します。
- 広告がユーザーに正常に表示されたら、ロード手順を繰り返すことで別の広告を読み込むことができます。
// Show ad without placement
RewardedAd.ShowAd();
// Show ad with placement
RewardedAd.ShowAd(placementName: "placementName");
広告のアベイラビリティを確認する
表示の失敗を回避し、広告が正しく表示されることを確認するには、ShowAd API を呼び出す前に次の API を使用することをお勧めします。
IsAdReady – 広告が正常に読み込まれ、広告ユニットに対するキャップが設定されていない場合、または視聴回数が広告ユニットに対して設定されたキャップに達していない場合は true を返し、それ以外の場合は false を返します。
IsPlacementCapped – 有効なプレースメントに対する視聴回数がキャップに達している場合は true を返します。プレースメント名が有効でない場合、キャップが設定されていない場合、または視聴回数がプレースメントに対して設定されたキャップに達していない場合、この API は false を返します。
// Check that ad is ready and that the placement is not capped
if(RewardedAd.IsAdReady() && !LevelPlayRewardedAd.IsPlacementCapped(placementName))
{
RewardedAd.ShowAd(placementName);
}
プレースメント
LevelPlay ダッシュボードで動画リワードのプレースメント、ペーシング、キャッピングをサポートしています。
動画リワード広告のプレースメントを設定している場合は、ShowAd メソッドを呼び出して、特定のプレースメントに対して動画リワード広告を配信します。
// Check that ad is ready and that the placement is not capped
if (RewardedAd.IsAdReady() && !LevelPlayRewardedAd.IsPlacementCapped(placementName))
{
RewardedAd.ShowAd(placementName);
}
リワードを付与する
LevelPlay SDK は、ユーザーが正常にビデオ視聴を完了するたびに OnAdRewarded を発火します。
OnAdRewarded と OnAdClosed は非同期です。OnAdClosed の後に OnAdRewarded が発火された場合でも、リワードを付与するようにリスナーを設定してください。
// Subscribe to the OnAdRewarded event
RewardedAd.OnAdRewarded += (adInfo, adReward) =>
{
// Grant the reward to the user
Debug.Log($"Ad Completed: {adInfo.PlacementName}, Reward: {adReward.Name} - {adReward.Amount}");
GrantReward(adReward.Name, adReward.Amount);
};
// Example method to process the reward
private void GrantReward(string rewardName, int rewardAmount)
{
// TODO: Implement logic to grant the reward to the user
Debug.Log($"Granting reward: {rewardName} with amount: {rewardAmount}");
}
動画リワード広告の実装例
public class RewardedAdSample {
private LevelPlayRewardedAd RewardedAd
void CreateRewardedAd() {
//Create RewardedAd instance
RewardedAd= new LevelPlayRewardedAd("RewardedAdUnitId");
//Subscribe RewardedAd events
RewardedAd.OnAdLoaded += RewardedOnAdLoadedEvent;
RewardedAd.OnAdLoadFailed += RewardedOnAdLoadFailedEvent;
RewardedAd.OnAdDisplayed += RewardedOnAdDisplayedEvent;
RewardedAd.OnAdDisplayFailed += RewardedOnAdDisplayFailedEvent;
RewardedAd.OnAdClicked += RewardedOnAdClickedEvent;
RewardedAd.OnAdClosed += RewardedOnAdClosedEvent;
RewardedAd.OnAdRewarded += RewardedOnAdRewarded;
RewardedAd.OnAdInfoChanged += RewardedOnAdInfoChangedEvent;
}
void LoadRewardedAd() {
//Load or reload RewardedAd
RewardedAd.LoadAd();
}
void ShowRewardedAd() {
//Show RewardedAd, check if the ad is ready before showing
if (RewardedAd.IsAdReady()) {
RewardedAd.ShowAd();
}
}
//Implement RewardedAd events
void RewardedOnAdLoadedEvent(LevelPlayAdInfo adInfo) { }
void RewardedOnAdLoadFailedEvent(LevelPlayAdError ironSourceError) { }
void RewardedOnAdClickedEvent(LevelPlayAdInfo adInfo) { }
void RewardedOnAdDisplayedEvent(LevelPlayAdInfo adInfo) { }
void RewardedOnAdDisplayFailedEvent(LevelPlayAdDisplayInfoError adInfoError) { }
void RewardedOnAdClosedEvent(LevelPlayAdInfo adInfo) { }
void RewardedOnAdRewarded(LevelPlayAdInfo adInfo, LevelPlayReward adReward)
void RewardedOnAdInfoChangedEvent(LevelPlayAdInfo adInfo) { }
}
LevelPlay メディエーションデモアプリ
実装デモアプリでは、動画リワード広告ユニット API をアプリに実装する方法を確認できます。
完了!
これで、アプリケーションで動画リワードを配信するように設定されました。Test Suite を使用してインテグレーションを確認します。
インテグレーションガイドに従って、追加の広告ユニットを実装します。