Unity
Adiz Unity¶
Adiz Unityは、Hiveが提供するUnity用の広告モジュールで、AdMobが提供する広告露出機能をより簡単に使用できるようにします。Adiz Unityが提供する広告の種類は以下の通りです。
- インタースティシャル広告
- バナー広告
- ネイティブ広告
- 報酬型広告
- 報酬型インタースティシャル広告
- アプリオープン広告
Adiz Unityをインストールして使用するために、以下のガイドを参照してください。
インストールまたは更新¶
- Adiz Unity開発環境をセットアップします。
- こちらからAdizの最新バージョンをダウンロードし、解凍します。
- Unityで、Assets > Import Package > Custom Package…オプションを選択し、.unitypackageファイルを選択して、Importをクリックします。
- AdizのファイルとフォルダーがAssetsフォルダーの下に作成されているか確認します。
- 最新バージョンのEDM4Uをダウンロードしてインストールします。Hive SDK v4にはEDM4Uが含まれています。Hive SDK v4を使用している場合、EDM4Uを別途インストールする必要はありません。
現在使用中のAdizのバージョンを更新するには、こちらをクリックしてAdizをアンインストールし、その後最新バージョンをダウンロードしてインストールしてください。
Unityの設定¶
Android¶
AdMobId
の値を、Unityプロジェクトで作成されたAssets/Plugins/Android/AndroidManifest.xmlファイルに、ca-app-pub-XXXXX~YYYYYの形式で追加します。
<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>
Jetifierを使用してください。をUnityのAndroid Resolver Settings(Assets > External Dependency Manager > Android Resolver > Settings)で確認してください。
プレイヤー設定 > プレイヤー > ビルド 設定画面で、次の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.3
end
target 'Unity-iPhone' do
end
use_frameworks!
# fix for dyld issue in pods when using Project
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# xcode 15 Toolchain Issue
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 }
# end
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
GADApplicationIdentifier
キーをUnityビルド中に生成されたXcodeプロジェクトのInfo.plistファイルに追加し、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つあります。
- Hiveコンソールにテストデバイスを登録した後、デモ広告で設定してください(推奨):
コンソールガイドのテストデバイスの管理セクションを参照してください。 - Adizクラスの
setTestMode()
メソッドを使用してください:
以下のサンプルコードを参照してください。
Warning
開発段階でテストモードではないときに広告を過剰にクリックすると、無効なトラフィックと見なされる可能性があり、あなたのAdMobアカウントが報告され、広告が表示されなくなる可能性があります。
Adiz.SetTestMode() メソッドを使用する¶
using hiveAdiz; // テストモードを有効にします。 本番展開のために以下の行をコメントアウトしてください。
Adiz.SetTestMode(true);
// Adizモジュールのログ記録を有効にします。ログ記録はテストモードでのみ使用する必要があります。プロダクションデプロイメントでは以下の行をコメントアウトしてください。
Adiz.SetLogEnable(true);
テストデバイスの広告露出¶
テスト広告を表示するには、テストデバイスを登録する必要があります。
- Hive コンソールに登録された AdMob 広告キーが正しく機能しているかテストします
- GDPR メッセージを書いて、GDPR 同意ポップアップが正しく機能しているか確認します
- 広告インスペクターを実行して、広告リクエストを分析およびデバッグします
テストデバイスに広告を表示する方法は2つあります。
-
テストデバイスをHiveコンソールに登録した後、広告ユニットIDを使用に設定してください(推奨):
コンソールガイドのTest Device Managementセクションを参照してください。 -
Adizクラスの
setTestDevice()
メソッドを使用してください:
以下の例のコードを参照してください。
Note
テストデバイスを登録せずに実際の広告を表示するテストを行うと、無効なトラフィックと見なされる可能性があり、あなたのAdMobアカウントがブロックされ、今後の広告表示ができなくなることがあります。テストデバイスを登録すると、広告表示中に「テストモード」または「テスト広告」(ネイティブ広告)が表示されます。商業配信中はテストデバイスを無効にする必要があります。
バナー、インタースティシャル広告、または報酬型広告
ネイティブ広告
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)
を追加します。コピーしたテストデバイスIDをDEVICE_ID
に入力してください。
using hiveAdiz;
public void Initialize() {
// set test device
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設定¶
登録したAdiz AppIDをHiveコンソールのAppCenterで設定します。設定されていない場合、パッケージ名またはバンドル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(広告主の識別子)メッセージを作成する必要があります。
以下に示すように、Google AdMobダッシュボードでIDFAメッセージを書いて公開してください。
IDFAメッセージを書くときは、以下のガイドを参照できます。
AdMobダッシュボードにIDFAメッセージを投稿すると、iOS 14.5以降のAdiz初期化中にIDFAメッセージが自動的に表示されます。ユーザーがIDFAメッセージウィンドウで「続行」をクリックすると、ATT同意ポップアップが表示されます。
ユーザーがATT同意ポップアップで「許可」をクリックすると、IDFAが有効になり、ユーザー特有の広告が表示されます。
Note
ヨーロッパおよび英国からアクセスしているユーザーは、GDPR同意ポップアップが表示されます。ユーザーがGDPR項目に同意したことがない場合、GDPR同意ポップアップの後にATT同意ポップアップが表示され、IDFAメッセージは表示されません。ユーザーが以前にGDPR項目に同意したことがある場合、ATT同意ポップアップを表示する前にIDFAメッセージが通常通り表示されます。
GDPR同意ポップアップの表示(ヨーロッパ、英国)¶
あなたのゲームがヨーロッパおよび英国(EEA & UK)を対象とする場合、GDPR(一般データ保護規則)同意ポップアップを表示する必要があります。GDPR同意ポップアップは、ユーザーのデバイスのIPアドレスがヨーロッパおよび英国(EEA & UK)からの場合にのみ表示されます。Adizは、Google UMP(ユーザー メッセージング プラットフォーム)を通じてGDPR同意ポップアップの表示をサポートしています。AdMobコンソールでGDPRメッセージを作成した後、Adizを初期化して、ヨーロッパおよび英国からアクセスするユーザーにGDPRポップアップを表示します。
Warning
ヨーロッパおよび英国以外の地域を対象とする場合、たとえば国内のみでサービスを提供する予定がある場合は、GDPR同意ポップアップの表示(ヨーロッパ、英国)ステップをスキップして、Adiz.InitializeForNonGDPR()
メソッドを使用して初期化を進めることができます。
Adiz.Initialize()
メソッドを使用して初期化を進める場合は、Adizの初期化が正常に進行するために、AdMobコンソールでGDPRメッセージを作成する必要があります。
警告
Hive SDKを使用している場合、Hive Adizの初期化が完了した後にAuthV4.setup
を実行する必要があります。ATT(アプリトラッキング透明性)同意通知を表示した後にGDPR同意画面が表示されると、Appleのアプリレビュー中にアプリが拒否される可能性があります。
GDPRメッセージを書く¶
Google AdMobコンソールにアクセスしてGDPRメッセージを書いてください。GDPRメッセージを書く前に、GDPRメッセージ作成ガイドを参照してください。
GDPRメッセージを作成する際には、使用したいメディエーションを広告パートナーのリストに追加する必要があります。 メディエーションを追加する方法は次のとおりです。
1) Google AdMob ダッシュボードの プライバシーとメッセージング > 欧州規制 > 設定 タブに移動し、'広告パートナーレビュー > カスタム広告パートナー' の編集アイコンをクリックします。 2) GDPR に基づいて Google に認証されたすべての仲介パートナーを選択して一括追加するか、希望の仲介パートナーのみをチェックして 追加 をクリックします。
GDPRメッセージを書いた場合、Adizが初期化されるとGDPR同意ポップアップが自動的に表示されます。
GDPR同意および撤回機能の実装¶
GDPR同意ポップアップの項目は、ユーザーがいつでも同意状況を変更できるように、修正機能を提供する必要があります。たとえば、ユーザーは最初はGDPRに同意しないかもしれませんが、後にパーソナライズされた広告を表示するために再度同意したいと思うかもしれません。逆に、ユーザーは最初にGDPRに同意したかもしれませんが、もはや個人情報を提供したくないために同意を撤回したいと思うかもしれません。これらの状況に対処するために、アプリ開発者はユーザーが各項目に再同意したり、既存の同意を撤回したりできる機能を実装する必要があります。GDPR同意/撤回機能を実装するには、以下の手順に従ってください。
- アプリにGDPR同意ポップアップを再表示できるボタンUIを実装します。
- Adizの初期化を実装する際、
isPrivacyOptionsRequired()
を呼び出して、ヨーロッパおよび英国からアクセスしているユーザーにボタンUIを表示し、それ以外の場合は表示しないようにします。ヨーロッパまたは英国からアクセスしているユーザーがボタンをクリックした場合、showPrivacyOptionsForm
を呼び出してGDPR同意ポップアップを再表示します。その後、ユーザーはアプリ内の「オプションを管理」などのボタンを押すことで、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)¶
同意年齢未満のユーザーのタグ(同意年齢未満のタグ、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で適用される同意年齢設定は、自動的に同意年齢未満のユーザーに適用されます。
ただし、ユーザーがAdiz.initialize
の初期化前に手動でAdizConsentManager.setUserPrivacySettings
APIを呼び出した場合、Hive SDKからの同意年齢設定は適用されず、AdizConsentManager.setUserPrivacySettings
API呼び出し中に設定された値が優先されます。
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アドレスに関係なくGDPR同意ポップアップを強制的に表示してポップアップの表示をテストすることができ、そのためにはGDPRテストデバイスをセットアップする必要があります。以下の手順に従ってGDPRテストデバイスをセットアップしてください。以下の内容は、テストデバイスで広告を表示する方法と同じです。
- Adizを初期化して初期化します。この初期化はテストデバイスIDを確認するためのもので、GDPR同意メッセージを書く必要はありません。
デバイスIDを確認するためにAndroid StudioまたはXcodeのログを出力します。例のログは以下の通りです。
- Android: from
このデバイスをデバッグデバイスとして設定するには、new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231")を使用してください。
33BE2250B43518CCDA7DE426D04EE231
- iOS:
<UMP SDK>このデバイスのデバッグモードを有効にするには、次のように設定します: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52]
B74F6468-1516-467C-99AD-CC5973C5DB52
で - デバイスIDをコピーします。
- 既存のAdiz初期化コード内で
AdizGDPRManager.setTestDevice(DEVICE_ID)
をAdiz.initialize
を実行する前に追加します。 - GDPR同意メッセージを書くと、GDPR同意ポップアップが正しく表示されるようにAdizを再初期化します。
using hiveAdiz; public void Initialize() { // GDPR テストデバイス設定 AdizGDPRManager.SetTestDevice("33BE2250B43518CCDA7DE426D04EE231"); Adiz.Initialize(new CommonHandlers.Builder() .OnResult(InitResultCB) .Build()); }
COPPA子供向け処理タグ設定¶
子供のオンラインプライバシー保護法(COPPA)に従い、アプリ開発者は広告をリクエストする際に、Googleがコンテンツを子供向けとして扱うべきかどうかを、子供向け処理タグ(tagForChildDirectedTreatment, TFCD)を設定することで指定できます。子供向けとして扱われるようにするには、AdizConsentManager.SetUserPrivacySettings
を呼び出してからAdiz.initialize
を実行する必要があります。AdizをHive SDKと共に使用する場合、子供向け処理タグは自動的に適用されるため、別途設定は必要ありません。
using hiveAdiz;
public void Initialize() {
bool isTagForChildDirectedTreatment = false; // 子供向けのためであればtrueに変更してください
プライバシー設定 settings = new プライバシー設定.Builder()
.子供向け処理のタグを設定(isTagForChildDirectedTreatment)
.ビルド();
AdizConsentManager.SetUserPrivacySettings(settings);
Adiz.Initialize(new CommonHandlers.Builder()
.OnResult(InitResultCB)
.Build());
}
広告仲介を追加¶
AdizはAdMob仲介を使用して広告を表示できます。AdMob仲介を追加するには、以下の手順に従ってください。
AdMobメディエーションの追加¶
AdMobコンソールで広告ソースの統合を進めます。以下の表に従って進めてください。
AppLovin | Liftoff Monetize | Meta Audience Network | Pangle | Unity Ads | ironSource | |
---|---|---|---|---|---|---|
ステップ 1: セットアップ | Android iOS | Android iOS | Android iOS | Android iOS | Android iOS | Android iOS |
ステップ 2: 広告ソースの追加 | Android iOS | Android iOS | 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.3"/>
<!-- AppLovin -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-applovin:2.1.3"/>
<!-- Liftoff -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-liftoff:2.1.3"/>
<!-- Meta -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-meta:2.1.3"/>
<!-- Pangle -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-pangle:2.1.3"/>
<!-- Unity Ads -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-unityads:2.1.3"/>
<!-- ironSource -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-ironsource:2.1.3"/>
</androidPackages>
<iosPods>
<sources>
<source>https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git</source>
</sources>
<iosPod name="HiveAdizUnityPlugin" version="2.1.3"/>
<iosPod name="HiveAdizAdapterAppLovin" version="2.1.3"/>
<iosPod name="HiveAdizAdapterLiftoff" version="2.1.3"/>
<iosPod name="HiveAdizAdapterMeta" version="2.1.3"/>
<iosPod name="HiveAdizAdapterPangle" version="2.1.3"/>
<iosPod name="HiveAdizAdapterUnityAds" version="2.1.3"/>
<iosPod name="HiveAdizAdapterIronSource" version="2.1.3"/>
</iosPods>
</dependencies>
Adizアダプターの設定が正しく適用されているか確認するには、アプリを実行し、Ad Inspector画面の設定リストを確認してください。
Adizの初期化¶
これは、広告の表示を行う前に実行しなければならない必須のステップです。Adizを初期化することで、広告を表示するために必要な広告キーを受け取ることができます。テストモードを有効にしている場合は、テストキーを受け取ります。
Warning
GDPR設定を使用している場合、Hive Adizの初期化を完了した後にAuthV4.setup
を実行する必要があります。ATT(アプリトラッキング透明性)同意通知を表示した後にGDPR同意画面が表示されると、Appleのアプリレビュー中にアプリが拒否される可能性があります。
using hiveAdiz;
public void Start() {
/* omitted */
// 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"
}
]
}
テストモードで初期化すると、Hive コンソールにAdMob広告キーを登録していなくても、テスト広告キーのリストを受け取ります。プロダクションモードで初期化すると、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) | 広告の露出後に有料イベントが受信されるポイントであり、広告収益情報が伝達されます。 | O |
.OnAdClose(OnAdCloseCB) | 広告が終了しました
| X |
.OnAdReward(OnAdRewardCB) | 報酬型広告(`rewarded`, `rewarded interstitial`)で広告表示後にユーザーが報酬を受け取るポイント | X |
private void OnAdLoadCB()
{
// This will be called when the ad is loaded.
// If the ad load is successful, you should call the ad instance's .show() at the desired time to display the ad.
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());
// 報酬付き、報酬付きインタースティシャル広告でのみ渡されます
}
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 | 無効なユニットID |
-107 | MediationNoFill | 仲介アダプターが広告リクエストを処理できませんでした |
-108 | AlreadyLoaded | すでに読み込まれた状態です |
-109 | CannotRequestAds | 広告をリクエストできません |
-201 | GdprConsentError | GDPR同意エラー |
-202 | IsNotPrivacyOptionsRequired | GDPR同意ポップアップを表示できないか、表示する必要がない状態です |
広告の表示と広告の終了¶
以下の手順に従って、広告を表示および終了します。
- 表示したい広告のタイプごとに広告クラスに広告インスタンスを作成します。表示したい広告がデフォルト広告でない場合は、初期化から取得した広告キーまたはプレースメントIDを入力する必要があります。広告キー(
hiveAdKey
)またはプレースメントID(placementId
)を入力しない場合は、デフォルトの広告インスタンスが作成されます。プレースメントIDはHiveコンソールで設定でき、詳細についてはコンソールガイドの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() {
// Show AdizInterstitial
if(InterstitialAd != null && InterstitialAd.IsLoaded()) InterstitialAd.Show();
}
public void requestDestroyAd() {
// AdizInterstitialを破棄します
if(InterstitialAd != null) InterstitialAd.Destroy();
InterstitialAd = null;
}
バナー広告¶
これは特定のサイズのバナーを表示するバナー広告です。バナー広告は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() {
// AdizBannerを破棄します
if(BannerAd != null) BannerAd.Destroy();
BannerAd = null;
}
ネイティブ広告¶
これは特定のサイズのネイティブテンプレートを表示するネイティブ広告です。ネイティブ広告は縦型画面に最適化されているため、縦型ゲーム(ポートレート画面ゲーム)での使用をお勧めします。ネイティブ広告はOnAdClose()
コールバックを受け取りません。したがって、広告を閉じるためには別の場所からdestroy()
を呼び出す必要があります。
現在のテンプレートはsmall
またはmedium
サイズをサポートしています。
サイズポイント (幅 x 高さ) | テンプレート | アライメント | BannerSize 定数 |
---|---|---|---|
355x91 (アスペクト比調整済み) | 小サイズ | 上 / 下 | BannerSize.NORMAL |
355x370 (アスペクト比調整済み) | 中サイズ | 中央 (固定) | BannerSize.MEDIUM, BannerSize.LARGE, BannerSize.FULL |
small
テンプレートでは、PositionType
は最上位または最下位であり、デフォルトは最下位です。
配置 | 説明 | PositionType 定数 |
---|---|---|
上部配置 | 画面の上部に配置を指定します(iOSはSafeAreaに基づいて上部配置を指定します) | PositionType.TOP |
下部配置(デフォルト) | 画面の下部に配置を指定します(iOSはSafeAreaに基づいて下部配置を指定します) | PositionType.BOTTOM |
medium
テンプレートは、配置の選択を許可せず、デフォルトで中央揃えを使用します。
// Create AdizNative Instance
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;
}
報酬広告¶
これは、ユーザーが一定の時間広告を視聴することで報酬を受け取る報酬広告です。報酬が付与されると、報酬アイテム情報が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() {
// Show AdizRewarded
if(RewardVideoAd != null && RewardVideoAd.IsLoaded()) RewardVideoAd.Show();
}
public void requestDestroyAd() {
// AdizRewardedを破棄します
if(RewardVideoAd != null) RewardVideoAd.Destroy();
RewardVideoAd = null;
}
報酬型インタースティシャル広告¶
これは、ユーザーが一定の時間広告を視聴することで報酬を受け取る報酬型インタースティシャル広告です。報酬が付与されると、報酬アイテムの情報が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() {
// 広告を破棄する
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プロジェクト内の以下のフォルダーを削除してください。
- アセット/HiveAdiz
- アセット/HiveAdiz_Example