Android
Adkit สำหรับ ADOP: Android¶
ติดตั้ง¶
- ดาวน์โหลดและแตกไฟล์เวอร์ชันล่าสุดของไฟล์ AdKit.
- คัดลอกไฟล์ AdKit.gradle ไปยังเส้นทางของโปรเจกต์แอป
- เพิ่มสิ่งต่อไปนี้ลงในไฟล์ build.gradle ของโปรเจกต์แอปของคุณ:
การตั้งค่า¶
เพิ่ม 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
ประเภทโฆษณาวิดีโอรางวัล¶
โฆษณาประเภทวิดีโอรางวัลจะให้รางวัลแก่ผู้ใช้ที่ดูวิดีโอเป็นระยะเวลาหนึ่ง และสามารถโหลดโฆษณาได้ครั้งละหนึ่งรายการ
// 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 เพื่อใช้โฆษณาทดสอบ.
ถอนการติดตั้ง¶
คืนไฟล์ที่ตั้งไว้ระหว่างการติดตั้งกลับสู่สถานะเดิม