Unity
Adiz Unity¶
Adiz Unityは、AdMobが提供する広告表示機能をより便利に使用できるように、Hiveが提供するUnity用の広告モジュールです。Adiz Unityが提供する広告の形態は次のとおりです。
- インタースティシャル広告
- バナー広告
- ネイティブ広告
- 報酬型広告
- 報酬型インタースティシャル広告
- アプリオープニング広告
Adiz Unityをインストールして使用するには、以下のガイドを順番に参照してください。
インストールまたはアップデート¶
- Adiz Unity開発環境を構成します。
- Adizの最新バージョンをダウンロードし、解凍します。
- UnityでAssets > Import Package > Custom Package…から.unitypackageファイルを選択し、Importをクリックしてください。
- Assetsフォルダの下にAdizファイルとフォルダが生成されたか確認してください。
- EDM4Uの最新バージョンをダウンロードしてインストールします。Hive SDK v4にはEDM4Uが含まれています。Hive SDK v4を使用している場合、EDM4Uを別途インストールする必要はありません。
現在使用中のAdizバージョンを更新するには、Adizを削除し、最新バージョンをダウンロードしてインストールしてください。
Unity設定¶
Android¶
Unityプロジェクトで生成されたAssets/Plugins/Android/AndroidManifest.xmlファイルにca-app-pub-XXXXX~YYYYY形式のAdMobId
値を追加してください。
<manifest>
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
動画広告を表示するには、ハードウェアアクセラレーションを有効にする必要があります。 AndroidManifest.xml ファイルにハードウェアアクセラレーションの設定を追加します。 application
タグに追加すると、全体のアプリケーションでハードウェアアクセラレーションが使用されます。 activity
タグに追加すると、広告を表示したい特定の Activity
のみでハードウェアアクセラレーションが使用されます。
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
</application>
UnityのAndroid Resolver Settings(Assets > External Dependency Manager > Android Resolver > Settings)でUse Jetifier.にチェックを入れます。
プレイヤー設定 > プレイヤー > ビルド 設定画面で以下の4つの項目をチェックします。
Proguardを使用する際、AdizモジュールにはProGuardルールが含まれています。したがって、プロジェクトにProGuardルールを追加する必要はありません。
iOS¶
Assets > External Dependency Manager > iOS Resolver > Settingsでstatic_framework
ビルド設定を解除します。
Unity ビルド時に生成された Podfile を開いて、以下のように構成します。
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git'
platform :ios, '12.0'
target 'UnityFramework' do
pod 'HiveAdizUnityPlugin', '2.1.0
end
target 'Unity-iPhone' do
end
use_frameworks!
# プロジェクトを使用する際のポッドのdyld問題の修正
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# xcode 15 ツールチェーンの問題
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
# 終了
config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "YES"
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
end
end
end
end
Unity ビルド時に生成された Xcode プロジェクトの Info.plist ファイルに以下のように GADApplicationIdentifier
キーを追加し、AdMobId
値(ca-app-pub-XXXXX~YYYYY 形式)をキー値として入力します。もしくは Assets/HiveAdiz/Editor/AdizPostProcess.cs ファイル内で GADApplicationIdentifier
設定行のコメントを解除し AdMobId
を追加すると自動的に設定されます。
追加で、iOS 14以上では Info.plistを更新する ガイドを参考にして SKAdNetwork
リストを Info.plist ファイルに追加します。 Assets/HiveAdiz/Editor/AdizPostProcess.cs ファイルを使用してビルド時に Info.plist ファイルに自動的に追加されます。
テスト広告設定¶
Adizは2つの方法でテスト広告を表示できます。 1. テストモードを有効にする: AdMobから発行されたテスト用広告のみを表示 2. テストデバイスを登録した後に広告を表示: 実際の広告をテストのために表示し、無効なトラフィックが発生しないようにテストし、テスト広告を表示するデバイスを登録して進めます
テストモードを有効にする¶
開発段階では、テスト広告をクリックしても広告主に費用が請求されないようにテストモードを有効にします。テストモードを有効にすると、テスト広告のみが表示されます。テストモードでは、コンソールにAdMob広告キーを入力しなくてもテスト広告が表示されます。商用配布時には、テストモードを無効にします。
テストモードを有効にする方法は2つあります。
- ハイブコンソールにテストデバイスを登録後、デモ広告に設定することをお勧めします:
コンソールガイドのテストデバイス管理の内容を参照してください。 - Adizクラスの
setTestMode()
メソッドを使用する:
以下の例コードを参照してください。
Warning
開発段階でテストモードでないときに広告を過度にクリックすると、無効なトラフィックと見なされ、AdMobアカウントが報告されて広告が表示されなくなる可能性があります。
Adiz.SetTestMode() メソッドの使い方¶
using hiveAdiz; // テストモードを有効にします。商用配布時は以下の行をコメントアウトします。
Adiz.SetTestMode(true);
// Adizモジュールのロギングを有効にします。ロギングはテストモードでのみ使用する必要があります。商用配布時には以下の行をコメントアウトしてください。
Adiz.SetLogEnable(true);
テストデバイスに広告を表示¶
以下の状況では、テストデバイスを登録してテスト広告を表示する必要があります。
- Hive コンソールに登録した AdMob 広告キーが正常に動作するかテストする場合
- GDPR メッセージを作成し、GDPR 同意ポップアップが正常に動作するか確認する場合
- 広告インスペクターを実行して広告リクエストを分析し、デバッグする場合
テストデバイスに広告を表示する方法は2つあります。
-
ハイブコンソールにテストデバイスを登録後、広告ユニットIDの使用に設定することをお勧めします:
コンソールガイドのテストデバイス管理の内容を参照してください。 -
Adiz クラスの
setTestDevice()
メソッドの使い方:
以下の 例のコード を参照してください。
Note
テストデバイスを登録せずに実際の広告を表示するテストを行うと、無効なトラフィックと見なされ、AbMobアカウントがブロックされ、広告が表示されなくなる可能性があります。テストデバイスを登録すると、広告表示時に「Test Mode」または「Test Ad」(ネイティブ広告)が表示されます。商用配信時にはテストデバイスを無効にする必要があります。
バナー、全画面広告または報酬型広告
ネイティブ広告
Adiz.setTestDevice() メソッドの使用¶
テストデバイスを登録するには、まずテストデバイスIDを確認します。UnityエンジンのAndroid環境でのテストデバイスID(例: 33BE2250B43518CCDA7DE426D04EE231
)は、以下の2つの方法で確認できます。
-
Adiz.Initialize()
を呼び出した後、Logcat ログを確認してください: -
Adiz.Initialize()
を呼び出した後、広告タイプに関係なくinitialize()
→load()
を呼び出し、Logcat ログを確認してください:
UnityエンジンのiOS環境でのテストデバイスID(例: B74F6468-1516-467C-99AD-CC5973C5DB52
)は、以下の2つの方法で確認できます。
-
Adiz.Initialize()
を呼び出した後、Logcat ログを確認してください: -
Adiz.Initialize()
呼び出し後、広告タイプに関係なくinitialize()
→load()
呼び出し後に Logcat ログを確認:
テストデバイスIDを確認した後、既存のAdiz初期化コードでAdiz.initialize
を実行する前にAdiz.setTestDevice(DEVICE_ID)
の行を追加します。DEVICE_ID
にはコピーしたテストデバイスIDを入力します。
using hiveAdiz;
public void Initialize() {
// 테스트 디바이스 설정
Adiz.SetTestDevice("33BE2250B43518CCDA7DE426D04EE231");
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
}
広告インスペクターの活用¶
広告インスペクターは、テストデバイス上で実際の広告をリクエストし、表示するプロセスをリアルタイムで分析するインアプリオーバーレイツールです。広告を読み込むのにかかった時間を知らせ、表示に失敗した場合はその理由を教えてくれます。また、特定の広告ネットワークを指定して広告が適切に表示されているか確認でき、問題がある場合はコードレベルでデバッグが可能です。このすべてのプロセスは広告インスペクターUIとともに行われます。Google Mobile Ads SDK Android 20.0.0、Google Mobile Ads SDK iOS 7.68.0以上に含まれており、AdizDeveloperTool.OpenAdInspector
を呼び出して使用できます。
広告検査ツールを使用するには、テストデバイスの登録が設定されている必要があります。
Adiz AppID 設定¶
Hive コンソール AppCenterに登録していた Adiz AppID を設定します。未設定の場合は Package Name または Bundle ID を使用します。
Adiz.SetAppId(appId);
Hive コンソールサーバー設定¶
使用する Hive コンソールサーバーを設定します。デフォルトは REAL
です。商用サーバーを使用しても、テストモードを有効にするとテスト広告のみが表示されます。
- Hive テストコンソールサーバー:
ZoneType.TEST
- Hive サンドボックスコンソールサーバー:
ZoneType.SANDBOX
- Hive 商用コンソールサーバー:
ZoneType.REAL
ZoneType selectZone = ZoneType.REAL;
Adiz.SetZone((int)selectZone);
ユーザー特化型広告の表示¶
iOS 14.5+でATT(アプリ追跡透明性)が導入され、個人情報保護が強化されました。それに伴い、ATT同意ポップアップでユーザーが活動追跡に同意した場合にのみ、ユーザーに特化した広告を表示できます。ユーザーに特化した広告を表示して広告収益を最大化するには、IDFA(広告主の識別子)メッセージを作成する必要があります。
AdMob ダッシュボードで以下のIDFAメッセージ作成ガイドに従ってメッセージを作成し、公開してください。
AdMobダッシュボードにIDFAメッセージを投稿すると、iOS 14.5+でAdizを初期化する際に自動的にIDFAメッセージが表示されます。IDFAメッセージウィンドウでユーザーが「続行」をクリックすると、ATT同意ポップアップが表示されます。
ATT同意ポップアップでユーザーが「許可」をクリックすると、IDFAが有効になり、ユーザーに特化した広告が表示されます。
Note
ヨーロッパおよびイギリス地域からアクセスしたユーザーにはGDPR同意ポップアップを表示します。ユーザーがGDPR項目に同意したことがない場合、GDPR同意ポップアップ表示後にIDFAメッセージが表示されず、すぐにATT同意ポップアップが表示されます。GDPR項目に同意したことがある場合、IDFAメッセージを正常に表示した後にATT同意ポップアップが表示されます。
GDPR同意ポップアップの表示(ヨーロッパ、イギリス)¶
ゲームがヨーロッパおよびイギリス(EEA & UK)をターゲットにしている場合、GDPR(欧州連合一般データ保護規則)同意ポップアップを表示する必要があります。GDPR同意ポップアップは、ユーザーのデバイスのIPアドレスがヨーロッパおよびイギリス(EEA & UK)のIPアドレスである場合にのみ表示されます。AdizはGDPR同意ポップアップの表示のためにGoogle UMP(ユーザーメッセージングプラットフォーム)をサポートしています。AdMobコンソールでGDPRメッセージを作成した後にAdizを初期化すると、ヨーロッパおよびイギリス地域からアクセスしたユーザーにGDPRポップアップが表示されます。
Warning
ヨーロッパおよびイギリス以外の地域をターゲットにする場合、例えば国内でのみサービスを計画している場合は GDPR同意ポップアップの表示(ヨーロッパ、イギリス) ステップをスキップし、Adiz.InitializeForNonGDPR()
メソッドを使用して初期化を進めることができます。
Adiz.Initialize()
メソッドを使用して初期化を進める場合、AdMobコンソールでGDPRメッセージを作成する必要があり、そうしないとAdizの初期化が正常に進行しません。
GDPRメッセージ作成¶
Google AdMobコンソールにアクセスしてGDPRメッセージを作成します。GDPRメッセージを作成する前に、まずGDPRメッセージ作成ガイドを参照してください。
GDPRメッセージを作成した場合、Adiz初期化時に自動的にGDPR同意ポップアップが表示されます。
Warning
Hive SDKを使用する場合、Hive Adizの初期化を完了した後にAuthV4.setup
を実行する必要があります。ATT(APP Tracking Transparency)の同意通知を表示した後にGDPRの同意画面が表示されると、Appleのアプリ審査でアプリが拒否される可能性があります。
GDPR同意および撤回機能の実装¶
GDPR同意ポップアップにある項目は、ユーザーが同意の有無をいつでも修正できるように修正機能を提供する必要があります。例えば、ユーザーが最初はGDPRに同意しなかったが、カスタマイズ広告を表示するために再度同意を希望する場合や、逆に最初はGDPRに同意したが、もう個人情報を提供したくないために同意を撤回したい場合があります。このような状況に対応するために、アプリ開発者は各項目に再同意または既存の同意を撤回する機能を実装する必要があります。GDPR同意/撤回機能を実装するには、次の手順に従います。
- GDPR同意ポップアップを再表示するボタンUIをアプリに実装します。
- Adiz初期化実装時に
isPrivacyOptionsRequired()
を呼び出し、ヨーロッパおよびイギリスからアクセスするユーザーには上記のボタンUIを表示し、それ以外の場合は表示しないように実装します。ヨーロッパおよびイギリスからアクセスするユーザーが上記のボタンを押すとshowPrivacyOptionsForm
を呼び出してGDPR同意ポップアップを再表示します。その後、ユーザーはアプリ内でいつでも「Manage Options」のようなボタンを押してGDPRの詳細項目の同意状況を修正できます。以下のshowPrivacyOptionsForm
は例示のために任意に実装したメソッドであり、開発者が望む形に実装を変更できます。// .... private void InitResultCB(AdizError error, string jsonString) { // 初期化完了コールバック関数 Debug.Log(TAG + "::InitResultCB:: errorCode : "+error.errorCode+" errorMessage : "+error.errorMessage+" json : "+jsonString); if(error.isSuccess()) { bool isPrivacyOptionsRequired = AdizConsentManager.IsPrivacyOptionsRequired(); if(isPrivacyOptionsRequired) { // 個人情報保護オプションボタンを表示。クリック時にShowPrivacyOptionsFormを呼び出す } else { // 個人情報保護オプションボタンを非表示 } } } private void ShowPrivacyOptionsForm() { // プライバシーオプションフォームを呼び出す if(AdizConsentManager.IsPrivacyOptionsRequired()) { AdizConsentManager.ShowPrivacyOptionsForm(new CommonHandlers.Builder() .OnResult(CommonResultCB) .Build()); } } // ....
GDPR同意年齢未満のユーザーのためのタグ(TFUA)設定¶
GDPR同意年齢未満のユーザーのためのタグ(Tag For Under the Age of Consent, TFUA)を使用して、ヨーロッパ経済地域(EEA)、イギリス、スイスに居住するユーザーを制限的なデータ処理対象として扱うように広告リクエスト時に設定できます。子供を対象としたサービスを提供するアプリの場合、AdizConsentManager.setUserPrivacySettings
を使用してユーザーが同意年齢未満であることを設定できます。ヨーロッパの国ごとに若干の違いがありますが、GDPRは16歳未満を親の同意が必要な年齢と定義しています。同意年齢未満の設定は、Adiz.initialize
を実行する前に設定する必要があります。
Warning
GDPR同意年齢未満タグ設定のsetTagForUnderAgeOfConsent
とCOPPA子供対象設定のsetTagForChildDirectedTreatment
を同時にtrue
に設定すると、COPPA子供対象設定setTagForChildDirectedTreatment
が優先的に適用されるため、これらを同時にtrue
に設定して使用しないでください。
Note
Hive SDK v4 24.2.0以上とAdiz 2.0.1以上を一緒に使用する場合、Hive SDKで設定した同意年齢未満ユーザーの有無が自動的に適用されるため、AdizConsentManager.setUserPrivacySettings
を呼び出す必要はありません。
using hiveAdiz;
public void Initialize() {
bool isTagForUnderAgeOfConsent = false; // 어린이인 경우 true로 변경
PrivacySettings settings = new PrivacySettings.Builder()
.SetTagForUnderAgeOfConsent(isTagForUnderAgeOfConsent)
.Build();
AdizConsentManager.SetUserPrivacySettings(settings);
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
}
GDPRテストデバイス設定¶
GDPR同意ポップアップは、デバイスのIPアドレスがヨーロッパおよびイギリスのIPアドレスの場合にのみ表示されます。開発段階では、IPアドレスに関係なくGDPR同意ポップアップを強制的に表示してポップアップ表示をテストすることができ、そのためにGDPRテストデバイスを設定する必要があります。GDPRテストデバイス設定のために、以下の手順に従ってください。以下の内容は、テストデバイスに広告を表示する方法と同様です。
- Adizを初期化します。テストデバイスIDを確認するための初期化であり、GDPR同意メッセージを作成する必要はありません。
Android StudioまたはXcodeのログを出力してデバイスIDを確認します。例のログは以下の通りです。
- Android: 에서
このデバイスをデバッグデバイスとして設定するには、new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231")を使用してください。
33BE2250B43518CCDA7DE426D04EE231
- iOS: で
<UMP SDK>このデバイスのデバッグモードを有効にするには、次のように設定します: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52]
B74F6468-1516-467C-99AD-CC5973C5DB52
- デバイスIDをコピーします。
- 既存のAdiz初期化コードで
Adiz.initialize
を実行する前にAdizGDPRManager.setTestDevice(DEVICE_ID)
を追加します。 - GDPR同意メッセージを作成し、Adizを再初期化してGDPR同意ポップアップが正しく表示されるか確認します。
using hiveAdiz; public void Initialize() { // GDPRテストデバイス設定 AdizGDPRManager.SetTestDevice("33BE2250B43518CCDA7DE426D04EE231"); Adiz.Initialize(new CommonHandlers.Builder() .OnResult(InitResultCB) .Build()); }
COPPA子供向け取り扱いタグ設定¶
子供オンラインプライバシー保護法(COPPA)の目的に従い、アプリ開発者は子供向け取り扱いタグ設定(tagForChildDirectedTreatment、TFCD)を使用して、広告リクエスト時にGoogleがコンテンツを子供向けコンテンツとして処理するかどうかを指定できます。子供向けとして処理してほしい場合は、AdizConsentManager.SetUserPrivacySettings
をAdiz.initialize
の実行前に呼び出す必要があります。AdizとHive SDKを一緒に使用する場合、子供向け取り扱いタグは自動的に適用されるため、別途設定は必要ありません。
using hiveAdiz;
public void Initialize() {
bool isTagForChildDirectedTreatment = false; // 子供の場合はtrueに変更
PrivacySettings settings = new PrivacySettings.Builder()
.SetTagForChildDirectedTreatment(isTagForChildDirectedTreatment)
.Build();
AdizConsentManager.SetUserPrivacySettings(settings);
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
}
広告メディエーションの追加¶
AdizはAdMobメディエーションを使用して広告を表示できます。AdMobメディエーションを追加するには、以下の手順に従ってください。
AdMobのメディエーション追加¶
AdMobコンソールで広告ソースの連携作業を進めます。以下の表に従って進めます。
AppLovin | Pangle | Unity Ads | Meta | |
---|---|---|---|---|
ステップ1: 設定 | Android iOS | Android iOS | Android iOS | Android iOS |
ステップ2: 広告ソース追加 | Android iOS | Android iOS | Android iOS | Android iOS |
ステップ3 | Adizアダプター追加 |
Adiz アダプターを追加する¶
Assets/HiveAdiz/Editor/Adiz_DefaultDependencies.xmlにライブラリの依存関係を追加します。
<dependencies>
<androidPackages>
<repositories>
<repository>https://repo.maven.apache.org/maven2</repository>
<repository>https://artifact.bytedance.com/repository/pangle/</repository>
</repositories>
<androidPackage spec="com.com2us.android.adiz:hive-adiz:2.1.0"/>
<!-- AppLovin -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-applovin:2.1.0"/>
<!-- Pangle -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-pangle:2.1.0"/>
<!-- Unity Ads -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-unityads:2.1.0"/>
<!-- Meta -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-meta:2.1.0"/>
</androidPackages>
<iosPods>
<sources>
<source>https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git</source>
</sources>
<iosPod name="HiveAdizUnityPlugin" version="2.1.0"/>
<iosPod name="HiveAdizAdapterAppLovin" version="2.1.0"/>
<iosPod name="HiveAdizAdapterPangle" version="2.1.0"/>
<iosPod name="HiveAdizAdapterUnityAds" version="2.1.0"/>
<iosPod name="HiveAdizAdapterMeta" version="2.1.0"/>
</iosPods>
</dependencies>
Adizアダプターの構成が正しく適用されているか確認するために、アプリを実行後、広告検査ツール画面で構成リストを確認します。
Adiz初期化¶
すべてのタイプの広告を表示する前に必ず実行しなければならないステップです。Adiz初期化を行うと、広告を表示するために必要な広告キーを受け取ることができます。テストモードを有効にしている場合は、テストキーを受け取ります。Hive SDKを使用している場合は、AuthV4.setup
を呼び出した後にAdiz初期化を進めます。
Warning
GDPR設定を使用する場合は、Hive Adizの初期化を完了した後にAuthV4.setup
を実行する必要があります。ATT(アプリ追跡透明性)同意通知を表示した後にGDPR同意画面が表示されると、Appleのアプリ審査でアプリが拒否される可能性があります。
using hiveAdiz;
public void Start() {
/* 생략 */
// HiveAdizのコールバックを使用するには、AdizCallbackManagerをGameObjectに登録する必要があります。
Adiz.InitPlugin();
}
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
// コールバックリスナーを初期化する
private void InitResultCB(AdizError error, string jsonString) {
Debug.Log(TAG + "::InitResultCB:: errorCode : "+error.errorCode+" errorMessage : "+error.errorMessage+" json : "+jsonString);
if(error.isSuccess()) {
JSONObject resJsonObject = new JSONObject (jsonString);
JSONObject jsonArray = resJsonObject.GetField ("keys");
if (jsonArray != null && jsonArray.count > 0) {
List interstitialKeyList = new List();
List bannerKeyList = new List();
List nativeKeyList = new List();
List rewardedKeyList = new List();
List rewardedInterstitialKeyList = new List();
List appOpenKeyList = new List();
List jsonList = jsonArray.list;
foreach (JSONObject jsonItem in jsonList) {
bool isDefault = false;
jsonItem.GetField(ref isDefault, "is_default");
// ゲームで直接広告キーを入力して使用する場合、is_defaultがfalseのキーリストを構成する例です。
if(isDefault == false) {
string hiveAdKey = null;
jsonItem.GetField(ref hiveAdKey, "key");
string form = null;
jsonItem.GetField(ref form, "form");
switch (form) {
case "interstitial":
interstitialKeyList.Add(hiveAdKey);
break;
case "banner":
bannerKeyList.Add(hiveAdKey);
break;
case "native":
nativeKeyList.Add(hiveAdKey);
break;
case "rewarded":
rewardedKeyList.Add(hiveAdKey);
break;
case "rewarded_interstitial":
rewardedInterstitialKeyList.Add(hiveAdKey);
break;
case "app_open":
appOpenKeyList.Add(hiveAdKey);
break;
}
}
}
foreach(string hiveAdKey in interstitialKeyList) {
Debug.Log("onSdkInitialize interstitialKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in bannerKeyList) {
Debug.Log("onSdkInitialize bannerKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in nativeKeyList) {
Debug.Log("onSdkInitialize nativeKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in rewardedKeyList) {
Debug.Log("onSdkInitialize rewardedKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in rewardedInterstitialKeyList) {
Debug.Log("onSdkInitialize rewardedInterstitialKeyList "+hiveAdKey);
}
foreach(string hiveAdKey in appOpenKeyList) {
Debug.Log("onSdkInitialize appOpenKeyList "+hiveAdKey);
}
}
}
}
初期化実行時にコールバックとして受け取るJSONファイルには広告キーのリストがあります。広告キーのリストは次のような形式になります。
{
"keys":[
{
"mediation_id":5,
"key":"ca-app-pub-3940256099942544/5354046379",
"form":"rewarded_interstitial",
"is_default":true,
"placement_id":"lobby01"
},
{
"mediation_id":4,
"key":"ca-app-pub-3940256099942544/5224354917",
"form":"rewarded",
"is_default":true,
"placement_id":"game02"
},
{
"mediation_id":3,
"key":"ca-app-pub-3940256099942544/2247696110",
"form":"native",
"is_default":true,
"placement_id":"event01"
},
{
"mediation_id":1,
"key":"ca-app-pub-3940256099942544/1033173712",
"form":"interstitial",
"is_default":true,
"placement_id":"mission01"
},
{
"mediation_id":2,
"key":"ca-app-pub-3940256099942544/6300978111",
"form":"banner",
"is_default":true,
"placement_id":"main01"
},
{
"mediation_id":6,
"key":"ca-app-pub-3940256099942544/9257395921",
"form":"app_open",
"is_default":true,
"placement_id":"appopen01"
}
]
}
テストモードで初期化を行うと、AdMob広告キーをHiveコンソールに登録していなくても、テスト用広告キーのリストを受け取ります。商用モードで初期化を行うと、Hiveコンソールに登録したAdMob広告キーのリストを受け取ります。
広告の形態(form
)ごとに1つの広告は、基本広告("is_default":true
の広告)として使用されます。どの広告形態を最初に登録した場合、その最初に登録した広告が基本広告となります。基本広告は、広告インスタンスを生成(initialize()
)する際に広告キー(hiveAdKey
)を入力する必要はありません。基本広告を変更するには、HiveHive コンソールで既存の基本広告を削除し、新たに広告を登録する必要があります。
広告コールバックリスナーの設定¶
各広告インスタンスを生成する際にAdizListener
を実装することで、広告の状態変化に応じてコールバックを受け取ることができます。
名称 | 説明 | 必須実装 |
---|---|---|
.OnAdLoad(OnAdLoadCB) | 広告ロード成功 | O |
.OnAdFail(OnAdLoadFailedCB) | 失敗(`error.errorCode()`と`error.errorMessage()`で失敗の理由を知ることができる) | O |
.OnAdShow(OnAdShowCB) | 広告の表示成功 | O |
.OnAdClick(OnAdClickCB) | 広告クリック | O |
.OnAdPaidEvent(OnAdPaidEventCB) | 広告表示後にpaid eventを受け取るタイミングで、広告収益情報が伝達される | O |
.OnAdClose(OnAdCloseCB) | 広告終了
| X |
.OnAdReward(OnAdRewardCB) | 報酬型広告(`rewarded`, `rewarded interstitial`)で広告が表示された後、ユーザーが報酬を受け取るタイミング | X |
private void OnAdLoadCB()
{
// 広告がロードされると呼び出されます。
// 広告ロードが成功した場合は、希望のタイミングで広告インスタンスの.show()を呼び出して広告を表示する必要があります。
Debug.Log(TAG + "::OnAdLoadCB");
// AdizInterstitialのロード完了後に表示
// requestShowAd();
}
private void OnAdLoadFailedCB(AdizError error) {
// 広告の読み込みが失敗した場合や他の理由で広告の表示が失敗した場合に呼び出されます。
Debug.Log(TAG + "::OnAdLoadFailedCB errorCode "+error.errorCode);
Debug.Log(TAG + "::OnAdLoadFailedCB errorMessage "+error.errorMessage);
}
private void OnAdShowCB()
{
// 広告が表示されると呼び出されます。
Debug.Log(TAG + "::OnAdShowCB");
}
private void OnAdCloseCB()
{
// 広告が閉じた場合に呼び出されます。
Debug.Log(TAG + "::OnAdCloseCB");
// AdizInterstitial 広告露出後に削除
// requestDestroyAd();
}
private void OnAdClickCB()
{
// 広告をクリックした場合に呼び出されます。
Debug.Log(TAG + "::OnAdClickCB");
}
private void OnAdRewardCB(RewardItem rewardItem)
{
// 報酬型広告、報酬型全画面広告で広告視聴に対する報酬が発生した場合に呼び出されます。
Debug.Log(TAG + "::OnAdRewardCB:: rewardItem.itemType : " + rewardItem.getItemType() + " rewardItem.itemAmount : " + rewardItem.getItemAmount());
// rewarded, rewardedInterstitial 広告でのみ渡されます
}
private void OnAdPaidEventCB(AdRevenueData adRevenueData)
{
// 広告に対する収益が発生した場合に呼び出されます。
Debug.Log(TAG + "::OnAdPaidEventCB:: adRevenueData.revenue : " + adRevenueData.getRevenue() + " adRevenueData.currency : " + adRevenueData.getCurrency());
}
エラーコード¶
Adiz.Initialize
とAdizListener
でOnAdFail()
を受け取ったときのAdizError
エラーコードとエラーメッセージは次のとおりです。
共通コード¶
番号 | ケース | 説明 |
---|---|---|
0 | 成功 | 成功 |
Adiz エラーコード¶
番号 | ケース | 説明 |
---|---|---|
-1 | InvalidParam | 無効なパラメータ |
-2 | NotSupported | サポートされていません |
-3 | InProgress | プロセス進行中 |
-4 | Network | ネットワークエラー |
-5 | NeedInitialize | 初期化が必要 |
-6 | ResponseFail | 応答失敗 |
-7 | Timeout | ネットワークタイムアウト |
-99 | Unknown | 不明なエラー |
広告プラットフォームエラーコード¶
番号 | ケース | 説明 |
---|---|---|
-101 | NeedLoad | 広告がロードされていません |
-102 | NeedReload | 広告表示時間の期限切れによる再ロードが必要 |
-103 | NotEnoughInventory | メディエーション応答は成功しましたが、インベントリ不足のため広告がありません |
-104 | MissingAppId | メディエーションリクエストのためのAppIDエラー |
-105 | InternalNetworkError | メディエーションネットワーク関連のエラー |
-106 | InvalidUnitId | 無効なUnit Id |
-107 | MediationNoFill | メディエーションアダプターが広告リクエストを処理できませんでした |
-108 | AlreadyLoaded | すでにロードされた状態 |
-109 | CannotRequestAds | 広告をリクエストできません |
-201 | GdprConsentError | GDPR同意エラー |
-202 | IsNotPrivacyOptionsRequired | GDPR同意ポップアップを表示できないか、表示しなくてもよい状態です |
広告の表示と広告の終了¶
広告を表示、終了するには次の手順に従います。
- 表示したい広告の形式ごとに広告クラスで広告インスタンスを生成します。表示したい広告が 基本広告 でない場合は、 初期化 で取得した広告キーまたは位置IDを入力する必要があります。広告キー(
hiveAdKey
)または位置ID(placementId
)を入力しないと、基本広告インスタンスが生成されます。位置IDはハイブコンソールで設定でき、詳細についてはコンソールガイドの Admob設定 ページを参照してください。 - 表示したい広告をロード(
load()
)します。 - 表示したい広告をロード(
load()
)します。 - ロードした広告を表示(
show()
)します。広告を再表示するにはload()
を再度呼び出した後、show()
を呼び出す必要があります。 - 広告を終了するには
destroy()
を呼び出します。
全面広告 (インタースティシャル)¶
画面全体を占める全面広告です。
// Create AdizInterstitial Instance
private AdizInterstitial InterstitialAd = null;
public void requestInitAd(string interstitialAdKey) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(interstitialAdKey)) {
// デフォルトの AdizInterstitial インスタンスを初期化します (AdEventHandlers)
InterstitialAd = AdizInterstitial.Initialize(eventHandlers);
} else {
// AdizInterstitial インスタンスを初期化します (hiveAdKey, AdEventHandlers)
InterstitialAd = AdizInterstitial.Initialize(interstitialAdKey, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string interstitialPlacementId) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(interstitialPlacementId)) {
// デフォルトの AdizInterstitial インスタンスを初期化します (AdEventHandlers)
InterstitialAd = AdizInterstitial.Initialize(eventHandlers);
} else {
// AdizInterstitial インスタンスを初期化します (placementId, AdEventHandlers)
InterstitialAd = AdizInterstitial.InitializeWithPlacementId(interstitialPlacementId, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizInterstitial
if(InterstitialAd != null && InterstitialAd.IsInitialized()) InterstitialAd.Load();
}
public void requestShowAd() {
// AdizInterstitialを表示
if(InterstitialAd != null && InterstitialAd.IsLoaded()) InterstitialAd.Show();
}
public void requestDestroyAd() {
// Destroy AdizInterstitial
if(InterstitialAd != null) InterstitialAd.Destroy();
InterstitialAd = null;
}
バナー広告 (Banner)¶
特定のサイズのバナーを表示するバナー広告です。バナー広告はOnAdClose()
コールバックを受け取りません。したがって、他の場所でdestroy()
を呼び出して広告を終了する必要があります。
BannerSize
は標準バナーサイズに従います。
サイズポイント (幅x高さ) | 説明 | サポート対象 | BannerSize 定数 |
---|---|---|---|
320x50 | バナー | 携帯電話およびタブレット | BannerSize.NORMAL |
320x100 | 大バナー | 携帯電話およびタブレット | BannerSize.MEDIUM |
300x250 | IAB 中型長方形 | 携帯電話およびタブレット | BannerSize.LARGE |
468 x 60 | IAB フルサイズバナー | タブレット | BannerSize.FULL |
PositionType
は最上部または最下部です。デフォルト値は最下部です。
整列 | 説明 | PositionType 定数 |
---|---|---|
最上部整列 | 画面最上部整列指定(iOSはSafeArea基準最上部整列指定) | PositionType.TOP |
最下部整列 (デフォルト) | 画面最下部整列指定(iOSはSafeArea基準最下部整列指定) | PositionType.BOTTOM |
// Create AdizBanner Instance
private AdizBanner BannerAd = null;
public void requestInitAd(string bannerAdKey) {
// バナーサイズを設定
private BannerSize bannerSize = BannerSize.NORMAL;
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(bannerAdKey)) {
// デフォルトのAdizBannerインスタンスを初期化します (AdEventHandlers)
BannerAd = AdizBanner.Initialize(bannerSize, eventHandlers);
} else {
// AdizBannerインスタンスを初期化します (hiveAdKey, AdEventHandlers)
BannerAd = AdizBanner.Initialize(bannerAdKey, bannerSize, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string bannerPlacementId) {
// バナーサイズを設定
private BannerSize bannerSize = BannerSize.NORMAL;
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(bannerPlacementId)) {
// デフォルトのAdizBannerインスタンスを初期化します (AdEventHandlers)
BannerAd = AdizBanner.Initialize(bannerSize, eventHandlers);
} else {
// AdizBannerインスタンスを初期化します (placementId, AdEventHandlers)
BannerAd = AdizBanner.InitializeWithPlacementId(bannerPlacementId, bannerSize, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizBanner
if(BannerAd != null && BannerAd.IsInitialized()) BannerAd.Load();
}
public void requestShowAd() {
// Set position type
private PositionType bannerPosition = PositionType.TOP;
// AdizBannerを表示
if(BannerAd != null && BannerAd.IsLoaded()) BannerAd.Show(bannerPosition);
}
public void requestDestroyAd() {
// Destroy AdizBanner
if(BannerAd != null) BannerAd.Destroy();
BannerAd = null;
}
ネイティブ広告 (Native)¶
特定のサイズのネイティブテンプレートを表示するネイティブ広告です。ネイティブ広告は縦画面に最適化されているため、縦型ゲーム(縦画面ゲーム)での使用を推奨します。ネイティブ広告は OnAdClose()
コールバックを受け取りません。したがって、他の場所で destroy()
を呼び出して広告を終了する必要があります。
現在のテンプレートはsmall
またはmedium
サイズをサポートしています。
サイズポイント (幅x高さ) | テンプレート | 配置 | BannerSize 定数 |
---|---|---|---|
355x91 (比率調整) | small サイズ | Top / Bottom | BannerSize.NORMAL |
355x370 (比率調整) | medium サイズ | Center (固定) | BannerSize.MEDIUM, BannerSize.LARGE, BannerSize.FULL |
small
テンプレートでの PositionType
は最上部または最下部であり、デフォルト値は最下部です。
整列 | 説明 | PositionType 定数 |
---|---|---|
最上部整列 | 画面の最上部に整列指定(iOSはSafeArea基準の最上部整列指定) | PositionType.TOP |
最下部整列(デフォルト) | 画面の最下部に整列指定(iOSはSafeArea基準の最下部整列指定) | PositionType.BOTTOM |
medium
テンプレートは配置を選択できず、デフォルトで中央配置を使用します。
// AdizNativeインスタンスを作成
private AdizNative NativeAd = null;
public void requestInitAd(string nativeAdKey) {
// バナーサイズを設定
private BannerSize bannerSize = BannerSize.NORMAL;
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(nativeAdKey)) {
// デフォルトのAdizNativeインスタンスを初期化します (AdEventHandlers)
NativeAd = AdizNative.Initialize(bannerSize, eventHandlers);
} else {
// AdizNativeインスタンスを初期化します (hiveAdKey, AdEventHandlers)
NativeAd = AdizNative.Initialize(nativeAdKey, bannerSize, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string nativePlacementId) {
// バナーサイズを設定
private BannerSize bannerSize = BannerSize.NORMAL;
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(nativePlacementId)) {
// デフォルトの AdizNative インスタンスを初期化します (AdEventHandlers)
NativeAd = AdizNative.Initialize(bannerSize, eventHandlers);
} else {
// AdizNative インスタンスを初期化します (placementId, AdEventHandlers)
NativeAd = AdizNative.InitializeWithPlacementId(nativePlacementId, bannerSize, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizNative
if(NativeAd != null && NativeAd.IsInitialized()) NativeAd.Load();
}
public void requestShowAd() {
// Set position type
private PositionType bannerPosition = PositionType.TOP;
// AdizNativeを表示
if(NativeAd != null && NativeAd.IsLoaded()) NativeAd.Show(bannerPosition);
}
public void requestDestroyAd() {
// Destroy AdizNative
if(NativeAd != null) NativeAd.Destroy();
NativeAd = null;
}
リワード広告 (Rewarded)¶
ユーザーが広告を一定時間以上視聴するとリワードを受け取るリワード広告です。リワードの支払いが完了すると、OnAdReward()
コールバックでリワードアイテムの情報を受け取ります。
// Create AdizRewarded Instance
private AdizRewarded RewardVideoAd = null;
public void requestInitAd(string rewardedAdKey) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdReward(OnAdRewardCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(rewardedAdKey)) {
// デフォルトのAdizRewardedインスタンスを初期化します (AdEventHandlers)
RewardVideoAd = AdizRewarded.Initialize(eventHandlers);
} else {
// AdizRewardedインスタンスを初期化します (hiveAdKey, AdEventHandlers)
RewardVideoAd = AdizRewarded.Initialize(rewardedAdKey, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string rewardedPlacementId) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdReward(OnAdRewardCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(rewardedPlacementId)) {
// デフォルトの AdizRewarded インスタンスを初期化します (AdEventHandlers)
RewardVideoAd = AdizRewarded.Initialize(eventHandlers);
} else {
// AdizRewarded インスタンスを初期化します (placementId, AdEventHandlers)
RewardVideoAd = AdizRewarded.InitializeWithPlacementId(rewardedPlacementId, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizRewarded
if(RewardVideoAd != null && RewardVideoAd.IsInitialized()) RewardVideoAd.Load();
}
public void requestShowAd() {
// AdizRewardedを表示
if(RewardVideoAd != null && RewardVideoAd.IsLoaded()) RewardVideoAd.Show();
}
public void requestDestroyAd() {
// AdizRewardedを破棄します
if(RewardVideoAd != null) RewardVideoAd.Destroy();
RewardVideoAd = null;
}
報酬型インタースティシャル広告 (Rewarded Interstitial)¶
ユーザーが広告を一定時間以上視聴すると報酬を受け取る報酬型インタースティシャル広告です。報酬の支払いが完了すると、OnAdReward()
コールバックで報酬アイテム情報を受け取ります。
// Create AdizRewardedInterstitial Instance
private AdizRewardedInterstitial RewardedInterstitialAd = null;
public void requestInitAd(string rewardedInterstitialAdKey) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdReward(OnAdRewardCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(rewardedInterstitialAdKey)) {
// デフォルトの AdizRewardedInterstitial インスタンスを初期化します (AdEventHandlers)
RewardedInterstitialAd = AdizRewardedInterstitial.Initialize(eventHandlers);
} else {
// AdizRewardedInterstitial インスタンスを初期化します (hiveAdKey, AdEventHandlers)
RewardedInterstitialAd = AdizRewardedInterstitial.Initialize(rewardedInterstitialAdKey, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string rewardedInterstitialPlacementId) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdClick(OnAdClickCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdReward(OnAdRewardCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(rewardedInterstitialPlacementId)) {
// デフォルトの AdizRewardedInterstitial インスタンスを初期化します (AdEventHandlers)
RewardedInterstitialAd = AdizRewardedInterstitial.Initialize(eventHandlers);
} else {
// AdizRewardedInterstitial インスタンスを初期化します (placementId, AdEventHandlers)
RewardedInterstitialAd = AdizRewardedInterstitial.InitializeWithPlacementId(rewardedInterstitialPlacementId, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizRewardedInterstitial
if(RewardedInterstitialAd != null && RewardedInterstitialAd.IsInitialized()) RewardedInterstitialAd.Load();
}
public void requestShowAd() {
// Show AdizRewardedInterstitial
if(RewardedInterstitialAd != null && RewardedInterstitialAd.IsLoaded()) RewardedInterstitialAd.Show();
}
public void requestDestroyAd() {
// AdizRewardedInterstitialを破棄する
if(RewardedInterstitialAd != null) RewardedInterstitialAd.Destroy();
RewardedInterstitialAd = null;
}
アプリオープニング広告 (AppOpen)¶
アプリの状態がバックグラウンドからフォアグラウンドに変更されるときに、事前にロードしておいた(load()
)広告を表示するアプリオープニング広告です。広告をロードしてから3時間が経過した後にshow()
を呼び出すと、広告を自動的に再ロードした後に広告を表示します。一度でも広告を表示した後は、広告は自動的にロードされません。
// Create AdizAppOpen Instance
private AdizAppOpen AppOpenAd = null;
public void requestInitAd(string appOpenAdKey) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdClick(OnAdClickCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(appOpenAdKey)) {
// デフォルトのAdizAppOpenインスタンスを初期化します (AdEventHandlers)
AppOpenAd = AdizAppOpen.Initialize(eventHandlers);
} else {
// AdizAppOpenインスタンスを初期化します (hiveAdKey, AdEventHandlers)
AppOpenAd = AdizAppOpen.Initialize(appOpenAdKey, eventHandlers);
}
}
public void requestInitAdWithPlacementId(string appOpenPlacementId) {
AdEventHandlers eventHandlers = new AdEventHandlers.Builder()
.OnAdLoad(OnAdLoadCB)
.OnAdShow(OnAdShowCB)
.OnAdClose(OnAdCloseCB)
.OnAdFail(OnAdLoadFailedCB)
.OnAdClick(OnAdClickCB)
.OnAdPaidEvent(OnAdPaidEventCB)
.Build();
if(string.IsNullOrEmpty(appOpenPlacementId)) {
// デフォルトの AdizAppOpen インスタンスを初期化します (AdEventHandlers)
AppOpenAd = AdizAppOpen.Initialize(eventHandlers);
} else {
// AdizAppOpen インスタンスを初期化します (placementId, AdEventHandlers)
AppOpenAd = AdizAppOpen.InitializeWithPlacementId(appOpenPlacementId, eventHandlers);
}
}
public void requestLoadAd() {
// Load AdizAppOpen
if(AppOpenAd != null && AppOpenAd.IsInitialized()) AppOpenAd.Load();
}
public void requestShowAd() {
// Show AdizAppOpen
Debug.Log("[appOpenAd] appOpenAd don't request Show");
}
public void requestDestroyAd() {
// Destroy AdizAppOpen
if(AppOpenAd != null) AppOpenAd.Destroy();
AppOpenAd = null;
}
HiveAdizの削除¶
HiveAdizを削除するには、Unityプロジェクト内の以下のフォルダーを削除してください。
- Assets/HiveAdiz
- Assets/HiveAdiz_Example