ข้ามไปที่เนื้อหา

Android

Adkit สำหรับ ADOP: Android

ติดตั้ง

  1. ดาวน์โหลดและแตกไฟล์เวอร์ชันล่าสุดของไฟล์ AdKit.
  2. คัดลอกไฟล์ AdKit.gradle ไปยังเส้นทางของโปรเจกต์แอป
  3. เพิ่มสิ่งต่อไปนี้ลงในไฟล์ build.gradle ของโปรเจกต์แอปของคุณ:
    apply from: '(path to adkit.gradle file)/adkit.gradle'
    
    dependencies {
            // ...(skip)
    
            // เพิ่มไลบรารี AdKit
            implementation "com.com2us.android:hive-adkit-adop:1.4.6"
    }
    

การตั้งค่า

เพิ่ม AdMobId ซึ่งมีรูปแบบเป็น ca-app-pub-XXXXX~YYYYY และ ADOP APP_KEY ลงในไฟล์ AndroidManifest.xml ที่สร้างขึ้นในโปรเจ็กต์ Android 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>

วิธีการใช้งาน

การตั้งค่า Proguard ของ ADOP

หากคุณกำลังใช้ Proguard ให้เพิ่มการตั้งค่า Proguard ของ ADOP ตามด้านล่าง

  -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)

ประเภทโฆษณาวิดีโอรางวัล

โฆษณาประเภทวิดีโอรางวัลจะให้รางวัลแก่ผู้ใช้ที่ดูวิดีโอเป็นระยะเวลาหนึ่ง และสามารถโหลดโฆษณาได้ครั้งละหนึ่งรายการ

// 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

โฆษณาประเภท Interstitial ใช้หน้าจอเต็มที่ปกคลุมส่วนติดต่อของเกม.

// 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 เพื่อใช้โฆษณาทดสอบ.

ถอนการติดตั้ง

คืนไฟล์ที่ตั้งไว้ระหว่างการติดตั้งกลับสู่สถานะเดิม