Android
Adiz Android¶
Adiz Androidは、AdMobが提供する広告露出機能をより簡単に使用できるようにするために、Hiveが提供するAndroid用の広告モジュールです。Adiz Androidが提供する広告の種類は以下の通りです。
- インタースティシャル広告
- バナー広告
- ネイティブ広告
- 報酬型広告
- 報酬型インタースティシャル広告
- アプリオープン広告
Adiz Androidをインストールして使用するには、以下のガイドを順番に参照してください。
インストール¶
アプリレベルのGradleファイル(app/build.gradle)にAdizライブラリのエントリを追加します。
Java 8の機能をサポートするには、モジュールのアプリレベルのGradleファイルのandroid
設定の下に以下を追加してください。
android {
// ...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
AndroidManifest.xmlファイルに、AdMobId
(形式は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>
Proguardを使用する際、AdizモジュールのProGuardルールが含まれています。したがって、プロジェクトにProGuardルールを追加する必要はありません。
動画広告を表示するには、ハードウェアアクセラレーションを有効にする必要があります。AndroidManifest.xmlファイルにハードウェアアクセラレーションの設定を追加してください。application
タグに追加すると、アプリケーション全体に対してハードウェアアクセラレーションが有効になります。activity
タグに追加すると、広告を表示したい特定のActivity
に対してのみハードウェアアクセラレーションが有効になります。
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
</application>
テスト広告設定¶
Adizは2つの方法でテスト広告を表示できます。
- テストモードを有効にする: AdMobによって発行されたテスト広告のみが表示されます
- テストデバイスを登録した後に広告を表示: テストのために実際の広告を表示し、無効なトラフィックが発生しないようにし、テスト広告を表示するデバイスを登録して進めます
テストモードを有効にする¶
開発段階では、テストモードを有効にして、テスト広告をクリックしても広告主に料金が発生しないようにします。テストモードが有効になると、テスト広告のみが表示されます。テストモードでは、コンソールにAdMob広告キーが入力されていなくてもテスト広告が表示されます。商業配信中はテストモードを無効にしてください。
テストモードをアクティブにする方法は2つあります。
- Hiveコンソールにテストデバイスを登録した後、デモ広告で設定してください(推奨):
コンソールガイドのテストデバイスの管理セクションを参照してください。 - Adizクラスの
setTestMode()
メソッドを使用してください:
以下の例コードを参照してください。
Note
テストモードでない開発段階では、広告への過剰なクリックは無効なトラフィックと見なされる可能性があり、あなたのAdMobアカウントが報告され、広告が表示されなくなる可能性があります。
Adiz.setTestMode() メソッドの使用¶
import com.hive.adiz.Adiz;
import com.hive.adiz.AdizError;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
// テストモードを有効にします。商業配布のためには以下の行をコメントアウトしてください。
Adiz.setTestMode(true);
// Hive Adizモジュールのログ記録を有効にします。ログ記録はテストモードでのみ使用するべきです。商業配布のために以下の行をコメントアウトしてください。
Adiz.setLogEnable(true);
テストデバイスの広告露出¶
以下の状況では、テスト広告を表示するためにテストデバイスを登録する必要があります。
- コンソールに登録されたAdMob広告キーが正常に動作しているかテストする時
- GDPRメッセージを書いて、GDPR同意ポップアップが正しく機能しているか確認する時
- 広告リクエストを分析しデバッグするために広告インスペクターを実行する時
テストデバイスに広告を表示する方法は2つあります。
-
テストデバイスをHiveコンソールに登録した後、広告ユニットIDを使用に設定してください(推奨):
コンソールガイドのテストデバイスの管理セクションを参照してください。 -
Adizクラスの
setTestDevice()
メソッドを使用します:
以下の例のコードを参照してください。
Note
テストデバイスを登録せずに実際の広告を露出するテストを行うと、それは無効なトラフィックと見なされ、あなたのAdMobアカウントがブロックされ、さらなる広告露出が妨げられる可能性があります。テストデバイスを登録すると、広告露出中に「テストモード」または「テスト広告」(ネイティブ広告)が表示されます。商業配信中はテストデバイスを無効にする必要があります。
Adiz.setTestDevice() メソッドの使用¶
テストデバイスを登録するには、まずテストデバイスIDを確認する必要があります。テストデバイスID(例: 33BE2250B43518CCDA7DE426D04EE231
)は、以下の2つの方法で確認できます。
-
Adiz.Initialize()
を呼び出した後にLogcatログを確認してください: -
Adiz.Initialize()
を呼び出した後、広告の種類に関係なく、initialize()
→load()
を呼び出し、Logcatログを確認してください:
テストデバイスIDを確認した後、既存のAdiz初期化コードでAdiz.initialize
を実行する前に、Adiz.setTestDevice(DEVICE_ID)
の行を追加します。コピーしたテストデバイスIDをDEVICE_ID
に入力してください。
import com.hive.Adiz
import com.hive.adiz.AdizError
import org.json.JSONObject
fun initialize() {
Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231")
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
// ... omitted
}
})
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import org.json.JSONObject;
public void initialize() {
Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");
Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
@Override
public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {
if(error.isSuccess()) {
// ... omitted
}
}
});
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import org.json.JSONObject;
public void initialize() {
Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");
Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
@Override
public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {
if(error.isSuccess()) {
// ... omitted
}
}
});
}
広告インスペクタの使用¶
広告インスペクタは、テストデバイス上で実際の広告をリクエストして表示するプロセスをリアルタイムで分析するアプリ内オーバーレイツールです。広告の読み込みにかかった時間を通知し、表示に失敗した場合はその理由を提供します。また、特定の広告ネットワークを指定して、広告が正しく表示されているか確認することもでき、問題がある場合はコードレベルでデバッグできます。これらすべては、広告インスペクタのUIとともに行われます。これはGoogle Mobile Ads SDKバージョン20.0.0以上に含まれており、AdizDeveloperTool.openAdInspector
を呼び出すことで使用できます。
広告インスペクターを使用するには、テストデバイスでの広告露出を設定する必要があります。
Adiz AppIDの設定¶
AppCenterコンソールに登録されたAdiz AppIDを設定します。設定されていない場合は、AndroidManifest.xmlのパッケージ名が使用されます。
Hive コンソールサーバー設定¶
Hive コンソールサーバーを使用するように設定します。デフォルトは REAL
です。プロダクションサーバーを使用しても、テストモードを有効にするとテスト広告のみが表示されます。
- Hive テストコンソールサーバー:
ZoneType.TEST
- Hive サンドボックスコンソールサーバー:
ZoneType.SANDBOX
- Hive プロダクションコンソールサーバー:
ZoneType.REAL
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メッセージを書く必要があります。
GDPRメッセージの作成¶
1) Google AdMob ダッシュボードにアクセスして、GDPR メッセージを作成します。GDPR メッセージを作成する前に、GDPR メッセージ作成ガイドを参照してください。
GDPRメッセージを作成する際には、使用したいメディエーションを広告パートナーのリストに追加する必要があります。 メディエーションを追加する方法は次のとおりです。
1) Google AdMob ダッシュボードの プライバシーとメッセージング > 欧州規制 > 設定 タブに移動し、'広告パートナーのレビュー > カスタム広告パートナー' の編集アイコンをクリックします。 2) GDPR に基づいて Google に認定されたすべてのメディエーションパートナーを一括で追加するためにチェックするか、必要なメディエーションパートナーのみを選択して 追加 をクリックします。
GDPRメッセージを書いた場合、GDPR同意ポップアップは、Adizを初期化すると自動的に表示されます。
GDPR同意/撤回機能の実装¶
GDPR同意ポップアップ内の項目は、ユーザーがいつでも同意状況を変更できるようにする必要があります。たとえば、ユーザーは最初はGDPRに同意しないかもしれませんが、後でパーソナライズされた広告を表示するために再度同意したいと思うことがあります。逆に、ユーザーは最初はGDPRに同意していたが、個人情報を提供したくなくなったために同意を撤回したいと思うこともあります。これらの状況に対処するために、アプリ開発者はユーザーが各項目に再度同意するか、既存の同意を撤回できる機能を実装する必要があります。GDPR同意/撤回機能を実装するには、次の手順に従ってください。
- アプリにGDPR同意ポップアップを再表示できるボタンUIを実装します。
- Adizの初期化を実装する際、
isPrivacyOptionsRequired()
を呼び出して、ヨーロッパおよび英国からアクセスしているユーザーに上記のボタンUIを表示し、それ以外の場合は表示しないでください。ヨーロッパまたは英国からアクセスしているユーザーがボタンをクリックした場合、showPrivacyOptionsForm
を呼び出してGDPR同意ポップアップを再表示します。これにより、ユーザーはアプリ内の「オプションを管理」などのボタンを押すことで、GDPRの詳細に対する同意をいつでも変更できます。以下のshowPrivacyOptionsForm
は、例示のために任意に実装されたメソッドであり、開発者は必要に応じて実装を変更できます。
import com.hive.Adiz
import com.hive.adiz.AdizError
import com.hive.AdizConsentManager
import org.json.JSONObject
fun initialize() {
// ...
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
if(error.isSuccess) {
// ... omitted
// GDPR同意ポップアップを再表示するためにアプリにボタンを表示するかどうかを決定します
var isPrivacyOptionsRequired = AdizConsentManager.isPrivacyOptionsRequired()
if(isPrivacyOptionsRequired) {
// アプリにボタンを表示します。(ボタンがクリックされると、showPrivacyOptionsForm()が呼び出されてGDPR同意ポップアップが表示されます)
showGDPRConsentPopupButton()
} else {
// アプリにボタンを表示しません。
// アプリが望む他の処理。
}
}
}
})
}
fun showPrivacyOptionsForm(activity: Activity) {
// GDPR同意オプションフォームの呼び出し
if(AdizConsentManager.isPrivacyOptionsRequired()) {
AdizConsentManager.showPrivacyOptionsForm(activity, object : AdizConsentManager.ConsentListener {
override fun onResult(error: AdizError) {
addLog("AdizConsentManager.showPrivacyOptionsForm() errorCode : ${error.getCode()}, errorMessage : ${error.getMessage()}}\n")
// エラーハンドリングは必要ありません。
}
})
}
}
import com.hive.adiz.Adiz;
import com.hive.adiz.AdizError;
import com.hive.AdizConsentManager;
import org.json.JSONObject;
public void initialize() {
Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
@Override
public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {
if(error.isSuccess()) {
// ... 除外
// GDPR同意ポップアップを再表示するためにアプリにボタンを表示するかどうかを決定
boolean isPrivacyOptionsRequired = AdizConsentManager.isPrivacyOptionsRequired();
if(isPrivacyOptionsRequired) {
// アプリにボタンを表示します。(ボタンがクリックされると、showPrivacyOptionsForm()が呼び出されてGDPR同意ポップアップが表示されます)
showGDPRConsentPopupButton();
} else {
// アプリにボタンを表示しません。
// アプリが望む他の処理。
}
}
}
});
}
public void showPrivacyOptionsForm(Activity activity) {
// Call GDPR consent options form
if(AdizConsentManager.isPrivacyOptionsRequired()) {
AdizConsentManager.showPrivacyOptionsForm(activity, new AdizConsentManager.ConsentListener() {
@Override
public void onResult(@NonNull AdizError error) {
// No need to do any error handling.
}
});
}
}
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呼び出し中に設定された値が優先されます。
import com.hive.Adiz
import com.hive.adiz.AdizError
import com.hive.adiz.consent.PrivacySettings
import org.json.JSONObject
fun initialize() {
val isUnderAgeForGDPR = false // 子供の場合はtrueに変更してください
val settings = PrivacySettings.Builder()
.setTagForUnderAgeOfConsent(isUnderAgeForGDPR)
.build()
AdizConsentManager.setUserPrivacySettings(settings)
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
// ... omitted
}
})
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import com.hive.adiz.consent.PrivacySettings;
import org.json.JSONObject;
public void initialize() {
boolean isUnderAgeForGDPR = false; // 子供の場合はtrueに変更してください
PrivacySettings settings = new PrivacySettings.Builder()
.setTagForUnderAgeOfConsent(isUnderAgeForGDPR)
.build();
AdizConsentManager.setUserPrivacySettings(settings);
Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
@Override
public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {
if(error.isSuccess()) {
// ... omitted
}
}
});
}
GDPRテストデバイスのセットアップ¶
GDPR同意ポップアップは、デバイスのIPアドレスがヨーロッパまたはイギリスからのものである場合にのみ表示されます。開発段階では、ポップアップの表示をテストするために、IPアドレスに関係なくGDPR同意ポップアップを強制的に表示することができ、そのためにはGDPRテストデバイスを設定する必要があります。Hiveコンソールでテストデバイスを設定することで、簡単にテストを行うことができます。 setTestDevice
メソッドを使用して設定する方法は以下の通りで、これはテストデバイスでの広告表示の方法と同じです。
- Adizを初期化して初期化します。これはテストデバイスIDを確認するための初期化であり、GDPR同意メッセージを書く必要はありません。
デバイスIDを確認するメッセージがあるかどうか、logcatの出力を確認してください。以下は例のメッセージです。
- メッセージ内のデバイスIDを確認してください(例:
33BE2250B43518CCDA7DE426D04EE231
)。 - デバイスIDをコピーします。
- 既存のAdiz初期化コード内で
AdizGDPRManager.setTestDevice(DEVICE_ID)
をAdiz.initialize
を実行する前に追加します。 - GDPR同意メッセージを書くを行い、GDPR同意ポップアップが正しく表示されるようにAdizを再初期化します。
import com.hive.Adiz
import com.hive.adiz.AdizError
import org.json.JSONObject
fun initialize() {
Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231")
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
// ... omitted
}
})
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import org.json.JSONObject;
public void initialize() {
Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");
Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
@Override
public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {
if(error.isSuccess()) {
// ... omitted
}
}
});
}
COPPA子供ターゲティングタグ設定¶
子供のオンラインプライバシー保護法(COPPA)に従い、アプリ開発者は広告リクエストを行う際に、Googleがコンテンツを子供向けとして扱うべきかどうかを子供ターゲティングタグ(tagForChildDirectedTreatment, TFCD)を設定することで指定できます。子供向けとして扱われるようにするには、AdizConsentManager.setUserPrivacySettings
を呼び出してからAdiz.initialize
を実行する必要があります。Hive SDKを使用してAdizを利用する場合、子供ターゲティングタグは自動的に適用されるため、追加の設定は必要ありません。
import com.hive.Adiz
import com.hive.adiz.AdizError
import com.hive.adiz.consent.PrivacySettings
import org.json.JSONObject
fun initialize() {
val isChildDirectedTreatmentForCOPPA = false // 子供向けの場合はtrueに変更してください
val settings = PrivacySettings.Builder()
.setTagForChildDirectedTreatment(isChildDirectedTreatmentForCOPPA)
.build()
AdizConsentManager.setUserPrivacySettings(settings)
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
// ... omitted
}
})
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import com.hive.adiz.consent.PrivacySettings;
import org.json.JSONObject;
public void initialize() {
boolean isChildDirectedTreatmentForCOPPA = false; // 子供向けの場合はtrueに変更してください
PrivacySettings settings = new PrivacySettings.Builder()
.setTagForChildDirectedTreatment(isChildDirectedTreatmentForCOPPA)
.build();
AdizConsentManager.setUserPrivacySettings(settings);
Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
@Override
public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {
if(error.isSuccess()) {
// ... omitted
}
}
});
}
広告仲介を追加¶
AdizはAdMob仲介を使用して広告を表示できます。AdMob仲介を追加するには、以下の手順に従ってください。
AdMobメディエーションの追加¶
AdMobコンソールで広告ソースの統合を進めます。続行するには、以下の表に従ってください。
AppLovin | Liftoff Monetize | Meta Audience Network | Pangle | Unity Ads | ironSource | |
---|---|---|---|---|---|---|
ステップ 1 | AppLovinの設定を行う | Liftoff Monetizeの設定を行う | Meta Audience Networkの設定を行う | Pangleの設定を行う | Unity Adsの設定を行う | ironSourceの設定を行う |
ステップ 2 | AdMobにAppLovin広告ソースを追加する | AdMobにLiftoff Monetize広告ソースを追加する | AdMobにMeta Audience Network広告ソースを追加する | AdMobにPangle広告ソースを追加する | AdMobにUnity Ads広告ソースを追加する | AdMobにironSource広告ソースを追加する |
ステップ 3 | Adizアダプターを追加する |
Adizアダプターの追加¶
アプリレベルのbuild.gradleにライブラリ依存関係を追加します。
dependencies {
// ... (생략)
implementation 'com.com2us.android.adiz:hive-adiz:2.1.3' // 공통 (필수 추가)
implementation 'com.com2us.android.adiz:hive-adiz-adapter-applovin:2.1.3' // AppLovin 연동시 추가
implementation 'com.com2us.android.adiz:hive-adiz-adapter-liftoff:2.1.3' // Liftoff Monetize 연동시 추가
implementation 'com.com2us.android.adiz:hive-adiz-adapter-meta:2.1.3' // Meta Audience Network 연동시 추가
implementation 'com.com2us.android.adiz:hive-adiz-adapter-pangle:2.1.3' // Pangle 연동시 추가
implementation 'com.com2us.android.adiz:hive-adiz-adapter-unityads:2.1.3' // Unity Ads 연동시 추가
implementation 'com.com2us.android.adiz:hive-adiz-adapter-ironsource:2.1.3' // ironSource 연동시 추가
}
PangleまたはironSourceを統合する際に使用されるGradleバージョンに応じて、設定コードを追加してください。
-
Gradle 7.0 以上を使用している場合は、プロジェクトレベルの settings.gradle の
dependencyResolutionManagement
セクションにrepository
設定を追加してください。 -
Gradleのバージョンが7.0未満の場合、プロジェクトレベルのbuild.gradleの
allprojects
セクションにrepository
設定を追加してください。
Adizアダプタの設定が正しく適用されているか確認するには、アプリを実行し、Ad Inspector画面の設定リストを確認してください。
Adizの初期化¶
これは、すべてのタイプの広告を表示する前に実行しなければならない必須のステップです。Adizを初期化することで、広告を表示するために必要な広告キーを受け取ることができます。テストモードが有効になっている場合、テストキーを受け取ります。Hive SDKを使用している場合は、AuthV4.setup
を呼び出した後にAdizの初期化を進めてください。
val sdkInitializationListener = object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
Log.d(TAG, "Adiz initialize complete. error code : ${error.getCode()}, message : ${error.getMessage()}, data : $jsonData")
if(error.isSuccess) {
if(jsonData != null) {
var interstitialKeyList = ArrayList<String>()
var bannerKeyList = ArrayList<String>()
var nativeKeyList = ArrayList<String>()
var rewardedKeyList = ArrayList<String>()
var rewardedInterstitialKeyList = ArrayList<String>()
var appOpenKeyList = ArrayList<String>()
try {
var keysArr = jsonData.getJSONArray("keys")
for (i in 0 until keysArr.length()) {
var unit = keysArr.optJSONObject(i)
// ゲーム内で広告キーを直接入力した場合、is_defaultがfalseのキーのリストを構築する例です。
if (unit.optBoolean("is_default").not()) {
var hiveAdKey = unit.optString("key")
when (unit.optString("form")) {
"interstitial" -> interstitialKeyList.add(hiveAdKey)
"banner" -> bannerKeyList.add(hiveAdKey)
"native" -> nativeKeyList.add(hiveAdKey)
"rewarded" -> rewardedKeyList.add(hiveAdKey)
"rewarded_interstitial" -> rewardedInterstitialKeyList.add(hiveAdKey)
"app_open" -> appOpenKeyList.add(hiveAdKey)
}
}
}
println("interstitialKeyList $interstitialKeyList")
println("bannerKeyList $bannerKeyList")
println("nativeKeyList $nativeKeyList")
println("rewardedKeyList $rewardedKeyList")
println("rewardedInterstitialKeyList $rewardedInterstitialKeyList")
println("appOpenKeyList $appOpenKeyList")
} catch (e: JSONException) {
//...
}
}
}
}
}
fun initAdiz() {
// 一般的な初期化
Adiz.initialize(activity, sdkInitializationListener)
}
fun initAdizForNonGDPR() {
// GDPR準拠が考慮されていない場合
Adiz.initializeForNonGDPR(activity, sdkInitializationListener)
}
Adiz.SdkInitializationListener sdkInitializationListener = new Adiz.SdkInitializationListener() {
@Override
public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {
if(error.isSuccess()) {
if(jsonData != null) {
ArrayList interstitialKeyList = new ArrayList<String>();
ArrayList bannerKeyList = new ArrayList<String>();
ArrayList nativeKeyList = new ArrayList<String>();
ArrayList rewardedKeyList = new ArrayList<String>();
ArrayList rewardedInterstitialKeyList = new ArrayList<String>();
ArrayList appOpenKeyList = new ArrayList<String>();
試してみてください {
JSONArray keysArr = jsonData.optJSONArray("keys");
for(int i = 0; i < keysArr.length(); i++) {
JSONObject unit = keysArr.optJSONObject(i);
if(unit.optBoolean("is_default") == false) {
String hiveAdKey = unit.optString("key");
String form = unit.optString("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;
}
}
}
System.out.println("interstitialKeyList " + interstitialKeyList);
System.out.println("bannerKeyList " + bannerKeyList);
System.out.println("nativeKeyList " + nativeKeyList);
System.out.println("rewardedKeyList " + rewardedKeyList);
System.out.println("rewardedInterstitialKeyList " + rewardedInterstitialKeyList);
System.out.println("appOpenKeyList " + appOpenKeyList);
} catch (Exception e) {
}
}
}
}
};
void initAdiz() {
// 一般的な初期化
Adiz.initialize(activity, sdkInitializationListener);
}
void initAdizForNonGDPR() {
// If not responding to GDPR
Adiz.initializeForNonGDPR(activity, sdkInitializationListener);
}
初期化を実行した際にコールバックとして受信した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
)を入力する必要はありません。デフォルト広告を変更するには、既存のデフォルト広告をHiveコンソールから削除し、新しい広告を登録する必要があります。
広告コールバックリスナーの設定¶
各広告インスタンスを作成する際にAdizListener
を実装することで、広告の状態の変化に基づいてコールバックを受け取ることができます。
名前 | 説明 | 必要な実装 |
---|---|---|
onLoad() | 広告の読み込み成功 | O |
onFail(error: AdizError) | 失敗(失敗の理由はerror.getCode() とerror.getMessage() で確認できます) | O |
onShow() | 広告の表示成功 | O |
onClick() | 広告のクリック | O |
onPaidEvent(adRevenueData: AdRevenueData) | 広告表示後に有料イベントを受け取る時点、広告収益情報が提供されます | O |
onClose() | 広告終了
| X |
onRewarded(rewardItem: RewardItem) | 報酬型広告(rewarded 、rewarded interstitial )で広告表示後にユーザーが報酬を受け取る時点 | X |
var adizListener = object : AdizListener() {
override fun onLoad() {
// 広告が読み込まれたときに呼び出されます。
// 広告の読み込みが成功した場合、広告インスタンスの.show()を希望のタイミングで呼び出して広告を表示する必要があります。
}
override fun onFail(loadError: AdizError) {
// Called if the ad load failed or the ad display failed for some other reason.
}
override fun onShow() {
// 広告が表示されたときに呼ばれます。
}
override fun onClick() {
// Called when the ad is clicked.
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
// 広告の収益が生成されたときに呼び出されます。
var revenue = adRevenueData.revenue // 広告表示時の収益
var currency = adRevenueData.currency // 広告表示時の収益の通貨コード
}
override fun onClose() {
// 広告が閉じられたときに呼び出されます。
// バナー、ネイティブ広告にはonCloseコールバックがありません。
}
override fun onRewarded(rewardItem: RewardItem) {
// 広告を視聴した際に報酬が作成されたときに呼ばれます。
var itemType = rewardItem.itemType // 報酬アイテムの種類
var itemAmount = rewardItem.itemAmount // 報酬アイテムの数量
}
}
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
// 広告が読み込まれたときに呼び出されます。
// 広告の読み込みが成功した場合、広告を表示するために、必要なポイントで広告インスタンスの.show()を呼び出す必要があります。
}
@Override
public void onFail(@NonNull AdizError loadError) {
// Called if the ad load failed or the ad display failed for some other reason.
}
@Override
public void onShow() {
// 広告が表示されたときに呼び出されます。
}
@Override
public void onClick() {
// Called when the ad is clicked.
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // 広告表示時の収益
String currency = adRevenueData.getCurrency(); // 広告表示時の収益の通貨コード
}
@Override
public void onClose() {
// 広告が閉じられたときに呼び出されます。
// バナー広告やネイティブ広告には閉じるボタンがないため、onCloseコールバックはありません。
}
@Override
public void onRewarded(@NonNull RewardItem rewardItem) {
// Called when a reward occurs for watching the ad in rewarded, rewarded interstitial ads.
String rewardType = rewardItem.getItemType(); // Reward item type
int rewardAmount = rewardItem.getItemAmount(); // Reward item quantity
}
};
エラーコード¶
Adiz.Initialize
と AdizListener
で onFail()
を受信した場合、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()
)。 - ロードした広告を表示します(
show()
)。広告を再表示するには、再度load()
を呼び出し、その後show()
を呼び出します。 - 広告を閉じるには、
destroy()
を呼び出します。
インタースティシャル広告¶
これらは画面全体を占めるフルスクリーン広告です。
import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizInterstitial
import com.hive.adiz.common.AdRevenueData
class InterstitialExample : Activity() {
var interstitialAd: AdizInterstitial? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
// requestInitAd(this)
}
val adizListener = object : AdizListener() {
override fun onLoad() {
// requestShowAd()
}
override fun onFail(loadError: AdizError) {
var code = loadError.getCode() // error code
var message = loadError.getMessage() // error message
}
override fun onShow() {
//
}
override fun onClick() {
//
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
var revenue = adRevenueData.revenue // 広告が表示されたときの収益
var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
}
override fun onClose() {
// requestDestroyAd()
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// インタースティシャル広告インスタンスを作成します。
interstitialAd = AdizInterstitial.initialize(activity, adizListener)
} else {
// hiveAdKeyを入力してインタースティシャル広告インスタンスを作成できます。
interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementid(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// インタースティシャル広告インスタンスを作成します。
interstitialAd = AdizInterstitial.initialize(activity, adizListener)
} else {
// placementIdを入力してインタースティシャル広告インスタンスを作成できます。
interstitialAd = AdizInterstitial.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// インタースティシャル広告を読み込む。
interstitialAd?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// インタースティシャル広告を表示します。
interstitialAd?.let {
if(it.isLoaded()) it.show()
}
}
fun requestDestroyAd() {
// インタースティシャル広告を削除します。
interstitialAd?.destroy()
}
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizInterstitial;
import com.hive.adiz.common.AdRevenueData;
public class InterstitialExample extends Activity {
AdizInterstitial interstitialAd = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
// requestInitAd(this, null);
}
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
// requestShowAd();
}
@Override
public void onFail(@NonNull AdizError loadError) {
int code = loadError.getCode(); // エラーコード
String message = loadError.getMessage(); // エラーメッセージ
}
@Override
public void onShow() {
}
@Override
public void onClick() {
//
}
@Override
public void onClose() {
// requestDestroyAd();
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// インタースティシャル広告インスタンスを作成します。
interstitialAd = AdizInterstitial.initialize(activity, adizListener);
} else {
// hiveAdKeyを入力することでインタースティシャル広告インスタンスを作成できます。
interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// インタースティシャル広告のインスタンスを作成します。
interstitialAd = AdizInterstitial.initialize(activity, adizListener);
} else {
// placementIdを入力することでインタースティシャル広告のインスタンスを作成できます。
interstitialAd = AdizInterstitial.initializeWithPlacementId(activity, placementId, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// インタースティシャル広告を読み込む。
if(interstitialAd != null && interstitialAd.isInitialized()) interstitialAd.load();
}
private void requestShowAd() {
// インタースティシャル広告を表示します。
if(interstitialAd != null && interstitialAd.isLoaded()) interstitialAd.show();
}
private void requestDestroyAd() {
// インタースティシャル広告を削除します。
if(interstitialAd != null) interstitialAd.destroy();
}
}
バナー広告 (Banner)¶
これは特定のサイズのバナーを表示するバナー広告です。バナー広告はonClose()
コールバックを受け取りません。したがって、広告を終了するには別の場所からdestroy()
を呼び出す必要があります。
BannerSize
は標準のバナーサイズに従います。
サイズポイント(幅 x 高さ) | 説明 | 対応デバイス | BannerSize 定数 |
---|---|---|---|
320x50 | バナー | 携帯電話とタブレット | BannerSize.NORMAL |
320x100 | 大バナー | 携帯電話とタブレット | BannerSize.MEDIUM |
300x250 | IABミディアムレクタングル | 携帯電話とタブレット | BannerSize.LARGE |
468 x 60 | IABフルサイズバナー | タブレット | BannerSize.FULL |
PositionType
は最上位または最下位のいずれかです。デフォルト値は最下位です。
配置 | 説明 | PositionType 定数 |
---|---|---|
上部配置 | 画面の上部に配置を指定します | PositionType.TOP |
下部配置(デフォルト) | 画面の下部に配置を指定します | PositionType.BOTTOM |
import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizBanner
import com.hive.adiz.common.AdRevenueData
import com.hive.adiz.common.BannerSize
import com.hive.adiz.common.PositionType
class BannerExample : Activity() {
var banner: AdizBanner? = null
// バナーサイズを設定します。
var bannerSize = BannerSize.NORMAL
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
// requestInitAd(this)
}
val adizListener = object : AdizListener() {
override fun onLoad() {
// requestShowAd()
}
override fun onFail(loadError: AdizError) {
var code = loadError.getCode() // error code
var message = loadError.getMessage() // error message
}
override fun onShow() {
//
}
override fun onClick() {
//
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
var revenue = adRevenueData.revenue // 広告が表示されたときの収益
var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// バナー広告インスタンスを作成します。
banner = AdizBanner.initialize(activity, bannerSize, adizListener)
} else {
// hiveAdKeyを入力してバナー広告インスタンスを作成できます。
banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// バナー広告インスタンスを作成します。
banner = AdizBanner.initialize(activity, bannerSize, adizListener)
} else {
// placementIdを入力することでバナー広告インスタンスを作成できます。
banner = AdizBanner.initializeWithPlacementId(activity, placementId, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// バナー広告を読み込む。
banner?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// バナー広告を表示します。
banner?.let {
if(it.isLoaded()) it.show()
}
// バナーの位置を設定
/*
var position = PositionType.TOP
banner?.let {
if(it.isLoaded()) it.show(position)
}
*/
}
fun requestDestroyAd() {
// バナー広告を削除します。
banner?.destroy()
}
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizBanner;
import com.hive.adiz.common.AdRevenueData;
import com.hive.adiz.common.BannerSize;
import com.hive.adiz.common.PositionType;
public class BannerExample extends Activity {
// バナーサイズを設定します。
BannerSize bannerSize = BannerSize.NORMAL;
AdizBanner banner = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
// requestInitAd(this, null);
}
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
// requestShowAd();
}
@Override
public void onFail(@NonNull AdizError loadError) {
int code = loadError.getCode(); // エラーコード
String message = loadError.getMessage(); // エラーメッセージ
}
@Override
public void onShow() {
}
@Override
public void onClick() {
//
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// バナー広告インスタンスを作成します。
banner = AdizBanner.initialize(activity, bannerSize, adizListener);
} else {
// hiveAdKeyを入力することでバナー広告インスタンスを作成できます。
banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// バナー広告インスタンスを作成します。
banner = AdizBanner.initialize(activity, bannerSize, adizListener);
} else {
// placementIdを入力することでバナー広告インスタンスを作成できます。
banner = AdizBanner.initializeWithPlacementId(activity, placementId, bannerSize, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// バナー広告を読み込みます。
if(banner != null && banner.isInitialized()) banner.load();
}
private void requestShowAd() {
// バナー広告を表示します。
if(banner != null && banner.isLoaded()) banner.show();
// バナーの位置を設定
// PositionType position = PositionType.TOP;
// if(banner != null) banner.show(position);
}
private void requestDestroyAd() {
// バナー広告を削除します。
if(banner != null) banner.destroy();
}
}
ネイティブ広告 (ネイティブ)¶
これは特定のサイズのネイティブテンプレートを表示するネイティブ広告です。ネイティブ広告はポートレート画面に最適化されているため、縦向きのゲーム(ポートレート画面ゲーム)での使用が推奨されます。ネイティブ広告はonClose()
コールバックを受け取りません。したがって、広告を終了するには別の場所からdestroy()
を呼び出す必要があります。
現在のテンプレートはsmall
またはmedium
サイズをサポートしています。
テンプレート | アライメント | バナーサイズ定数 |
---|---|---|
小サイズ | 上 / 下 | BannerSize.NORMAL |
中サイズ | 中央(固定) | BannerSize.MEDIUM |
small
テンプレートでは、PositionType
は上または下のいずれかで、デフォルトは下です。
配置 | 説明 | PositionType 定数 |
---|---|---|
上部配置 | 画面の上部での配置を指定します | PositionType.TOP |
下部配置 (デフォルト) | 画面の下部での配置を指定します | PositionType.BOTTOM |
medium
テンプレートは、配置の選択を許可せず、デフォルトで中央揃えを使用します。
import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizNative
import com.hive.adiz.common.AdRevenueData
import com.hive.adiz.common.BannerSize
class NativeAdExampleKT : Activity() {
var nativeAd: AdizNative? = null
// バナーサイズを設定します。
var bannerSize = BannerSize.NORMAL
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
// requestInitAd(this)
}
val adizListener = object : AdizListener() {
override fun onLoad() {
// requestShowAd()
}
override fun onFail(loadError: AdizError) {
var code = loadError.getCode() // エラーコード
var message = loadError.getMessage() // エラーメッセージ
}
override fun onShow() {
//
}
override fun onClick() {
//
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
var revenue = adRevenueData.revenue // 広告が表示されたときの収益
var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// ネイティブ広告インスタンスを作成します。
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
} else {
// hiveAdKeyを入力することでネイティブ広告インスタンスを作成できます。
nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// ネイティブ広告インスタンスを作成します。
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
} else {
// placementIdを入力してネイティブ広告インスタンスを作成できます。
nativeAd = AdizNative.initializeWithPlacementId(activity, placementId, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// ネイティブ広告を読み込む。
nativeAd?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// ネイティブ広告を公開します。
nativeAd?.let {
if(it.isLoaded()) it.show()
}
// バナーの位置を設定
/*
var position = PositionType.TOP
nativeAd?.let {
if(it.isLoaded()) it.show(position)
}
*/
}
fun requestDestroyAd() {
// ネイティブ広告を削除します。
nativeAd?.destroy()
}
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizNative;
import com.hive.adiz.common.AdRevenueData;
import com.hive.adiz.common.BannerSize;
import com.hive.adiz.common.PositionType;
public class NativeAdExample extends Activity {
// バナーサイズを設定します。
BannerSize bannerSize = BannerSize.NORMAL;
AdizNative nativeAd = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
// requestInitAd(this, null);
}
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
// requestShowAd();
}
@Override
public void onFail(@NonNull AdizError loadError) {
int code = loadError.getCode(); // エラーコード
String message = loadError.getMessage(); // エラーメッセージ
}
@Override
public void onShow() {
}
@Override
public void onClick() {
//
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// HiveAdKeyが入力されていない場合、デフォルトキーがis_default=trueに設定されたインスタンスがHive Adizの初期化中に受信され、ネイティブ広告インスタンスが作成されます。
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener);
} else {
// hiveAdKeyを入力することでネイティブ広告インスタンスを作成できます。
nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// ネイティブ広告インスタンスを作成します。(HiveAdKeyが入力されていない場合、インスタンスはデフォルトキーがis_default=trueに設定されて作成され、これはHive Adizの初期化中に受け取ったものです。)
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener);
} else {
// placementIdを入力することでネイティブ広告インスタンスを作成できます。
nativeAd = AdizNative.initializeWithPlacementId(activity, placementId, bannerSize, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// ネイティブ広告を読み込む。
if(nativeAd != null && nativeAd.isInitialized()) nativeAd.load();
}
private void requestShowAd() {
// ネイティブ広告を表示します。
if(nativeAd != null && nativeAd.isLoaded()) nativeAd.show();
// バナーの位置を設定
// PositionType position = PositionType.TOP;
// if(nativeAd != null && nativeAd.isLoaded()) nativeAd.show(position);
}
private void requestDestroyAd() {
// ネイティブ広告を削除します。
if(nativeAd != null) nativeAd.destroy();
}
}
報酬広告¶
これは、ユーザーが一定の時間広告を視聴することで報酬を受け取る報酬広告です。報酬が付与されると、報酬アイテムの情報がonRewarded()
コールバックを通じて受け取られます。
import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizRewarded
import com.hive.adiz.common.AdRevenueData
class RewardedExample : Activity() {
var rewardedAd: AdizRewarded? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
// requestInitAd(this)
}
val adizListener = object : AdizListener() {
override fun onLoad() {
// requestShowAd()
}
override fun onFail(loadError: AdizError) {
var code = loadError.getCode() // エラーコード
var message = loadError.getMessage() // エラーメッセージ
}
override fun onShow() {
//
}
override fun onClick() {
//
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
var revenue = adRevenueData.revenue // 広告が表示されたときの収益
var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
}
override fun onClose() {
// requestDestroyAd()
}
override fun onRewarded(rewardItem: RewardItem) {
var itemType = rewardItem.itemType // 報酬アイテムの種類
var itemAmount = rewardItem.itemAmount // 報酬アイテムの数量
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// 報酬広告インスタンスを作成します。
rewardedAd = AdizRewarded.initialize(activity, adizListener)
} else {
// hiveAdKeyを入力することで報酬広告インスタンスを作成できます。
rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// 報酬型広告インスタンスを作成します。
rewardedAd = AdizRewarded.initialize(activity, adizListener)
} else {
// placementIdを入力することで報酬型広告インスタンスを作成できます。
rewardedAd = AdizRewarded.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// 報酬付き広告を読み込む。
rewardedAd?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// 報酬広告を表示します。
rewardedAd?.let {
if(it.isLoaded()) it.show()
}
}
fun requestDestroyAd() {
// 報酬広告を削除します。
rewardedAd?.destroy()
}
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizRewarded;
import com.hive.adiz.common.AdRevenueData;
public class RewardedExample extends Activity {
AdizRewarded rewardedAd = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
// requestInitAd(this, null);
}
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
// requestShowAd();
}
@Override
public void onFail(@NonNull AdizError loadError) {
int code = loadError.getCode(); // エラーコード
String message = loadError.getMessage(); // エラーメッセージ
}
@Override
public void onShow() {
//
}
@Override
public void onClick() {
//
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
}
@Override
public void onClose() {
// requestDestroyAd();
}
@Override
public void onRewarded(@NonNull RewardItem rewardItem) {
String rewardType = rewardItem.getItemType(); // 報酬アイテムの種類
int rewardAmount = rewardItem.getItemAmount(); // 報酬アイテムの数量
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// 報酬型広告インスタンスを作成します。(HiveAdKeyが入力されていない場合、インスタンスはデフォルトキー(is_default=true)で作成され、これはHive Adizの初期化中に受け取ったものです。)
rewardedAd = AdizRewarded.initialize(activity, adizListener);
} else {
// hiveAdKeyを入力することで報酬型広告インスタンスを作成できます。
rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// 報酬型広告インスタンスを作成します。(HiveAdKeyが入力されていない場合、インスタンスはデフォルトキー(is_default=true)で作成され、これはHive Adizの初期化中に受け取ったものです。)
rewardedAd = AdizRewarded.initialize(activity, adizListener);
} else {
// placementIdを入力することで報酬型広告インスタンスを作成できます。
rewardedAd = AdizRewarded.initializeWithPlacementId(activity, placementId, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// 報酬広告を読み込みます。
if(rewardedAd != null && rewardedAd.isInitialized()) rewardedAd.load();
}
private void requestShowAd() {
// 報酬広告を表示します。
if(rewardedAd != null && rewardedAd.isLoaded()) rewardedAd.show();
}
private void requestDestroyAd() {
// 報酬付き広告を削除します。
if(rewardedAd != null) rewardedAd.destroy();
}
}
報酬付きインタースティシャル¶
これは、ユーザーが一定の時間広告を視聴することで報酬を受け取る報酬付きインタースティシャル広告です。報酬が付与されると、報酬アイテムの情報がonRewarded()
コールバックを通じて受け取られます。
import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizRewardedInterstitial
import com.hive.adiz.common.AdRevenueData
import com.hive.adiz.rewarded.RewardItem
class RewardedInterstitialExample : Activity() {
var rewardedInterstitialAd: AdizRewardedInterstitial? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
// requestInitAd(this)
}
val adizListener = object : AdizListener() {
override fun onLoad() {
// requestShowAd()
}
override fun onFail(loadError: AdizError) {
var code = loadError.getCode() // エラーコード
var message = loadError.getMessage() // エラーメッセージ
}
override fun onShow() {
//
}
override fun onClick() {
//
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
var revenue = adRevenueData.revenue // 広告が表示されたときに生成された収益
var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
}
override fun onClose() {
// requestDestroyAd()
}
override fun onRewarded(rewardItem: RewardItem) {
var itemType = rewardItem.itemType // 報酬アイテムの種類
var itemAmount = rewardItem.itemAmount // 報酬アイテムの数量
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// 報酬付きインタースティシャル広告のインスタンスを作成します。
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
} else {
// hiveAdKeyを入力して報酬付きインタースティシャル広告のインスタンスを作成できます。
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// 報酬付きインタースティシャル広告のインスタンスを作成します。
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
} else {
// placementIdを入力して報酬付きインタースティシャル広告のインスタンスを作成できます。
rewardedInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// 報酬付きインタースティシャル広告を読み込みます。
rewardedInterstitialAd?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// 報酬付きインタースティシャル広告を表示します。
rewardedInterstitialAd?.let {
if(it.isLoaded()) it.show()
}
}
fun requestDestroyAd() {
// 報酬付きインタースティシャル広告を削除します。
rewardedInterstitialAd?.destroy()
}
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizRewardedInterstitial;
import com.hive.adiz.common.AdRevenueData;
import com.hive.adiz.rewarded.RewardItem;
public class RewardedInterstitialExample extends Activity {
AdizRewardedInterstitial rewardedInterstitialAd = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
// requestInitAd(this, null);
}
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
// requestShowAd();
}
@Override
public void onFail(@NonNull AdizError loadError) {
int code = loadError.getCode(); // エラーコード
String message = loadError.getMessage(); // エラーメッセージ
}
@Override
public void onShow() {
//
}
@Override
public void onClick() {
//
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // 広告が表示されたときに生成された収益
String currency = adRevenueData.getCurrency(); // 広告が表示されたときの通貨コード
}
@Override
public void onClose() {
// requestDestroyAd();
}
@Override
public void onRewarded(@NonNull RewardItem rewardItem) {
String rewardType = rewardItem.getItemType(); // リワードアイテムのタイプ
int rewardAmount = rewardItem.getItemAmount(); // リワードアイテムの数量
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// 報酬付きインタースティシャル広告のインスタンスを作成します(広告キー(HiveAdKey)が入力されていない場合、Hive Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
} else {
// hiveAdKeyを入力することで報酬付きインタースティシャル広告のインスタンスを作成できます。
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// 報酬型インタースティシャル広告のインスタンスを作成します(広告キー(HiveAdKey)が入力されていない場合、Hive Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
} else {
// placementIdを入力することで報酬型インタースティシャル広告のインスタンスを作成できます。
rewardedInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(activity, placementId, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// 報酬付きインタースティシャル広告を読み込みます。
if(rewardedInterstitialAd != null && rewardedInterstitialAd.isInitialized()) rewardedInterstitialAd.load();
}
private void requestShowAd() {
// 報酬付きインタースティシャル広告を表示します。
if(rewardedInterstitialAd != null && rewardedInterstitialAd.isLoaded()) rewardedInterstitialAd.show();
}
private void requestDestroyAd() {
// 報酬付きインタースティシャル広告を削除します。
if(rewardedInterstitialAd != null) rewardedInterstitialAd.destroy();
}
}
アプリオープン広告 (AppOpen)¶
これは、アプリの状態がバックグラウンドからフォアグラウンドに変わるときに、事前に読み込まれた (load()
) 広告を表示するアプリオープニング広告です。広告が読み込まれてから3時間が経過した後に show()
を呼び出すと、広告は自動的に再読み込みされ、その後表示されます。一度でも広告が表示されると、自動的に再読み込みされることはありません。
import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizAppOpen
import com.hive.adiz.common.AdRevenueData
class AppOpenExample : Activity() {
var appOpen: AdizAppOpen? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
// requestInitAd(this)
}
val adizListener = object : AdizListener() {
override fun onLoad() {
//
}
override fun onFail(loadError: AdizError) {
var code = loadError.getCode() // エラーコード
var message = loadError.getMessage() // エラーメッセージ
}
override fun onShow() {
//
}
override fun onClick() {
//
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
var revenue = adRevenueData.revenue // 広告が表示されたときの収益
var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
}
override fun onClose() {
// requestDestroyAd()
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// Creates an app opening ad instance.
appOpen = AdizAppOpen.initialize(activity, adizListener)
} else {
// You can create an app opening ad instance by entering the hiveAdKey.
appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// アプリオープニング広告インスタンスを作成します。
appOpen = AdizAppOpen.initialize(activity, adizListener)
} else {
// placementIdを入力することでアプリオープニング広告インスタンスを作成できます。
appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// アプリオープニング広告を読み込みます。読み込みが完了すると、アプリがバックグラウンドからフォアグラウンドに移動したときに広告が自動的に表示されます。
// 広告が少なくとも一度表示されると、再表示されることはないため、広告を表示し続けたい場合は、onClose()コールバック内でappOpen.load()を再度呼び出す必要があります。
appOpen?.let {
if(it.isInitialized()) it.load()
}
}
fun requestDestroyAd() {
// アプリオープニング広告を削除します。
appOpen?.destroy()
}
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizAppOpen;
import com.hive.adiz.common.AdRevenueData;
public class AppOpenExample extends Activity {
AdizAppOpen appOpen = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
// requestInitAd(this, null);
}
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
//
}
@Override
public void onFail(@NonNull AdizError loadError) {
int code = loadError.getCode(); // エラーコード
String message = loadError.getMessage(); // エラーメッセージ
}
@Override
public void onShow() {
//
}
@Override
public void onClick() {
//
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
}
@Override
public void onClose() {
// requestDestroyAd();
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// アプリオープニング広告インスタンスを作成します。(広告キー(HiveAdKey)が入力されていない場合、Hive Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
appOpen = AdizAppOpen.initialize(activity, adizListener);
} else {
// hiveAdKeyを入力することでアプリオープニング広告インスタンスを作成できます。
appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// アプリオープニング広告インスタンスを作成します。(広告キー(HiveAdKey)が入力されていない場合、Hive Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
appOpen = AdizAppOpen.initialize(activity, adizListener);
} else {
// placementIdを入力することでアプリオープニング広告インスタンスを作成できます。
appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// アプリオープニング広告を読み込みます。
if(appOpen != null && appOpen.isInitialized()) appOpen.load();
}
private void requestDestroyAd() {
// アプリオープニング広告を削除します。
if(appOpen != null) appOpen.destroy();
}
}