Unity Ads をメディエーションと統合する

このガイドでは、Google Mobile Ads SDK を使用して、ウォーターフォール統合をカバーするメディエーションを使用して Unity Ads から広告を読み込んで表示する方法について説明します。広告ユニットのメディエーション設定に Unity Ads を追加する方法と、Unity Ads SDK とアダプターをアプリに統合する方法について説明します。 Flutter

サポートされている統合と広告フォーマット

AdMob Unity Ads のメディエーション アダプタには、次の機能があります。

統合
単価設定  1
フォーマット
バナー
インタースティシャル
特典

1 入札の統合はクローズド ベータ版です。アクセス権をリクエストするには、アカウント マネージャーにお問い合わせください。

要件

  • 最新の Google Mobile Ads SDK
  • Flutter 3.7.0 以降
  • Android にデプロイする場合:
    • Android API レベル 21 以降
  • iOS にデプロイするには
    • iOS デプロイ ターゲットが 12.0 以降
  • Google Mobile Ads SDK で構成された動作する Flutter プロジェクト。詳細については、スタートガイドをご覧ください。
  • メディエーションのスタートガイドを完了していること

ステップ 1: Unity Ads UI で設定を行う

Unity Ads に登録またはログインします。

プロジェクトを作成する

Unity Ads ダッシュボードで [プロジェクト] に移動し、[プロジェクトを作成] をクリックします。

フォームに入力し、[Create Project] をクリックしてプロジェクトを追加します。

[収益化] > [使ってみる] に移動し、[使ってみる] をクリックします。

[プロジェクトの設定] モーダルで、[メディエーションを使用します] を選択し、[メディエーション パートナー] に [Google Admob] を選択し、[次へ] をクリックします。

広告設定を選択して、[次へ] をクリックします。

フォームに記入して [プロジェクトを追加] をクリックします。

ゲーム ID をメモします。

広告ユニットを作成する

[収益化] > [広告ユニット] に移動し、[広告ユニットを追加] をクリックします。

[広告ユニット名] を入力し、[プラットフォーム] と [広告フォーマット] を選択します。

Android

iOS

最後に、[作成] をクリックして広告ユニットを保存します。

プレースメントを追加する

単価設定

入札プレースメントを作成するには、Google アカウント マネージャーにお問い合わせください。

プロジェクトが作成されたら、[収益化] > [プレースメント] に移動します。新しいプレースメントを作成するには、広告ユニットの [プレースメントを追加] をクリックします。

必要な情報を入力して [プレースメントを追加] をクリックします。

プレースメント ID をメモしておきます。

Android

iOS

Unity Ads Reporting API キーを確認する

単価設定

この手順は、入札の統合では必要ありません。

AdMob 広告ユニット ID を設定するには、ゲーム IDプレースメント ID に加えて、Unity Ads の API KeyOrganization core ID も必要です。

[収益化] > [設定] > [API 管理] に移動し、[収益化統計情報 API アクセスキー] をメモします。

次に、[収益化] > [組織の設定] に移動し、組織のコア ID をメモします。

テストモードをオンにする

テストモードは、Unity Ads ダッシュボードで有効にできます。プロジェクトの設定で、[テスト] タブを選択します。

アプリのテストモードを強制的に有効にするには、各プラットフォームの編集ボタンをクリックし、[クライアントのテストモードをオーバーライド] をオンにして、[すべてのデバイスでテストモードを強制的にオンにする(テスト広告を使用する)] を選択します。

Android

iOS

または、[テストデバイスを追加] ボタンをクリックして、特定のデバイスでテストモードを有効にすることもできます。

フォームに記入して [保存] をクリックします。

ステップ 2: AdMob UI で Unity Ads のデマンドを設定する

広告ユニットのメディエーション設定を構成する

Android

手順については、Android のガイドの手順 2 をご覧ください。

iOS

手順については、iOS 向けガイドの手順 2 をご覧ください。

GDPR と米国の州規制の広告パートナー リストに Unity Ads を追加

GDPR 設定米国の州規制の設定の手順に沿って、AdMob 管理画面の GDPR と米国の州規制の広告パートナー リストに Unity Ads を追加します。

ステップ 3: Unity Ads SDK とアダプタをインポートする

pub.dev による統合

パッケージの pubspec.yaml ファイルに、最新バージョンのUnity Ads SDK とアダプタを含む次の依存関係を追加します。

dependencies:
  gma_mediation_unity: ^1.0.0

手動による統合

Unity Ads 用の Google Mobile Ads メディエーション プラグインの最新バージョンをダウンロードし、ダウンロードしたファイルを解凍して、解凍したプラグイン フォルダ(とその内容)を Flutter プロジェクトに追加します。次に、次の依存関係を追加して、pubspec.yaml ファイルでプラグインを参照します。

dependencies:
  gma_mediation_unity:
    path: path/to/local/package

ステップ 4: Unity Ads SDK にプライバシー設定を実装する

Google の EU ユーザーの同意ポリシーに基づき、デバイス ID と個人データの使用について、欧州経済領域(EEA)のユーザーに対して特定の情報を開示し、同意を得る必要があります。このポリシーには、EU の e プライバシー指令と一般データ保護規則(GDPR)の要件が反映されています。同意を求める際は、個人データを収集、受領、または使用する可能性があるメディエーション チェーン内の各広告ネットワークを特定し、各ネットワークの使用に関する情報を提供する必要があります。現在のところ、Google はユーザーの同意に関する選択を自動的にこのようなネットワークに渡すことはできません。

Unity Ads 用の Google Mobile Ads メディエーション プラグインには、 GmaMediationUnity.setGDPRConsent() メソッドが含まれています。次のサンプルコードは、同意情報を Unity Ads SDK に渡す方法を示しています。このメソッドを呼び出す場合は、Google Mobile Ads SDK で広告をリクエストする前に呼び出すことをおすすめします。

import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...

GmaMediationUnity.setGDPRConsent(true);

各メソッドで指定できる値の詳細については、Unity Ads のプライバシー同意とデータ API ガイドと GDPR への準拠ガイドをご覧ください。

米国のプライバシー関連州法

米国の州のプライバシー法 は、ユーザーに「個人情報」の「販売」を拒否する権利を保障する法律で、「販売者」パーティのホームページにある「個人情報を販売しない」リンクから販売を拒否することができます。米国の州のプライバシー関連法の遵守ガイドでは、Google 広告配信で制限付きデータ処理を有効にできますが、Google はメディエーション チェーン内の各広告ネットワークにこの設定を適用することはできません。そのため、個人情報の販売に関与する可能性があるメディエーション チェーンの各広告ネットワークを特定し、各ネットワークのガイダンスに沿ってコンプライアンスを確保する必要があります。

Unity Ads 用の Google Mobile Ads メディエーション プラグインには、 GmaMediationUnity.setCCPAConsent() メソッドが含まれています。次のサンプルコードは、同意情報を Unity Ads SDK に渡す方法を示しています。このメソッドを呼び出す場合は、Google Mobile Ads SDK で広告をリクエストする前に呼び出すことをおすすめします。

import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...

GmaMediationUnity.setCCPAConsent(true);

ステップ 5: 必要なコードを追加する

Android

Unity Ads の Android 統合に追加のコードは必要ありません。

iOS

SKAdNetwork の統合

Unity Ads のドキュメントに沿って、SKAdNetwork ID をプロジェクトの Info.plist ファイルに追加します。

ステップ 6: 実装をテストする

テスト広告を有効にする

AdMob にテストデバイスを登録し、Unity Ads 管理画面でテストモードを有効にしてください。

テスト広告を確認する

Unity Ads からテスト広告が配信されていることを確認するには、広告インスペクタで Unity Ads(入札)と Unity Ads(ウォーターフォール)の広告ソースを使用して、単一の広告ソースのテストを有効にします。

エラーコード

アダプターが Unity Ads から広告を受信できない場合、パブリッシャーは次のクラスの ResponseInfo を使用して、広告レスポンスから根本的なエラーを確認できます。

Android

com.google.ads.mediation.unity.UnityAdapter
com.google.ads.mediation.unity.UnityMediationAdapter

iOS

GADMAdapterUnity
GADMediationAdapterUnity

広告の読み込みに失敗したときに UnityAds アダプタによってスローされるコードとそれに付随するメッセージは次のとおりです。

Android

エラーコード 理由
0-10 UnityAds SDK からエラーが返されました。詳しくは、コードをご覧ください。
101 Admob UI で設定された UnityAds サーバー パラメータが存在しないか、無効です。
102 UnityAds から NO_FILL ステータスのプレースメントが返されました。
103 UnityAds から、ステータスが無効のプレースメントが返されました。
104 UnityAds が null コンテキストで広告を表示しようとしました。
105 Unity Ads からの広告の初期化、読み込み、表示に使用されるコンテキストが Activity インスタンスではない。
106 UnityAds が、表示の準備ができていない広告を表示しようとしました。
107 UnityAds はデバイスでサポートされていません。
108 UnityAds で一度に読み込める広告は、プレースメントごとに 1 つだけです。
109 UnityAds がエラー状態になって終了しました。
200-204 UnityAds バナーに特定のエラーが表示される。詳しくは、コードをご覧ください。

iOS

0~9 UnityAds SDK からエラーが返されました。詳しくは、Unity のドキュメントをご覧ください。
101 Admob UI で設定された UnityAds サーバー パラメータが存在しないか、無効です。
102 UnityAds でサポートされていないデバイス。
103 UnityAds がエラー状態 kUnityAdsFinishStateError で表示を終了しました。
104 初期化呼び出し後に Unity 広告オブジェクトが nil になる。
105 広告の準備ができていないために、Unity Ads を表示できませんでした。
106 UnityAds が、プレースメントの状態が kUnityAdsPlacementStateNoFill のプレースメント変更コールバックを呼び出しました。
107 UnityAds が、プレースメントの状態が kUnityAdsPlacementStateDisabled のプレースメント変更コールバックを呼び出しました。
108 このプレースメントにはすでに広告が読み込まれています。UnityAds SDK では、同じプレースメントに複数の広告を読み込むことはできません。

Unity Ads Flutter メディエーション アダプタの変更履歴

バージョン 1.1.0

  • Unity Android アダプター バージョン 4.12.3.0 との互換性を確認しました
  • Unity iOS アダプター バージョン 4.12.3.1 との互換性を確認しました
  • Google Mobile Ads Flutter プラグイン バージョン 5.2.0 でビルド、テスト済み。

バージョン 1.0.0

  • 初回リリース。
  • Unity Android アダプター バージョン 4.10.0.0 との互換性を確認しました
  • Unity iOS アダプター バージョン 4.10.0.0 との互換性を確認しました
  • Google Mobile Ads Flutter プラグイン バージョン 5.0.0 でビルド、テスト済み。