コンテンツにスキップ

Android

ADOPのためのAdkit: Android

インストール

  1. AdKitファイルの最新バージョンをダウンロードして解凍します。
  2. AdKit.gradleファイルをプロジェクトアプリのパスにコピーします。
  3. プロジェクトアプリのbuild.gradleファイルに以下を追加します:
    apply from: '(path to adkit.gradle file)/adkit.gradle'
    
    dependencies {
            // ...(スキップ)
    
            // AdKitライブラリを追加する
            implementation "com.com2us.android:hive-adkit-adop:1.4.6"
    }
    

設定

ca-app-pub-XXXXX~YYYYY 形式の AdMobId と ADOP APP_KEY を Android プロジェクトで生成された AndroidManifest.xml ファイルに追加します。ADOP APP_KEY は、ADOP Insight にログイン後、アカウント管理 > 私の情報 > 詳細 で見つけることができます。

<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_KEY"
        android:value="6933aab2-7f78-11ed-a117-XXXXXXXXX"/>
    </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 ;
      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 ;
  }

  # 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でのテスト広告キー

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"

AdKitを初期化する

AdKitの初期化を行います。

リセットを実行する際、ヨーロッパおよび英国(EEAおよびUK)地域にいる場合、GDPR同意ポップアップが自動的に表示されます。他の地域では、リセットが即座に実行されます。

  • あなたのゲームがEEAおよびUK地域を対象としている場合は、GDPRメッセージガイドに従ってGDPR同意ポップアップが設定されていることを確認してください。
import com.com2us.hive.adkit.*

// Commercial
AdKit.InitializeWithShowGDPRConsent(this.activity, false, null)

// GDPR EEA test mode
AdKit.InitializeWithShowGDPRConsent(this.activity, true, gdprTestDeviceId)

ユーザーの追加情報は、Analyticsログが発生したときに含めることができ、データはJSONObjectタイプで渡されます。

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

リワードビデオタイプ

リワードビデオタイプの広告は、一定の時間ビデオを視聴したユーザーに報酬を与え、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")

また、adPlacementInfoは、成功した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")

また、adPlacementInfoは、成功したLoadの時点またはShowを通じて広告を表示する際に設定される文字列として渡すことができます。

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

アダプティブバナータイプの広告は、画面上の特定の場所を占めるロールバナーの一種です。バナーの位置は、BannerPositionまたはyPos値で調整できます。 バナーの位置を調整するためにyPosを提供すると、バナーは画面の下部に配置され、その後、指定したyPos値に従って上に移動します。

// the example codes using the BannerPosition 
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()

// This example shows adjusting the banner position with specifiying the yPos value.
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()

// The position is adjusted following the yPos value.
adaptiveBanner?.setPosition(yPos)

また、adPlacementInfoは、成功した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 Developersを参照してください。

アンインストール

インストール中に設定されたファイルを元の状態に戻します。