Android
Adiz Android¶
Adiz Androidは、Hiveによって提供されるAndroid用の広告モジュールで、AdMobが提供する広告露出機能をより簡単に使用できるようにします。Adiz Androidが提供する広告の種類は以下の通りです:
- インタースティシャル広告
- バナー広告
- ネイティブ広告
- リワード広告
- リワードインタースティシャル広告
- アプリオープニング広告
Adiz Androidをインストールして使用するには、以下のガイドを順番に参照してください。
インストール¶
モジュールのアプリレベルのGradleファイル(app/build.gradle)にAdizライブラリアイテムを追加します。
Java 8の機能をサポートするには、android
設定を使用して、モジュールのアプリレベルのGradleファイルに以下を追加してください。
android {
// ...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
AdMobId
(形式はca-app-pub-XXXXX~YYYYY)を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>
セットアップ test ads¶
Adiz は、テスト広告を2つの方法で表示することを可能にします。
- テストモードを有効にする: AdMobによって発行されたテスト広告のみを表示します。
- テストデバイスを登録し広告を表示する: テスト目的で実際の広告を表示します。テスト中に無効なトラフィックが発生しないように、テスト広告を表示するデバイスを登録します。
テストモードを有効にする¶
開発段階では、テストモードを有効にして、テスト広告のクリックが広告主に料金を発生させないようにします。テストモードが有効な場合、テスト広告のみが表示されます。テストモードでは、テスト広告を表示するためにHiveコンソールにAdMob広告キーを入力する必要はありません。商業配信のためにはテストモードを無効にしてください。
Note
開発段階でテストモードではないときに広告をあまりにも多くクリックすると、無効なトラフィックと見なされる可能性があり、あなたのAdMobアカウントが報告され、広告を表示できなくなることがあります。
import com.hive.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);
// Adizモジュールのログを有効にします。ログはテストモードでのみ使用するべきです。商業配布のためには、以下の行をコメントアウトしてください。
Adiz.setLogEnable(true);
広告表示のためのテストデバイスの設定¶
テスト広告を表示するために、以下の状況でテストデバイスを登録する必要があります:
- Hive コンソールに登録されたAdMob広告キーが正しく機能しているかをテストする場合
- GDPRメッセージを書いた後に、GDPR同意ポップアップが正しく機能していることを確認したい場合
- 広告リクエストを分析およびデバッグするためにAd Inspectorを実行する必要がある場合
テストデバイスを登録せずに実際の広告でテストすることは、無効なトラフィックと見なされる可能性があり、その結果、あなたのAdMobアカウントがブロックされ、広告を表示できなくなることがあります。テストデバイスを登録すると、広告表示中に「テスト モード」または「テスト 広告」(ネイティブ広告の場合)が表示されます。テストデバイスは、プロダクション展開のためには無効にする必要があります。
バナー、インタースティシャル、または報酬型広告
テストデバイスを登録するには、まずテストデバイスのIDを特定します。テストデバイスのID(例:33BE2250B43518CCDA7DE426D04EE231
)は、以下の2つの方法で見つけることができます:
Adiz.Initialize()
を呼び出した後、Logcatログを確認します:
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
Adiz.Initialize()
を呼び出した後、広告の種類に関係なく、initialize()
→load()
を呼び出し、その後Logcatログを確認します:
I/Ads: Use RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231")) to get test ads on this device."
テストデバイスIDを特定した後、既存の Adiz初期化コード内でAdiz.setTestDevice(DEVICE_ID)
の行をAdiz.initialize
を実行する前に追加します。コピーしたテストデバイス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?) {
// ... skipped
}
})
}
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()) {
// ... skipped
}
}
});
}
広告 インスペクターの使用¶
広告 インスペクターは、テストデバイス上でリアルタイムに広告をリクエストし表示するプロセスを分析するアプリ内オーバーレイツールです。広告の読み込みにかかった時間を通知し、表示に失敗した場合はその理由を提供します。さらに、特定の広告ネットワークを指定して、広告が正しく表示されているかどうかを確認でき、問題がある場合はコードレベルでデバッグできます。これらすべてのプロセスは、広告 インスペクター UI を使用して行われます。これは、Google Mobile Ads SDK Android 20.0.0 以上に含まれており、AdizDeveloperTool.openAdInspector
を呼び出すことで使用できます。
Ad インスペクターを使用するには、次の2つの条件を満たす必要があります:
- テストデバイスをテストデバイスの設定に従って
Adiz.setTestDevice
で設定します - 初期化に従って
Adiz.Initialize
で初期化を完了します
Adiz AppIDの設定¶
Hive コンソール AppCenter に登録した Adiz AppID を設定します。設定されていない場合は、AndroidManifest.xml パッケージ名が使用されます。
Hive コンソールサーバーの設定¶
使用したい Hive コンソールサーバーを設定します。デフォルトは REAL
です。商用サーバーを使用しても、テストモードが有効になっている場合はテスト広告が表示されます。
- Hive テストコンソールサーバー:
ZoneType.TEST
- Hive サンドボックスコンソールサーバー:
ZoneType.SANDBOX
- Hive 商用コンソールサーバー:
ZoneType.REAL
GDPR同意ポップアップ表示(ヨーロッパと英国)¶
あなたのゲームがヨーロッパとUK(EEA & UK)を対象とする場合、GDPR(一般データ保護規則)同意ポップアップを表示する必要があります。GDPR同意ポップアップは、ユーザーのデバイスのIPアドレスがヨーロッパまたはUK(EEA & UK)からの場合にのみ表示されます。 Adizは、GoogleのUMP(ユーザー メッセージング プラットフォーム)をサポートしており、GDPR同意ポップアップを表示します。
AdMobコンソールでGDPRメッセージを作成した後、ユーザーがヨーロッパおよび英国からアクセスすると、GDPRポップアップが表示されます。Adizを初期化するとき。
Warning
たとえヨーロッパおよび英国以外の地域を対象にしている場合でも、Adizの初期化が正しく実行されるためには、AdMobコンソールでGDPRメッセージを作成する必要があります。
GDPRメッセージの作成¶
Google AdMobコンソールにアクセスして、GDPRメッセージを作成します。GDPRメッセージを作成する前に、GDPRメッセージ作成ガイドを参照してください。
GDPRメッセージを作成した後、GDPR同意ポップアップはAdizの初期化中に自動的に表示されます。
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) {
// ... スキップされました
// アプリのUIに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;
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()) {
// ... スキップされました
// アプリのUIにGDPR同意ポップアップを再表示するためのボタンを表示するかどうかを判断します
boolean isPrivacyOptionsRequired = AdizConsentManager.isPrivacyOptionsRequired();
if(isPrivacyOptionsRequired) {
// アプリにボタンを表示します。(ボタンがクリックされたとき、showPrivacyOptionsForm()を呼び出してGDPR同意ポップアップを表示します)
showGDPRConsentPopupButton()
} else {
// アプリにボタンは表示されません。
// アプリ内で他の望ましいアクションを実行します。
}
}
}
});
}
public void showPrivacyOptionsForm(Activity activity) {
// Call the GDPR consent popup
if(AdizConsentManager.isPrivacyOptionsRequired()) {
AdizConsentManager.showPrivacyOptionsForm(activity, new AdizConsentManager.ConsentListener() {
@Override
public void onResult(@NonNull AdizError error) {
// No need to do any error handling.
}
});
}
}
同意年齢未満のtagの設定¶
同意年齢 (TFUA) のタグを使用して、欧州経済地域 (EEA)、イギリス、スイスに居住するユーザーを限定的なデータ処理の対象として扱うように広告リクエストを設定できます。子供向けのアプリでは、AdizConsentManager.setUserPrivacySettings
を使用してユーザーが同意年齢未満であることを設定できます。欧州諸国間にはいくつかの違いがありますが、GDPR は親の同意が必要な年齢を16歳未満と定義しています。同意年齢の設定は、Adiz.initialize
を実行する前に構成する必要があります。
Warning
両方のGDPRタグ(同意年齢未満のユーザー用)setTagForUnderAgeOfConsent
とCOPPAタグ(子供向けの処理用)setTagForChildDirectedTreatment
がtrue
に設定されている場合、COPPAタグが優先されます。したがって、両方をtrue
に設定して同時に使用しないでください。
Note
Hive SDK v4 24.2.0 以上を Adiz 2.0.1 以上と一緒に使用する場合、Hive SDK はユーザーの年齢に応じて同意年齢未満のユーザーに自動的にタグを適用します。したがって、AdizConsentManager.setUserPrivacySettings
を呼び出す必要はありません。
import com.hive.Adiz
import com.hive.adiz.AdizError
import com.hive.adiz.consent.PrivacySettings
import org.json.JSONObject
fun initialize() {
val isUnderAgeForGDPR = false // change this to true if the user is a child
val settings = PrivacySettings.Builder()
.setTagForUnderAgeOfConsent(isUnderAgeForGDPR)
.build()
AdizConsentManager.setUserPrivacySettings(settings)
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
// ... skipped
}
})
}
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; // change this to true if the user is a child
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()) {
// ... skipped
}
}
});
}
GDPRテストデバイスの設定¶
GDPR同意ポップアップは、デバイスのIPアドレスがヨーロッパまたはイギリスからの場合にのみ表示されます。開発中は、GDPRテストデバイスを設定することで、デバイスのIPアドレスに関係なくGDPR同意ポップアップを強制的に表示させることができます。GDPRテストデバイスを設定するための手順は以下の通りです:
- 初期化 Adiz。この初期化の目的はテストデバイスIDを確認することであり、事前にGDPR同意メッセージを作成する必要はありません。
- Logcatのログ出力からデバイスIDを見つけます。以下はメッセージの例です:
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
デバイスIDを取得します(例:33BE2250B43518CCDA7DE426D04EE231
)。 - デバイスIDをコピーします。
- 既存の Adiz 初期化コード内で
Adiz.setTestDevice(DEVICE_ID)
をAdiz.initialize
を実行する前に追加します。 - GDPR同意メッセージを作成し、Adizを再初期化してGDPR同意ポップアップが正しく表示されることを確認します。
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?) {
// ... スキップされました
}
})
}
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()) {
// ... スキップされました
}
}
});
}
子供向けの処理のためのtagの設定¶
子供のオンラインプライバシー保護法(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 // set true if the user is a child
val settings = PrivacySettings.Builder()
.setTagForChildDirectedTreatment(isChildDirectedTreatmentForCOPPA)
.build()
AdizConsentManager.setUserPrivacySettings(settings)
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
// ... skipped
}
})
}
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; // set true if the user is a child
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()) {
// ... skipped
}
}
});
}
広告の仲介を追加¶
Adiz は、AdMob 仲介を使用して広告を表示することを可能にします。AdMob 仲介を追加するには、以下の手順に従ってください。
AdMob メディエーションの追加¶
AdMob コンソールで広告ソースの統合を進めてください。以下の表に従ってください。
AppLovin | Pangle | Unity Ads | Meta | |
---|---|---|---|---|
ステップ 1 | AppLovinの設定を行う | Pangleの設定を行う | Unity Adsの設定を行う | Metaの設定を行う |
ステップ 2 | AdMobにAppLovin広告ソースを追加する | AdMobにPangle広告ソースを追加する | AdMobにUnity Ads広告ソースを追加する | AdMobにMeta広告ソースを追加する |
ステップ 3 | Adizアダプタを追加する |
adiz アダプター¶
アプリレベルのbuild.gradleにライブラリ依存関係を追加します。
dependencies {
// ... (omitted)
implementation 'com.com2us.android.adiz:hive-adiz:2.0.0' // 共通(追加する必要があります)
implementation 'com.com2us.android.adiz:hive-adiz-adapter-applovin:2.0.1' // Add for AppLovin integration
implementation 'com.com2us.android.adiz:hive-adiz-adapter-pangle:2.0.1' // Add for Pangle integration
implementation 'com.com2us.android.adiz:hive-adiz-adapter-unityads:2.0.1' // Add for Unity Ads integration
implementation 'com.com2us.android.adiz:hive-adiz-adapter-meta:2.0.1' // Add for Meta integration
}
Pangleと統合する際は、次の設定を追加してください。Gradle 7.0以上を使用している場合は、プロジェクトレベルのsettings.gradleのdependencyResolutionManagement
セクションにrepository
設定を追加してください。
// Settings for Gradle 7.0 or above in settings.gradle
依存関係解決管理 {
リポジトリ {
maven { url 'https://artifact.bytedance.com/repository/pangle/' } // Pangle統合のために追加
}
}
Gradleのバージョンが7.0未満の場合、プロジェクトレベルのbuild.gradleのallprojects
セクションにrepository
設定を追加してください。
// Settings for Gradle version less than 7.0 in build.gradle
allprojects {
repositories {
maven {
url 'https://artifact.bytedance.com/repository/pangle' // Pangle統合のために追加
}
}
}
Adizアダプターの設定が正しく適用されているか確認するには、アプリを実行し、Ad Inspector画面の設定リストをチェックしてください。
adizを初期化中¶
Adizの初期化は、あらゆる種類の広告を公開する前に必要なステップです。Adizを初期化すると、広告を表示するために必要な広告キーを受け取ることができます。テストモードが有効になっている場合、テストキーを受け取ります。Hive SDKを使用している場合は、AuthV4.setup
を呼び出した後にAdizの初期化を進めてください。
Adiz.initialize(activity, 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) {
//...
}
}
}
}
})
Adiz.initialize(activity, 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>();
try {
JSONArray keysArr = jsonData.optJSONArray("keys");
for(int i = 0; i < keysArr.length(); i++) {
JSONObject unit = keysArr.optJSONObject(i);
// ゲーム内で広告キーを直接入力すると、is_defaultがfalseのキーのリストを構築する例です。
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) {
}
}
}
}
});
初期化時に、コールバックとして受け取ったJSONファイルには広告キーのリストが含まれています。広告キーリストの形式は次のとおりです:
{
"keys":[
{
"mediation_id":5,
"key":"ca-app-pub-3940256099942544/5354046379",
"form":"rewarded_interstitial",
"is_default":true
},
{
"mediation_id":4,
"key":"ca-app-pub-3940256099942544/5224354917",
"form":"rewarded",
"is_default":true
},
{
"mediation_id":3,
"key":"ca-app-pub-3940256099942544/2247696110",
"form":"native",
"is_default":true
},
{
"mediation_id":1,
"key":"ca-app-pub-3940256099942544/1033173712",
"form":"interstitial",
"is_default":true
},
{
"mediation_id":2,
"key":"ca-app-pub-3940256099942544/6300978111",
"form":"banner",
"is_default":true
},
{
"mediation_id":6,
"key":"ca-app-pub-3940256099942544/9257395921",
"form":"app_open",
"is_default":true
}
]
}
テストモードで初期化すると、Hive コンソールにAdMob広告キーを登録していなくても、テスト広告キーのリストが受け取れます。商業モードで初期化すると、Hive コンソールに登録されたAdMob広告キーのリストが受け取れます。
各広告フォーマットには、デフォルト広告として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() | 広告が閉じられました 広告が閉じられた後、同じ広告インスタンスを再表示するには、load() を呼び出し、その後 show() を呼び出す必要があります。 もし広告を表示しなくなった場合は、destroy() を呼び出して広告インスタンスを削除してください。 | X |
onRewarded(rewardItem: RewardItem) | 報酬広告(rewarded , rewarded interstitial )の表示後にユーザーが報酬を受け取るポイント | X |
var adizListener = object : AdizListener() {
override fun onLoad() {
// 広告が読み込まれたときに呼び出されます。
// 広告の読み込みが成功した場合、広告を表示するために必要なポイントで広告インスタンスの .show() を呼び出す必要があります。
}
override fun onFail(loadError: AdizError) {
// 広告の読み込みに失敗した場合や、他の理由で広告の表示に失敗した場合に呼び出されます。
}
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) {
// 広告の読み込みが失敗した場合や、他の理由で広告の表示が失敗した場合に呼び出されます。
}
@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() {
// 広告が閉じられたときに呼び出されます。
// バナー広告やネイティブ広告には閉じるボタンがないため、onCloseコールバックはありません。
}
@Override
public void onRewarded(@NonNull RewardItem rewardItem) {
// 広告を視聴した際に報酬が発生したときに呼び出されます。
String rewardType = rewardItem.getItemType(); // 報酬アイテムの種類
int rewardAmount = rewardItem.getItemAmount(); // 報酬アイテムの数量
}
};
エラーコード¶
Adiz.Initialize
と AdizListener
の onFail()
が受信されたときのエラーコードとエラーメッセージは以下の通りです:
共通コード¶
番号 | ケース | 説明 |
---|---|---|
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同意ポップアップを表示する必要がないか、表示できません |
広告の露出と終了¶
広告を表示して終了するには、次の手順に従ってください:
- 公開したい広告の種類ごとに広告クラスから広告インスタンスを作成します。公開したい広告がデフォルト広告でない場合は、初期化から取得した広告キーを入力する必要があります。広告キー(
hiveAdKey
)を入力しない場合、デフォルトの広告インスタンスが作成されます。 - 公開したい広告を
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)
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
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()
}
}
if(hiveAdKey == null) {
// インタースティシャル広告インスタンスを作成します。
interstitialAd = AdizInterstitial.initialize(activity, adizListener)
} else {
// hiveAdKeyを入力することでインタースティシャル広告インスタンスを作成できます。
interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// インタースティシャル広告を読み込む。
interstitialAd?.load()
}
fun requestShowAd() {
// インタースティシャル広告を表示します。
interstitialAd?.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);
}
public void requestInitAd(Activity activity, String hiveAdKey) {
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
// requestShowAd();
}
@Override
public void onFail(@NonNull AdizError loadError) {
int code = loadError.getCode(); // error code
String message = loadError.getMessage(); // error message
}
@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(); // 広告が表示されたときの収益の通貨コード
}
};
if(TextUtils.isEmpty(hiveAdKey)) {
// インタースティシャル広告インスタンスを作成します。
interstitialAd = AdizInterstitial.initialize(activity, adizListener);
} else {
// hiveAdKeyを入力することでインタースティシャル広告インスタンスを作成できます。
interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// インタースティシャル広告を読み込む。
if(interstitialAd != null) interstitialAd.load();
}
private void requestShowAd() {
// インタースティシャル広告を表示します。
if(interstitialAd != null) interstitialAd.show();
}
private void requestDestroyAd() {
// インタースティシャル広告を削除します。
if(interstitialAd != null) interstitialAd.destroy();
}
}
バナー広告 (Banner)¶
バナー広告は特定のサイズのバナーを表示します。バナー広告はonClose()
コールバックを受け取りません。したがって、広告を終了するには別の場所からdestroy()
を呼び出す必要があります。
BannerSize
は標準のバナーサイズに従います。
サイズポイント (幅 x 高さ) | 説明 | 対応デバイス | バナーサイズ定数 |
---|---|---|---|
320x50 | バナー | 携帯電話とタブレット | BannerSize.NORMAL |
320x100 | 大バナー | 携帯電話とタブレット | BannerSize.MEDIUM |
300x250 | IAB中サイズの長方形 | 携帯電話とタブレット | BannerSize.LARGE |
468x60 | 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)
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
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 // 広告が表示されたときの収益の通貨コード
}
}
if(hiveAdKey == null) {
// バナー広告インスタンスを作成します。
banner = AdizBanner.initialize(activity, bannerSize, adizListener)
} else {
// hiveAdKeyを入力することでバナー広告インスタンスを作成できます。
banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// バナー広告を読み込む。
banner?.load()
}
fun requestShowAd() {
// バナー広告を表示します。
banner?.show()
// バナーの位置を設定
// var position = PositionType.TOP
// banner?.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);
}
public void requestInitAd(Activity activity, String hiveAdKey) {
AdizListener adizListener = new AdizListener() {
@Override
public void onLoad() {
// requestShowAd();
}
@Override
public void onFail(@NonNull AdizError loadError) {
int code = loadError.getCode(); // error code
String message = loadError.getMessage(); // error message
}
@Override
public void onShow() {
}
@Override
public void onClick() {
//
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
}
};
if(TextUtils.isEmpty(hiveAdKey)) {
// バナー広告インスタンスを作成します。
banner = AdizBanner.initialize(activity, bannerSize, adizListener);
} else {
// hiveAdKeyを入力することでバナー広告インスタンスを作成できます。
banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// バナー広告を読み込みます。
if(banner != null) banner.load();
}
private void requestShowAd() {
// バナー広告を表示します。
if(banner != null) 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)
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
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 // 広告が表示されたときの収益の通貨コード
}
}
if(hiveAdKey == null) {
// ネイティブ広告インスタンスを作成します。
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
} else {
// hiveAdKeyを入力してネイティブ広告インスタンスを作成できます。
nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// ネイティブ広告を読み込む。
nativeAd?.load()
}
fun requestShowAd() {
// ネイティブ広告を表示します。
nativeAd?.show()
// バナーの位置を設定
// var position = PositionType.TOP
// nativeAd?.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);
}
public void requestInitAd(Activity activity, String hiveAdKey) {
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(); // 広告が表示されたときの収益の通貨コード
}
};
if(TextUtils.isEmpty(hiveAdKey)) {
// ネイティブ広告インスタンスを作成します。(AdKeyが入力されていない場合、インスタンスはデフォルトキーがis_default=trueに設定された状態で作成されます。これはAdizの初期化中に受信しました。)
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener);
} else {
// hiveAdKeyを入力することでネイティブ広告インスタンスを作成できます。
nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// ネイティブ広告を読み込む。
if(nativeAd != null) nativeAd.load();
}
private void requestShowAd() {
// ネイティブ広告を表示します。
if(nativeAd != null) nativeAd.show();
// バナーの位置を設定
// PositionType position = PositionType.TOP;
// if(nativeAd != null) 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)
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
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 // 報酬アイテムの数量
}
}
if(hiveAdKey == null) {
// 報酬広告インスタンスを作成します。
rewardedAd = AdizRewarded.initialize(activity, adizListener)
} else {
// hiveAdKeyを入力することで報酬広告インスタンスを作成できます。
rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// 報酬付き広告を読み込む。
rewardedAd?.load()
}
fun requestShowAd() {
// 報酬付き広告を表示します。
rewardedAd?.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);
}
public void requestInitAd(Activity activity, String hiveAdKey) {
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(); // 報酬アイテムの数量
}
};
if(TextUtils.isEmpty(hiveAdKey)) {
// 報酬付き広告インスタンスを作成します。 (AdKeyが入力されていない場合、インスタンスはデフォルトキー(is_default=true)で作成され、Adizの初期化中に受信したものです。)
rewardedAd = AdizRewarded.initialize(activity, adizListener);
} else {
// hiveAdKeyを入力することで報酬付き広告インスタンスを作成できます。
rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// 報酬付き広告を読み込む。
if(rewardedAd != null) rewardedAd.load();
}
private void requestShowAd() {
// 報酬広告を表示します。
if(rewardedAd != null) rewardedAd.show();
}
private void requestDestroyAd() {
// 報酬付き広告を削除します。
if(rewardedAd != null) rewardedAd.destroy();
}
}
報酬付きインタースティシャル広告 (Rewarded interstitial)¶
報酬付きインタースティシャル広告は、ユーザーが一定期間広告を視聴した後に報酬を受け取ることを可能にします。報酬が付与されると、報酬アイテムの情報は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)
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
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 // リワードアイテムの数量
}
}
if(hiveAdKey == null) {
// 報酬付きインタースティシャル広告のインスタンスを作成します。
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
} else {
// hiveAdKeyを入力して報酬付きインタースティシャル広告のインスタンスを作成できます。
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// 報酬付きインタースティシャル広告を読み込みます。
rewardedInterstitialAd?.load()
}
fun requestShowAd() {
// 報酬付きインタースティシャル広告を表示します。
rewardedInterstitialAd?.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);
}
public void requestInitAd(Activity activity, String hiveAdKey) {
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(); // リワードアイテムの数量
}
};
if(TextUtils.isEmpty(hiveAdKey)) {
// 報酬付きインタースティシャル広告のインスタンスを作成します(広告キー(HiveAdKey)が入力されていない場合、Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
} else {
// hiveAdKeyを入力することで報酬付きインタースティシャル広告のインスタンスを作成できます。
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// 報酬付きインタースティシャル広告を読み込みます。
if(rewardedInterstitialAd != null) rewardedInterstitialAd.load();
}
private void requestShowAd() {
// 報酬付きインタースティシャル広告を表示します。
if(rewardedInterstitialAd != null) rewardedInterstitialAd.show();
}
private void requestDestroyAd() {
// 報酬付きインタースティシャル広告を削除します。
if(rewardedInterstitialAd != null) rewardedInterstitialAd.destroy();
}
}
翻訳された内容はこちらです:
アプリオープニング広告 (アプリオープン)¶
アプリのオープニング広告は、アプリの状態がバックグラウンドからフォアグラウンドに変わると、事前にロードされた(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)
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
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()
}
}
if(hiveAdKey == null) {
// アプリオープニング広告インスタンスを作成します。
appOpen = AdizAppOpen.initialize(activity, adizListener)
} else {
// hiveAdKeyを入力することでアプリオープニング広告インスタンスを作成できます。
appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// アプリオープニング広告を読み込みます。読み込みが完了すると、アプリがバックグラウンドからフォアグラウンドに移動したときに広告が自動的に表示されます。
// 広告が少なくとも一度表示されると、再表示されることはないため、広告を表示し続けたい場合は、onClose() コールバック内で appOpen.load() を再度呼び出す必要があります。
appOpen?.load()
}
fun requestDestroyAd() {
// Removes the app opening ad.
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);
}
public void requestInitAd(Activity activity, String hiveAdKey) {
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();
}
};
if(TextUtils.isEmpty(hiveAdKey)) {
// アプリオープニング広告インスタンスを作成します。(広告キー(HiveAdKey)が入力されていない場合、Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
appOpen = AdizAppOpen.initialize(activity, adizListener);
} else {
// hiveAdKeyを入力することでアプリオープニング広告インスタンスを作成できます。
appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// アプリオープニング広告を読み込みます。
if(appOpen != null) appOpen.load();
}
private void requestDestroyAd() {
// アプリオープニング広告を削除します。
if(appOpen != null) appOpen.destroy();
}
}