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
の値をca-app-pub-XXXXX~YYYYYの形式で、Unityプロジェクトで作成されたAssets/Plugins/Android/AndroidManifest.xmlファイルに追加します。
<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', '3.0.0
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
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つあります。
- 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設定¶
HiveコンソールAppCenterに登録したAdiz AppIDを設定します。設定されていない場合、パッケージ名またはバンドル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で適用される同意年齢設定は、自動的に同意年齢未満のユーザーに適用されます。
ただし、ユーザーがAdizConsentManager.setUserPrivacySettings
APIをAdiz.initialize
の初期化前に手動で呼び出すと、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:
新しい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)に従い、アプリ開発者は、広告をリクエストする際に子供向け処理タグ(tagForChildDirectedTreatment、TFCD)を設定することで、Googleがコンテンツを子供向けとして扱うべきかどうかを指定できます。子供向けとして扱われるようにしたい場合は、AdizConsentManager.SetUserPrivacySettings
を呼び出してからAdiz.initialize
を実行する必要があります。Hive SDKを使用してAdizを利用する場合、子供向け処理タグは自動的に適用されるため、別途設定は必要ありません。
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 | 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:3.0.0"/>
<!-- AppLovin -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-applovin:3.0.0"/>
<!-- Liftoff -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-liftoff:3.0.0"/>
<!-- Meta -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-meta:3.0.0"/>
<!-- Pangle -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-pangle:3.0.0"/>
<!-- Unity Ads -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-unityads:3.0.0"/>
<!-- ironSource -->
<androidPackage spec="com.com2us.android.adiz:hive-adiz-adapter-ironsource:3.0.0"/>
</androidPackages>
<iosPods>
<sources>
<source>https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git</source>
</sources>
<iosPod name="HiveAdizUnityPlugin" version="3.0.0"/>
<iosPod name="HiveAdizAdapterAppLovin" version="3.0.0"/>
<iosPod name="HiveAdizAdapterLiftoff" version="3.0.0"/>
<iosPod name="HiveAdizAdapterMeta" version="3.0.0"/>
<iosPod name="HiveAdizAdapterPangle" version="3.0.0"/>
<iosPod name="HiveAdizAdapterUnityAds" version="3.0.0"/>
<iosPod name="HiveAdizAdapterIronSource" version="3.0.0"/>
</iosPods>
</dependencies>
Adizアダプターの設定が正しく適用されているか確認するには、アプリを実行し、Ad Inspector画面の設定リストを確認してください。
Adizの初期化は、あらゆる種類の広告を表示する前に実行しなければならない必須のステップです。Adizを初期化することで、広告を表示するために必要な広告キーを受け取ることができます。テストモードが有効になっている場合、テストキーを受け取ります。
Warning
GDPR設定を使用している場合は、Hive Adizの初期化を完了した後にAuthV4.setup
を実行する必要があります。ATT(アプリトラッキング透明性)同意通知を表示した後にGDPR同意画面が表示されると、Appleのアプリレビュー中にアプリが拒否される可能性があります。
警告
Adiz AndroidモジュールへのすべてのAPI呼び出しは、Unityのメインスレッドで行う必要があります。メインスレッドではなくTask.Run()
や別のワーカースレッドからAdiz APIを呼び出すと、Adizの機能が正しく動作しない可能性があります。メインスレッドの外から呼び出す必要がある場合は、Adiz.RunOnMainThread
を使用してAPIを呼び出してください。
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() {
// 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() {
// Destroy 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() {
// AdizRewardedを表示
if(RewardVideoAd != null && RewardVideoAd.IsLoaded()) RewardVideoAd.Show();
}
public void requestDestroyAd() {
// 広告を破棄する
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() {
// 広告を表示する
if(RewardedInterstitialAd != null && RewardedInterstitialAd.IsLoaded()) RewardedInterstitialAd.Show();
}
public void requestDestroyAd() {
// AdizRewardedInterstitialを破棄します
if(RewardedInterstitialAd != null) RewardedInterstitialAd.Destroy();
RewardedInterstitialAd = null;
}
アプリオープニング広告 (AppOpen)¶
アプリオープン広告は、アプリがバックグラウンドからフォアグラウンドに移行するときに表示され、load()
を使用して事前にロードされた広告が表示されます。広告がロードされてから3時間以上経過している場合、広告は表示されず、自動的に再ロードされます。次回アプリがフォアグラウンドに移動したときに広告が表示されます。一度広告が表示された後は、自動的に再ロードされないため、次の広告を準備するには再度load()
を呼び出す必要があります。
// 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)) {
// Initialize Default AdizAppOpen Instance (AdEventHandlers)
AppOpenAd = AdizAppOpen.Initialize(eventHandlers);
} else {
// Initialize AdizAppOpen Instance (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)) {
// Initialize Default AdizAppOpen Instance (AdEventHandlers)
AppOpenAd = AdizAppOpen.Initialize(eventHandlers);
} else {
// Initialize AdizAppOpen Instance (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
追加機能¶
Androidのメインスレッドからの呼び出し¶
Android JNI関連のAPIはUnityのメインスレッドから呼び出す必要があります。メインスレッド以外から呼び出すと、Adizの機能が正しく動作しない可能性があります。非メインスレッドから呼び出す必要がある場合は、Adiz.RunOnMainThread
を使用して、ロジックがメインスレッドで実行されることを確認してください。