Unity Ads から LevelPlay への移行
Advertisement Legacyパッケージを使用したUnity Ads SDKの直接インテグレーションから、Ads Mediationパッケージを使用したLevelPlayインテグレーションに移行します。
読み終わるまでの所要時間 19 分最終更新 7日前
このガイドでは、Unity Ads SDK の直接インテグレーションから LevelPlay SDK インテグレーションにプロジェクトを遷移する方法を、一般的なユースケースの API マッピングを含めて説明します。詳細については、LevelPlay インテグレーションガイドを参照してください。LevelPlay に移行する主な手順については、以下の表を参照してください。
トピック | 説明 |
|---|---|
| 広告メディエーションへの移行 | 古い機能の Unity Ads から LevelPlay にプロジェクトを遷移します。 |
| マップ API と更新コード | 古い機能初期化、バナー、インタースティシャル、およびリワード型広告呼び出しを、LevelPlay と同等の機能に置き換えます。 |
| テストと検証 | オプションで、LevelPlay Test Suite とビルトインインテグレーション検証ツールを使用して新しいインテグレーションを検証します。 |
| API と特徴マッピング リファレンス | 古い機能の Unity Ads 関数とパラメータが対応する LevelPlay オプションにどのようにマップされるかを確認します。 |
| 古い機能パッケージの削除 | Advertisement Legacy パッケージをアンインストールし、プロジェクトに残っている依存関係を解決します。 |
前提条件
LevelPlay ダッシュボードにアクセスできることを確認します。
Ads Mediation に移行
古い機能の Unity Ads インテグレーションを LevelPlay に置き換えるには、次の手順に従います。
LevelPlay パッケージをインストールする
Unity Package Manager を使用して LevelPlay パッケージをインストールするには、次の手順に従います。
- Unity エディターで、Window (ウィンドウ) > Package Manager (パッケージマネージャー) に移動します。
- Packages (パッケージ):Unity Registry (パッケージ: Unity Registry) を選択します。
- Ads Mediation を検索します。
- 最新バージョンの Install (インストール) を選択します。
依存関係の設定
LevelPlay では、Android および iOS ライブラリを管理するために、モバイル依存関係リゾルバや Unity 外部依存関係マネージャー (EDM4U) などの依存関係解決ツールが必要です。
依存関係解決ツールがプロジェクトにインストールされていることを確認します。プロジェクトに依存関係解決ツールがすでに含まれている場合は、それを維持します。LevelPlay のインストール後にモバイル依存関係リゾルバのインストールを求めるプロンプトが表示されたら、Yes を選択します。
LevelPlay ダッシュボードの設定
LevelPlay ダッシュボード を設定して、アプリケーションを登録してメディエーションに必要な広告ユニットを作成します。
- LevelPlay ダッシュボードにログインします。
- Add App (アプリケーションの追加) を選択し、プロンプトに従ってアプリケーションを登録します。
- 広告ユニットに移動し、管理するアプリケーションを選択します。
- 広告ユニット(バナー、インタースティシャル、またはリワード)を作成します。広告ユニットの詳細については、広告ユニットの管理 のドキュメントを参照してください。
- LevelPlay ダッシュボードの Apps (アプリ) ページで、アプリケーションキーと広告単位 ID を見つけて保存します。これらは、API をマップするために必要です。
マップ API と更新コード
既存の クラス呼び出しを対応する メソッドに置き換えます。古い機能の Unity Ads SDK とは異なり、LevelPlay では広告ユニットのインスタンスを作成する必要があります。広告ユニットは、任意の設定パラメーターを持つ再利用可能なインスタンスです。以下のサンプルを参照してSDKを初期化し、バナー広告、インタースティシャル広告、およびリワード広告を実装します。
AdvertisementLevelPlayLevelPlay SDK の初期化
LevelPlay SDK は、ゲーム ID の代わりに アプリケーション キー を使用します。イベントリスナーを登録し、SDK を初期化するには、以下のサンプルを参照してください。
LevelPlay.OnInitSuccess += SdkInitializationCompletedEvent;LevelPlay.OnInitFailed += SdkInitializationFailedEvent;LevelPlay.Init("YOUR_APPKEY");void SdkInitializationCompletedEvent(LevelPlayConfiguration config){ Debug.Log($"[LevelPlaySample] Received SdkInitializationCompletedEvent with Config: {config}");}void SdkInitializationFailedEvent(LevelPlayInitError error){ Debug.Log($"[LevelPlaySample] Received SdkInitializationFailedEvent with Error: {error}"); }
バナー広告の実装
バナー広告を実装するには、以下のサンプルを参照してください。
public class BannerAdSample { private LevelPlayBannerAd bannerAd; void CreateBannerAd() { // Create ad configuration - optional var adConfig = new LevelPlayBannerAd.Config.Builder() .SetSize(LevelPlayAdSize.BANNER) .SetPlacementName("placementName") .SetPosition(LevelPlayBannerPosition.BottomCenter) .SetDisplayOnLoad(true) .SetRespectSafeArea(true) .Build(); // Create banner instance bannerAd = new LevelPlayBannerAd("YOUR_BANNER_AD_UNIT_ID", adConfig); // Subscribe BannerAd events bannerAd.OnAdLoaded += BannerOnAdLoadedEvent; bannerAd.OnAdLoadFailed += BannerOnAdLoadFailedEvent; bannerAd.OnAdDisplayed += BannerOnAdDisplayedEvent; bannerAd.OnAdDisplayFailed += BannerOnAdDisplayFailedEvent; bannerAd.OnAdClicked += BannerOnAdClickedEvent; bannerAd.OnAdCollapsed += BannerOnAdCollapsedEvent; bannerAd.OnAdLeftApplication += BannerOnAdLeftApplicationEvent; bannerAd.OnAdExpanded += BannerOnAdExpandedEvent; } public void LoadBannerAd() { //Load the banner ad bannerAd.LoadAd(); } public void ShowBannerAd() { //Show the banner ad, call this method only if you turned off the auto show when you created this banner instance. bannerAd.ShowAd(); } public void HideBannerAd() { //Hide banner bannerAd.HideAd(); } public void DestroyBannerAd() { //Destroy banner bannerAd.DestroyAd(); } //Implement BannerAd Events public void BannerOnAdLoadedEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdLoadFailedEvent(LevelPlayAdError ironSourceError) {} public void BannerOnAdClickedEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdDisplayedEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdDisplayFailedEvent(LevelPlayAdInfo adInfo, LevelPlayAdError error){} public void BannerOnAdCollapsedEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdLeftApplicationEvent(LevelPlayAdInfo adInfo) {} public void BannerOnAdExpandedEvent(LevelPlayAdInfo adInfo) {}}
インタースティシャル広告の実装
インタースティシャル広告を実装するには、以下のサンプルを参照してください。
public class InterstitialAdSample { private LevelPlayInterstitialAd interstitialAd; void CreateInterstitialAd() { // Create InterstitialAd instance interstitialAd = new LevelPlayInterstitialAd("YOUR_INTERSTITIAL_AD_UNIT_ID"); // Subscribe InterstitialAd events interstitialAd.OnAdLoaded += InterstitialOnAdLoadedEvent; interstitialAd.OnAdLoadFailed += InterstitialOnAdLoadFailedEvent; interstitialAd.OnAdDisplayed += InterstitialOnAdDisplayedEvent; interstitialAd.OnAdDisplayFailed += InterstitialOnAdDisplayFailedEvent; interstitialAd.OnAdClicked += InterstitialOnAdClickedEvent; interstitialAd.OnAdClosed += InterstitialOnAdClosedEvent; interstitialAd.OnAdInfoChanged += InterstitialOnAdInfoChangedEvent; } void LoadInterstitialAd() { // Load or reload InterstitialAd interstitialAd.LoadAd(); } void ShowInterstitialAd() { // Show InterstitialAd, check if the ad is ready before showing if (interstitialAd.IsAdReady()) { interstitialAd.ShowAd(); } } void DestroyInterstitialAd() { // Destroy InterstitialAd interstitialAd.DestroyAd(); } // Implement InterstitialAd events void InterstitialOnAdLoadedEvent(LevelPlayAdInfo adInfo) { } void InterstitialOnAdLoadFailedEvent(LevelPlayAdError error) { } void InterstitialOnAdClickedEvent(LevelPlayAdInfo adInfo) { } void InterstitialOnAdDisplayedEvent(LevelPlayAdInfo adInfo) { } void InterstitialOnAdDisplayFailedEvent(LevelPlayAdInfo adInfo, LevelPlayAdError error) { } void InterstitialOnAdClosedEvent(LevelPlayAdInfo adInfo) { } void InterstitialOnAdInfoChangedEvent(LevelPlayAdInfo adInfo) { }}
リワード広告
リワード広告を実装するには、以下のサンプルを参照してください。
public class LevelPlaySample : MonoBehaviour{ private LevelPlayRewardedAd rewardedAd; void CreateRewardedAd() { rewardedAd = new LevelPlayRewardedAd("YOUR_REWARDED_AD_UNIT_ID"); rewardedAd.OnAdLoaded += OnAdLoaded; rewardedAd.OnAdLoadFailed += OnAdLoadFailed; rewardedAd.OnAdDisplayed += OnAdDisplayed; rewardedAd.OnAdDisplayFailed += OnAdDisplayFailed; rewardedAd.OnAdRewarded += OnAdRewarded; rewardedAd.OnAdClicked += OnAdClicked; rewardedAd.OnAdClosed += OnAdClosed; rewardedAd.OnAdInfoChanged += OnAdInfoChanged; } void LoadRewardedAd() { rewardedAd.LoadAd(); } void ShowRewardedAd(string placementName = null) { if (rewardedAd.IsAdReady() && !LevelPlayRewardedAd.IsPlacementCapped(placementName)) { rewardedAd.ShowAd(placementName); } } bool CheckIfRewardedAdIsReady() { return rewardedAd.IsAdReady(); } bool CheckIfPlacementIsCapped(string placementName) { return LevelPlayRewardedAd.IsPlacementCapped(placementName); } void OnAdLoaded(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad loaded with ad info {adInfo}"); } void OnAdLoadFailed(LevelPlayAdError adError) { Debug.Log($"Rewarded ad failed to load with ad error {adError}"); } void OnAdDisplayed(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad displayed with ad info {adInfo}"); } void OnAdDisplayFailed(LevelPlayAdDisplayInfoError adInfoError) { Debug.Log($"Rewarded ad failed to display with ad info and error {adInfoError}"); } void OnAdRewarded(LevelPlayAdInfo adInfo, LevelPlayReward adReward) { Debug.Log($"Rewarded ad gained reward with adInfo {adInfo} and reward {adReward}"); } void OnAdClicked(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad clicked with ad info {adInfo}"); } void OnAdClosed(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad closed with ad info {adInfo}"); } void OnAdInfoChanged(LevelPlayAdInfo adInfo) { Debug.Log($"Rewarded ad info changed with ad info {adInfo}"); } }
テストと検証
インテグレーションを検証するには、アプリケーションをビルドし、検証テストを実行します。
ビルドとテスト
Android または iOS 用のアプリケーションをビルドしてインテグレーションをテストします。LevelPlay ダッシュボードで無効にするまで、アプリケーションはテストモードのままです。
テストスイートの起動 (任意)
LevelPlay インテグレーションテストスイートを使用して、各広告ネットワークが正しく設定されていることを確認します。
アプリケーションでテストスイートを有効にするには、初期化を設定する前に API を呼び出します。
setMetaDataLevelPlay.SetMetaData("is_test_suite", "enable");
コールコールバックが成功したら、テストスイートを起動します。
LevelPlayEvents.onSdkInitializationCompletedEvent += SdkInitializationCompletedEvent;private void SdkInitializationCompletedEvent(){ ... //Launch test suite LevelPlay.LaunchTestSuite();}
インテグレーションの検証
以下の API を呼び出して、パッケージと依存関係の内部チェックを実行します。
LevelPlay.ValidateIntegration();
古い機能パッケージの削除
すべての広告が正しく機能し、プロジェクトに古い機能の広告 API がないことを確認したら、次のステップに従って Advertisement Legacy パッケージを削除します。
- Unity エディターで、Window (ウィンドウ) > Package Manager (パッケージマネージャー) に移動します。
- Packages (パッケージ):プロジェクト内。
- Advertisement Legacy を見つけて選択します。
- Remove (削除) を選択します。
API と特徴マッピング リファレンス
以下の表に、古い機能の Unity Ads SDK API パラメータを LevelPlay API パラメータにマップします。
ユースケース | Unity Ads APIパラメーター | LevelPlay パラメーター | ノート |
|---|---|---|---|
| 初期化 ID | | | Android と iOS の両方に適用可能 |
| SDK の初期化 | | | LevelPlay はテストモードをサポートしていません |
| 初期化成功イベント | | | |
| Init failed イベント | | | |
| 初期化されています | | サポートされていません | LevelPlay ではサポートされていません |
| メタデータの設定 | | | |
| ロードバナー | | | インスタンスを作成する必要がある |
| バナーのディスプレイ | | | インスタンスを作成する必要がある |
| バナー位置の設定 | | | コンストラクターまたはビルダーで渡されるユースケース |
| バナーのロードオプション | | および | |
| バナーオプション | | および および および および および | |
| オプションを表示 | | および および および および および | |
| 非表示バナー | | | インスタンスを作成する必要がある |
| バナークリック | | | インスタンスのイベントコールバック |
| バナー表示 | | | インスタンスのイベントコールバック |
| バナー非表示 | | サポートされていません | |
| リワード型広告のロード | | | インスタンスを作成する必要があります |
| リワード広告の表示 | | | インスタンスを作成する必要があります |
| ロード インタースティシャル | | | インスタンスを作成する必要がある |
| インタースティシャルを表示 | | | インスタンスを作成する必要がある |
| Ad loaded (ロードされた広告) | | または | インスタンスのイベントコールバック |
| 広告のロードに失敗しました | | または | インスタンスのイベントコールバック |
| 広告の表示に失敗しました | | または | インスタンスのイベントコールバック |
| 広告表示開始 | | または | インスタンスのイベントコールバック |
| 広告表示のクリック | | または | インスタンスのイベントコールバック |
| 広告表示が完了しました | | または | インスタンスのイベントコールバック |
| サポートされている | | サポートされていません | LevelPlay ではサポートされていません |
| デバッグモード | | サポートされていません | LevelPlay ではサポートされていません |
| パッケージバージョン | | | |
| 表示中 | | サポートされていません | LevelPlay ではサポートされていません |