コンテンツにスキップ

Android

Hive Adkit for ADOP: Android

インストール

  1. Hive Adkitの最新バージョンをダウンロードして解凍します。
  2. Adkit.gradleファイルをプロジェクトアプリのパスにコピーします。
  3. プロジェクトアプリのbuild.gradleファイルに以下の内容を追加します。
apply from: '(path to adkit.gradle file)/adkit.gradle'

dependencies {
    // ...(코드 생략)

    // Hive AdKit 라이브러리 추가
    implementation "com.com2us.android:hive-adkit-adop:1.5.1"
}

設定

Androidプロジェクトに生成されたAndroidManifest.xmlファイルにca-app-pub-XXXXX~YYYYY形式のAdMobId値とADOP APP_DOMAINを追加します。

Warning

AdKit 1.5.1バージョンからは、従来使用していたAPP_KEYがAPP_DOMAINに変更されました。APP_DOMAINは従来のAPP_KEYと互換性がないため、Hive AdKitの初期化にはAPP_DOMAINを新たに発行していただく必要があります。 APP_DOMAINに関する情報はテックラボプラットフォーム事業部運営チームにお問い合わせください。

<application>
        <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-XXXXX~YYYYY"/>
    <meta-data
        android:name="com.google.android.gms.ads.AD_MANAGER_APP"
        android:value="true"/>
    <meta-data
        android:name="com.adop.sdk.APP_DOMAIN"
        android:value="INSERT_YOUR_APP_DOMAIN"/>
    </application>

適用する

ADOP Proguard 設定

Proguardを使用している場合は、以下のADOP Proguard設定を追加する必要があります。

-keep class com.adop.sdk.** { *; }
-keep class ad.helper.openbidding.** { *; }
-keep class com.adop.sdk.adapter.**{ *; }
-keepnames class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    !static !transient <fields>;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}

# Pangle
-keep class com.bytedance.sdk.** { *; }
-keep class com.bykv.vk.openvk.component.video.api.** { *; }

# Tapjoy
-keep class com.tapjoy.** { *; }
-keep class com.moat.** { *; }
-keepattributes JavascriptInterface
-keepattributes *Annotation*
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep class com.google.android.gms.ads.identifier.** { *; }
-dontwarn com.tapjoy.**

ADOPテスト広告キー

AdMobではなくADOPが発行した広告キーを使用する必要があります。

var bannerZoneId = "944fe870-fa3a-4d1b-9cc2-38e50b2aed43"
var interstitialZoneID = "e9acd7fc-a962-40e4-aaad-9feab1b4f821"
var rewardVideoZoneId = "7d9a2c9e-5755-4022-85f1-6d4fc79e4418"
var appOpenAdZoneId = "33906f96-dae8-4790-8ce4-d1f287ba00b2"

Hive AdKit 初期化

Hive AdKitの初期化を行う際、ヨーロッパおよびイギリス(EEA & UK)地域の場合、GDPR同意ポップアップが自動的に表示されます。それ以外の地域では、初期化がすぐに行われます。

  • ゲームがヨーロッパおよびイギリス(EEA & UK)地域をターゲットにしている場合、GDPR同意ポップアップが GDPRメッセージ作成ガイド に従って設定されているか確認してください。

import com.com2us.hive.adkit.*

// 상용
AdKit.InitializeWithShowGDPRConsent(this.activity, false, null) {
    /* 
    동의 = 1, 비동의 = 0, 알수없음 = -1, 필요없음 = -2
    초기화 완료 콜백으로 GDPR 동의 상태 결과 값 consentState가 전달됩니다. 결과값에 따른 별도 처리가 필요하지 않습니다. 
    */
    Log.d("HIVEAdKit", "InitializeWithShowGDPRConsent onComplete consentState : $it")
}

// GDPR EEA 테스트모드
AdKit.InitializeWithShowGDPRConsent(this.activity, true, gdprTestDeviceId) {
    /* 
    동의 = 1, 비동의 = 0, 알수없음 = -1, 필요없음 = -2
    초기화 완료 콜백으로 GDPR 동의 상태 결과 값 consentState가 전달됩니다. 결과값에 따른 별도 처리가 필요하지 않습니다. 
    */
    Log.d("HIVEAdKit", "InitializeWithShowGDPRConsent onComplete consentState : $it")
}

ユーザーの追加情報をアナリティクスのログ発生時点に含めて伝えることができます。JSONObjectタイプのデータを伝えます。

>val data = JSONObject()
data.put("level", 1)
data.put("gold",100)
AdKit.SetAdditionalInfo(data)

RewardVideo タイプ広告

一定時間以上視聴すると報酬が与えられる報酬型広告です。一度に1つの広告のみをロードできます。

// RewardVideo Instance Create
var rewardVideo:RewardVideo? = null
rewardVideo = RewardVideo.Initialize(this.activity, rewardVideoZoneId, object : EventHandlers() {
    override fun onAdLoaded() {}
    override fun onAdOpening() {}
    override fun onAdClosed() {}
    override fun onAdFailed() {}
    override fun onAdClick() {}
    override fun onAdReward() {}
})

// RewardVideo Load
rewardVideo?.LoadAd("NativeRewardVideo-Load")

// RewardVideo Show
rewardVideo?.Show("NativeRewardVideo-Show")

広告位置データを含めて伝えることができます。 Load 成功時点と Show を通じて表示される時点に設定された文字列を伝えます。

インタースティシャルタイプ広告

画面全体を占める前面広告です。

// Interstitial Instance Create
var interstitial:Interstitial? = null
interstitial = Interstitial.Initialize(this.activity, interstitialZoneId, object : EventHandlers() {
    override fun onAdLoaded() {}
    override fun onAdOpening() {}
    override fun onAdClosed() {}
    override fun onAdFailed() {}
    override fun onAdClick() {}
})

// Interstitial Load
interstitial?.LoadAd("NativeInterstitial-Load")

// Interstitial Show
interstitial?.Show("NativeInterstitial-Show")

広告位置データを含めて伝えることができます。 Load 成功時点と Show を通じて表示される時点に設定された文字列を伝えます。

アダプティブバナータイプ広告

画面の一部を占めるロールバナーです。BannerPosition値または特定のyPos値を入力してバナーの位置を調整できます。 yPos値を入力してバナーの位置を調整する際、バナーの位置はBottom整列状態で指定したyPos値だけ上に移動します。

// BannerPosition을 설정하는 예제입니다.
// Banner Instance Create
var adaptiveBanner: AdaptiveBanner? = null

// Create AdaptiveBanner Instance at Top of View
adaptiveBanner = AdaptiveBanner.Initialize(this.activity, bannerZoneId, AdaptiveBanner.BannerPosition.Top, object : EventHandlers() {
   override fun onAdLoaded() {}
   override fun onAdOpening() {}
   override fun onAdClosed() {}
   override fun onAdFailed() {}
   override fun onAdClick() {}
})

// Create AdaptiveBanner Instance at Bottom of View
adaptiveBanner = AdaptiveBanner.Initialize(this.activity, bannerZoneId, AdaptiveBanner.BannerPosition.Bottom, object : EventHandlers() {
   override fun onAdLoaded() {}
   override fun onAdOpening() {}
   override fun onAdClosed() {}
   override fun onAdFailed() {}
   override fun onAdClick() {}
})

// AdaptiveBanner Load & Automatic show
adaptiveBanner?.LoadAd("NativeAdaptiveBanner-Load")

// Destroy AdaptiveBanner
adaptiveBanner?.Destroy()

 

// yPos 값을 지정하여 사용하는 예제입니다.
// Banner Instance Create
var adaptiveBanner: AdaptiveBanner? = null
adaptiveBanner = AdaptiveBanner.Initialize(this.activity, bannerZoneId, yPos, object : EventHandlers() {
   override fun onAdLoaded() {}
   override fun onAdOpening() {}
   override fun onAdClosed() {}
   override fun onAdFailed() {}
   override fun onAdClick() {}
})

// Banner Load
adaptiveBanner?.LoadAd("NativeAdaptiveBanner-Load")

// Banner Show
adaptiveBanner?.Show("NativeAdaptiveBanner-Show")

// Banner Hide
adaptiveBanner?.Hide()

// yPos 값에 따라 위치 변경
adaptiveBanner?.setPosition(yPos)

広告位置データを含めて伝えることができます。 Load 成功時点と Show を通じて表示される時点に設定された文字列を伝えます。

AppOpenタイプの広告

アプリの状態がバックグラウンドからフォアグラウンドに変更されるときに広告を表示するアプリオープン広告です。

// Create AppOpenAd Instance
var appOpenAd: AppOpenAd? = null    
appOpenAd = AppOpenAd.Initialize(this.activity, appOpenAdZoneId, object : EventHandlers() {
    override fun onAdLoaded() {}
    override fun onAdOpening() {}
    override fun onAdClosed() {}
    override fun onAdFailed() {}
})

// Automatically load & show AppOpenAd when the app comes to the foreground
appOpenAd?.LoadAd("NativeAppOpen-Load")

// Destroy AppOpenAd
appOpenAd?.Destroy()

テスト広告

開発中には、テスト広告をクリックしても広告主に費用が請求されないように設定することが重要です。テストモードでない状態で広告を過剰にクリックすると、無効な活動としてアカウントが報告され、広告の受信がブロックされる可能性があります。テスト広告の利用方法はGoogle 開発者サイトで確認できます。

削除

インストール時に設定したファイルを元に戻します。