Android
Adiz Android¶
Adiz Android เป็นโมดูลโฆษณาสำหรับ Android ที่จัดทำโดย Hive เพื่อให้ง่ายต่อการใช้ฟีเจอร์การแสดงโฆษณาที่เสนอโดย AdMob ประเภทของโฆษณาที่จัดทำโดย Adiz Android มีดังนี้:
- โฆษณาแบบระหว่างหน้า
- โฆษณาแบบแบนเนอร์
- โฆษณาแบบเนทีฟ
- โฆษณาแบบให้รางวัล
- โฆษณาแบบระหว่างหน้าที่ให้รางวัล
- โฆษณาเปิดแอป
ในการติดตั้งและใช้ Adiz Android กรุณาอ้างอิงจากคู่มือต่อไปนี้ตามลำดับ
การติดตั้ง¶
เพิ่มรายการไลบรารี Adiz ลงในไฟล์ Gradle ระดับแอป (app/build.gradle) ของโมดูลของคุณ。
เพื่อสนับสนุนฟีเจอร์ Java 8 ให้เพิ่มสิ่งต่อไปนี้ในไฟล์ Gradle ระดับแอปของโมดูลของคุณโดยใช้การตั้งค่า android
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 ช่วยให้คุณแสดงโฆษณาทดสอบได้สองวิธี.
- เปิดโหมดทดสอบ: แสดงโฆษณาทดสอบที่ออกโดย AdMob เท่านั้น.
- ลงทะเบียนอุปกรณ์ทดสอบและแสดงโฆษณา: แสดงโฆษณาจริงเพื่อวัตถุประสงค์ในการทดสอบ ลงทะเบียนอุปกรณ์เพื่อแสดงโฆษณาทดสอบเพื่อให้แน่ใจว่าไม่มีการเข้าชมที่ไม่ถูกต้องเกิดขึ้นระหว่างการทดสอบ.
เปิดโหมดทดสอบ¶
ในระยะพัฒนานี้ ให้เปิดโหมดทดสอบเพื่อให้การคลิกที่โฆษณาทดสอบไม่เกิดค่าใช้จ่ายกับผู้โฆษณา เมื่อเปิดโหมดทดสอบ จะมีเฉพาะโฆษณาทดสอบเท่านั้นที่แสดง ในโหมดทดสอบ คุณไม่จำเป็นต้องป้อนคีย์โฆษณา AdMob ใน Hive Console เพื่อแสดงโฆษณาทดสอบ ปิดโหมดทดสอบสำหรับการจัดจำหน่ายเชิงพาณิชย์.
Note
หากคุณคลิกโฆษณามากเกินไปเมื่อไม่ได้อยู่ในโหมดทดสอบในระหว่างขั้นตอนการพัฒนา อาจถือว่าเป็นการเข้าชมที่ไม่ถูกต้องและบัญชี AdMob ของคุณอาจถูกแจ้งรายงาน ซึ่งจะทำให้คุณไม่สามารถแสดงโฆษณาได้
import com.hive.Adiz
import com.hive.adiz.AdizError
import org.json.JSONException
import org.json.JSONObject
// เปิดโหมดทดสอบ แสดงความคิดเห็นบรรทัดด้านล่างสำหรับการจัดจำหน่ายเชิงพาณิชย์.
Adiz.setTestMode(true)
// เปิดใช้งานการบันทึกสำหรับโมดูล Adiz การบันทึกควรใช้เฉพาะในโหมดทดสอบ เท่านั้น คอมเมนต์บรรทัดด้านล่างสำหรับการจัดจำหน่ายเชิงพาณิชย์。
Adiz.setLogEnable(true)
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);
การตั้งค่าอุปกรณ์ทดสอบสำหรับการแสดงโฆษณา¶
คุณควรลงทะเบียนอุปกรณ์ทดสอบเพื่อแสดงโฆษณาทดสอบในสถานการณ์ต่อไปนี้:
- เมื่อทดสอบว่า AdMob คีย์โฆษณาที่ลงทะเบียนใน Hive Console ทำงานได้อย่างถูกต้อง
- เมื่อคุณต้องการให้แน่ใจว่า GDPR ป๊อปอัพการยินยอมทำงานได้อย่างถูกต้องหลังจากที่คุณเขียน GDPR ข้อความ
- เมื่อคุณต้องการเรียกใช้ Ad Inspector เพื่อวิเคราะห์และแก้ไขข้อผิดพลาดในการร้องขอโฆษณา
การทดสอบด้วยโฆษณาจริงโดยไม่ลงทะเบียนอุปกรณ์ทดสอบอาจถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง ซึ่งอาจทำให้บัญชี AdMob ของคุณถูกบล็อกและไม่สามารถแสดงโฆษณาได้อีกต่อไป เมื่อคุณลงทะเบียนอุปกรณ์ทดสอบ จะมีการแสดง "Test Mode" หรือ "Test Ad" (สำหรับโฆษณาเนทีฟ) ในระหว่างการแสดงโฆษณา อุปกรณ์ Test ควรปิดใช้งานสำหรับการปรับใช้ในผลิตภัณฑ์
Banner, Interstitial, or Rewarded Ad
ในการลงทะเบียนอุปกรณ์ทดสอบ ให้ระบุ ID ของอุปกรณ์ทดสอบของคุณก่อน คุณสามารถค้นหา ID ของอุปกรณ์ทดสอบ (เช่น 33BE2250B43518CCDA7DE426D04EE231
) โดยใช้สองวิธีต่อไปนี้:
- หลังจากเรียก
Adiz.Initialize()
ให้ตรวจสอบบันทึก Logcat:
ใช้ new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") เพื่อกำหนดให้เป็นอุปกรณ์ดีบัก
- หลังจากเรียก
Adiz.Initialize()
โดยไม่คำนึงถึงประเภทโฆษณา ให้เรียกinitialize()
→load()
จากนั้นตรวจสอบบันทึก Logcat:
I/Ads: ใช้ RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231")) เพื่อรับโฆษณาทดสอบบนอุปกรณ์นี้."
หลังจากระบุอุปกรณ์ทดสอบ ID แล้ว ให้เพิ่มบรรทัด Adiz.setTestDevice(DEVICE_ID)
ก่อนที่จะเรียกใช้ Adiz.initialize
ในโค้ดการเริ่มต้น Adiz ที่มีอยู่ เปลี่ยน DEVICE_ID
เป็น 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
}
}
});
}
การใช้ ad inspector¶
Ad Inspector เป็นเครื่องมือ overlay ในแอปที่วิเคราะห์กระบวนการขอและแสดงโฆษณาจริงบนอุปกรณ์ทดสอบแบบเรียลไทม์ มันจะแจ้งให้คุณทราบถึงเวลาที่ใช้ในการโหลดโฆษณา และหากการแสดงผลล้มเหลว จะให้เหตุผลสำหรับความล้มเหลว นอกจากนี้ คุณสามารถระบุเครือข่ายโฆษณาเฉพาะเพื่อตรวจสอบว่าโฆษณาถูกแสดงอย่างถูกต้องหรือไม่ และหากมีปัญหา คุณสามารถดีบักที่ระดับโค้ด ทั้งหมดนี้ดำเนินการด้วย Ad Inspector UI มันรวมอยู่ใน Google Mobile Ads SDK Android 20.0.0 ขึ้นไป และสามารถใช้งานได้โดยการเรียก AdizDeveloperTool.openAdInspector
.
ในการใช้ Ad Inspector จะต้องมีเงื่อนไขสองประการดังต่อไปนี้:
- ตั้งค่าอุปกรณ์ทดสอบด้วย
Adiz.setTestDevice
ตาม การตั้งค่าอุปกรณ์ทดสอบ - ทำการเริ่มต้นให้เสร็จสมบูรณ์ด้วย
Adiz.Initialize
ตาม การเริ่มต้น
การตั้งค่า Adiz AppID¶
ตั้งค่า Adiz AppID ที่คุณลงทะเบียนใน Hive Console AppCenter หากไม่ได้ตั้งค่า จะใช้ชื่อแพ็คเกจ AndroidManifest.xml
การตั้งค่า Hive Console server¶
ตั้งค่า Hive Console server ที่คุณต้องการใช้ ค่าเริ่มต้นคือ REAL
แม้ว่าคุณจะใช้เซิร์ฟเวอร์เชิงพาณิชย์ โฆษณาทดสอบจะแสดงหากเปิดใช้งานโหมดทดสอบ
- Hive ทดสอบ Console server:
ZoneType.TEST
- Hive sandbox Console server:
ZoneType.SANDBOX
- Hive commercial Console server:
ZoneType.REAL
การแสดงป๊อปอัพการยินยอม GDPR (ยุโรปและสหราชอาณาจักร)¶
หากเกมของคุณมุ่งเป้าไปที่ยุโรปและสหราชอาณาจักร (EEA & สหราชอาณาจักร), จะต้องแสดงGDPR (กฎทั่วไปว่าด้วยการคุ้มครองข้อมูล) ป๊อปอัปการยินยอม ป๊อปอัปการยินยอมGDPR จะถูกแสดงเฉพาะเมื่อที่อยู่IP ของอุปกรณ์ของผู้ใช้มาจากยุโรปหรือสหราชอาณาจักร (EEA & สหราชอาณาจักร). Adiz รองรับGoogle's UMP (User Messaging Platform) สำหรับการแสดงป๊อปอัปการยินยอมGDPR
หลังจากสร้าง ข้อความ GDPR ใน คอนโซล AdMob ข้อความป๊อปอัป GDPR จะถูกแสดงให้ผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักรเมื่อคุณ เริ่มต้น Adiz.
Warning
แม้ว่าคุณจะมุ่งเป้าไปยังภูมิภาคนอกยุโรปและสหราชอาณาจักร คุณต้องสร้างข้อความ GDPR ในคอนโซล AdMob เพื่อให้การเริ่มต้นของ Adiz ทำงานได้อย่างถูกต้อง.
การสร้างข้อความ GDPR¶
เข้าถึง Google AdMob console เพื่อสร้างข้อความ GDPR ก่อนที่จะสร้างข้อความ GDPR ให้ดูที่ คู่มือการสร้างข้อความ GDPR
หลังจากสร้างข้อความ GDPR แล้ว ป๊อปอัปการยินยอม GDPR จะถูกแสดงโดยอัตโนมัติในระหว่างการ เริ่มต้นของ Adiz.
การดำเนินการตัวเลือกสำหรับการยินยอม/ถอนตัวตาม GDPR¶
ป๊อปอัพการยินยอมของ GDPR ควรอนุญาตให้ผู้ใช้ปรับเปลี่ยนการยินยอมของตนได้ตลอดเวลา ตัวอย่างเช่น ผู้ใช้ที่เริ่มต้นไม่ยินยอมต่อ GDPR แต่ต้องการรับโฆษณาที่ปรับให้เหมาะสม อาจต้องการยินยอม หรือในทางกลับกัน เพื่อรองรับสถานการณ์ดังกล่าว นักพัฒนาต้องดำเนินการฟังก์ชันการทำงานสำหรับผู้ใช้ในการยินยอมอีกครั้งหรือถอนการยินยอมก่อนหน้านี้ สำหรับการดำเนินการฟังก์ชันการยินยอม/การถอนการยินยอมของ GDPR ให้ทำตามขั้นตอนเหล่านี้:
- สร้าง UI ปุ่มในแอปของคุณเพื่อโหลดหน้าต่างป๊อปอัพการยินยอม GDPR ใหม่
- เมื่อทำการ เริ่มต้นการใช้งาน Adiz ให้เรียกใช้
isPrivacyOptionsRequired()
เพื่อแสดง UI ปุ่มด้านบนสำหรับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร และไม่แสดงในกรณีอื่น หากผู้ใช้จากยุโรปและสหราชอาณาจักรกดปุ่ม ให้เรียกใช้showPrivacyOptionsForm
เพื่อโหลดหน้าต่างป๊อปอัพการยินยอม GDPR ใหม่ ซึ่งอนุญาตให้ผู้ใช้ปรับเปลี่ยนการยินยอมสำหรับรายละเอียด GDPR ได้ตลอดเวลาผ่านปุ่ม "จัดการตัวเลือก" หรือปุ่มที่คล้ายกันภายในแอป วิธีการshowPrivacyOptionsForm
ที่ให้ไว้ด้านล่างเป็นเพียงเพื่อการอ ilustration และสามารถนำไปใช้ในรูปแบบใดก็ได้ตามที่นักพัฒนาต้องการ
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) {
// เรียกใช้ป๊อปอัพความยินยอม GDPR
if(AdizConsentManager.isPrivacyOptionsRequired()) {
AdizConsentManager.showPrivacyOptionsForm(activity, new AdizConsentManager.ConsentListener() {
@Override
public void onResult(@NonNull AdizError error) {
// ไม่จำเป็นต้องจัดการข้อผิดพลาดใดๆ
}
});
}
}
การตั้งค่า tag สำหรับ under อายุ consent¶
การใช้ Tag สำหรับ Under อายุ Consent (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 ล่วงหน้า
- ค้นหา ID อุปกรณ์ในผลลัพธ์ Logcat log. นี่คือตัวอย่างข้อความ:
ใช้ ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") เพื่อตั้งค่านี้เป็นอุปกรณ์ดีบัก.
รับ ID อุปกรณ์ (ตัวอย่าง:33BE2250B43518CCDA7DE426D04EE231
). - คัดลอก ID อุปกรณ์.
- เพิ่ม
Adiz.setTestDevice(DEVICE_ID)
ก่อนที่จะเรียกใช้Adiz.initialize
ในโค้ดเริ่มต้น Adiz ที่มีอยู่. - สร้างข้อความยินยอม 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?) {
// ... 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
}
}
});
}
การตั้งค่า tag สำหรับการรักษาที่มุ่งเป้าไปยังเด็ก¶
ตามพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคลออนไลน์ของเด็ก (COPPA) นักพัฒนาแอปสามารถกำหนดได้ว่า Google ควรจัดการเนื้อหาเป็นการมุ่งเป้าไปยังเด็กในระหว่างการขอโฆษณาโดยการตั้งค่า tagForChildDirectedTreatment (TFCD) หากคุณต้องการให้เนื้อหาถูกจัดการเป็นการมุ่งเป้าไปยังเด็ก คุณต้องเรียกใช้ AdizConsentManager.setUserPrivacySettings
ก่อนที่จะดำเนินการ Adiz.initialize
เมื่อใช้ Adiz กับ SDK Hive การตั้งค่าสำหรับการรักษาที่มุ่งเป้าไปยังเด็กจะถูกนำไปใช้โดยอัตโนมัติ ดังนั้นจึงไม่ต้องตั้งค่าเพิ่มเติม
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 mediation¶
ดำเนินการรวมแหล่งโฆษณาในคอนโซล AdMob ตามตารางด้านล่าง
AppLovin | Pangle | Unity Ads | Meta | |
---|---|---|---|---|
ขั้นตอนที่ 1 | ตั้งค่า AppLovin configuration | ตั้งค่า Pangle configuration | ตั้งค่า Unity Ads configuration | ตั้งค่า Meta configuration |
ขั้นตอนที่ 2 | เพิ่มแหล่งโฆษณา AppLovin ไปยัง AdMob | เพิ่มแหล่งโฆษณา Pangle ไปยัง AdMob | เพิ่มแหล่งโฆษณา Unity Ads ไปยัง AdMob | เพิ่มแหล่งโฆษณา Meta ไปยัง AdMob |
ขั้นตอนที่ 3 | เพิ่ม Adiz adapter |
เพิ่ม adiz adapter¶
เพิ่มการพึ่งพาของไลบรารีไปยัง 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' // เพิ่มสำหรับการรวม AppLovin
implementation 'com.com2us.android.adiz:hive-adiz-adapter-pangle:2.0.1' // เพิ่มสำหรับการรวม Pangle
implementation 'com.com2us.android.adiz:hive-adiz-adapter-unityads:2.0.1' // เพิ่มสำหรับการรวม Unity Ads
implementation 'com.com2us.android.adiz:hive-adiz-adapter-meta:2.0.1' // เพิ่มสำหรับการรวม Meta
}
เมื่อรวมเข้ากับ Pangle ให้เพิ่มการตั้งค่าต่อไปนี้ หากคุณกำลังใช้ Gradle 7.0 ขึ้นไป ให้เพิ่มการตั้งค่า repository
ในส่วน dependencyResolutionManagement
ของไฟล์ระดับโปรเจกต์ settings.gradle.
// Settings for Gradle 7.0 or above in settings.gradle
dependencyResolutionManagement {
repositories {
maven { url 'https://artifact.bytedance.com/repository/pangle/' } // Add for Pangle integration
}
}
หากคุณกำลังใช้ Gradle เวอร์ชันต่ำกว่า 7.0 ให้เพิ่มการตั้งค่า repository
ในส่วน allprojects
ของไฟล์ระดับโปรเจกต์ build.gradle.
// Settings for Gradle version less than 7.0 in build.gradle
allprojects {
repositories {
maven {
url 'https://artifact.bytedance.com/repository/pangle' // Add for Pangle integration
}
}
}
เพื่อตรวจสอบว่า Adiz การกำหนดค่าตัวเชื่อมต่อได้ถูกนำไปใช้อย่างถูกต้องหรือไม่ ให้เรียกใช้แอปของคุณและตรวจสอบรายการการกำหนดค่าบนหน้าจอ Ad Inspector.
กำลังเริ่มต้น adiz¶
การเริ่มต้น Adiz เป็นขั้นตอนที่สำคัญก่อนที่จะเปิดเผยโฆษณาประเภทใดก็ตาม เมื่อคุณเริ่มต้น Adiz คุณจะได้รับคีย์โฆษณาที่จำเป็นในการแสดงโฆษณา หากเปิดโหมดทดสอบ คุณจะได้รับคีย์ทดสอบ หากคุณกำลังใช้ SDK Hive ให้ดำเนินการเริ่มต้น Adiz หลังจากเรียกใช้ AuthV4.setup
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>()
ลอง {
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>();
ลอง {
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 ที่ได้รับเป็น callback จะรวมรายการของคีย์โฆษณา รูปแบบของรายการคีย์โฆษณามีดังนี้:
{
"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
}
]
}
หากคุณเริ่มต้นในโหมดทดสอบ คุณจะได้รับรายการคีย์โฆษณาทดสอบแม้ว่าคุณจะยังไม่ได้ลงทะเบียนคีย์โฆษณา AdMob ใน Hive Console หากคุณเริ่มต้นในโหมดเชิงพาณิชย์ คุณจะได้รับรายการคีย์โฆษณา AdMob ที่ลงทะเบียนใน Hive Console
รูปแบบโฆษณาทุกแบบมีโฆษณาหนึ่งรายการเป็นโฆษณาเริ่มต้น (โฆษณาที่มี "is_default":true
) โฆษณาแรกที่ลงทะเบียนจะกลายเป็นโฆษณาเริ่มต้นสำหรับรูปแบบโฆษณานั้น คุณไม่จำเป็นต้องป้อนคีย์โฆษณา (hiveAdKey
) เมื่อสร้างอินสแตนซ์โฆษณา (initialize()
) สำหรับโฆษณาเริ่มต้น หากต้องการเปลี่ยนโฆษณาเริ่มต้น คุณต้องลบโฆษณาเริ่มต้นที่มีอยู่ใน Hive Console และลงทะเบียนโฆษณาใหม่อีกครั้ง
การตั้งค่าตัวฟังการเรียกกลับโฆษณา¶
คุณสามารถรับการเรียกกลับตามการเปลี่ยนแปลงสถานะของโฆษณาโดยการใช้ 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() {
// Called when the ad is loaded.
// If the ad load is successful, you need to call the ad instance's .show() at the desired point to display the ad.
}
override fun onFail(loadError: AdizError) {
// Called if the ad load failed or the ad display failed for some other reason.
}
override fun onShow() {
// Called when the ad is displayed.
}
override fun onClick() {
// Called when the ad is clicked.
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
// Called when revenue is generated for the ad.
var revenue = adRevenueData.revenue // Revenue at the time of ad display
var currency = adRevenueData.currency // Currency code for the revenue at the time of ad display
}
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() {
// Called when the ad is loaded.
// If the ad load is successful, you need to call the ad instance's .show() at the desired point to display the ad.
}
@Override
public void onFail(@NonNull AdizError loadError) {
// หากการโหลดโฆษณาล้มเหลวหรือการแสดงโฆษณาล้มเหลวด้วยเหตุผลอื่น
}
@Override
public void onShow() {
// Called when the ad is displayed.
}
@Override
public void onClick() {
// Called when the ad is clicked.
}
@Override
public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
double revenue = adRevenueData.getRevenue(); // Revenue at the time of ad display
String currency = adRevenueData.getCurrency(); // Currency code for the revenue at the time of ad display
}
@Override
public void onClose() {
// ถูกเรียกเมื่อโฆษณาถูกปิด
// แบนเนอร์และโฆษณาเนทีฟไม่มีปุ่มปิดและดังนั้นจึงไม่มีการเรียกกลับ onClose
}
@Override
public void onRewarded(@NonNull RewardItem rewardItem) {
// Called when a reward occurs for watching the ad in rewarded, rewarded interstitial ads.
String rewardType = rewardItem.getItemType(); // Reward item type
int rewardAmount = rewardItem.getItemAmount(); // Reward item quantity
}
};
รหัสข้อผิดพลาด¶
รหัสข้อผิดพลาดและข้อความข้อผิดพลาดสำหรับ 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 | รหัสหน่วยไม่ถูกต้อง |
-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 // revenue when ad is exposed
var currency = adRevenueData.currency // currency code for revenue when ad is exposed
}
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() {
// Remove the interstitial ad.
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(); // revenue when ad is exposed
String currency = adRevenueData.getCurrency(); // currency code for revenue when ad is exposed
}
};
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.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 // revenue when ad is exposed
var currency = adRevenueData.currency // currency code for revenue when ad is exposed
}
}
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(); // revenue when ad is exposed
String currency = adRevenueData.getCurrency(); // currency code for revenue when ad is exposed
}
};
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();
}
}
โฆษณาพื้นเมือง (Native)¶
โฆษณาเนทีฟจะแสดงขนาดเฉพาะของเทมเพลตเนทีฟ โฆษณาเนทีฟได้รับการปรับให้เหมาะสมสำหรับหน้าจอแนวตั้ง ดังนั้นจึงแนะนำให้ใช้ในเกมแนวตั้ง (เกมหน้าจอแนวตั้ง) โฆษณาเนทีฟจะไม่ได้รับการเรียกคืน onClose()
ดังนั้นคุณต้องเรียก destroy()
จากตำแหน่งอื่นเพื่อยุติการโฆษณา
ขณะนี้ เทมเพลตสนับสนุนขนาด small
หรือ medium
เทมเพลต | การจัดตำแหน่ง | ขนาดแบนเนอร์ คงที่ |
---|---|---|
ขนาดเล็ก | ด้านบน / ด้านล่าง | BannerSize.NORMAL |
ขนาดกลาง | ตรงกลาง (คงที่) | BannerSize.MEDIUM |
สำหรับเทมเพลต small
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() {
// Remove the native ad.
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();
}
}
โฆษณาที่ได้รับรางวัล (Rewarded)¶
นี่คือโฆษณาที่มีรางวัลซึ่งผู้ใช้จะได้รับรางวัลเมื่อดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อมีการมอบรางวัลสำเร็จ ข้อมูลรายการรางวัลจะถูกส่งผ่านการเรียกกลับ 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() {
// Remove the rewarded ad.
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(); // Revenue when ad is shown
String currency = adRevenueData.getCurrency(); // Currency code for revenue when ad is shown
}
@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() {
// Remove the rewarded ad.
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 // Revenue generated when ad is shown
var currency = adRevenueData.currency // Currency code for revenue when ad is shown
}
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() {
// Removes the rewarded interstitial ad.
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(); // Revenue generated when ad is shown
String currency = adRevenueData.getCurrency(); // Currency code for when ad is shown
}
@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) ไม่ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Adiz.)
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();
}
}
นี่คือเนื้อหาที่แปลแล้ว:
โฆษณาเปิดแอป (App open)¶
โฆษณาเปิดแอปจะแสดงโฆษณาที่โหลดล่วงหน้า (load()
) เมื่อสถานะแอปเปลี่ยนจากพื้นหลังเป็นพื้นหน้า หากเรียกใช้ show()
3 ชั่วโมงหลังจากที่โฆษณาถูกโหลด โฆษณาจะถูกโหลดใหม่โดยอัตโนมัติก่อนที่จะถูกแสดง เมื่อโฆษณาแสดงอย่างน้อยหนึ่งครั้ง จะไม่ถูกโหลดใหม่โดยอัตโนมัติ
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() // Error code
var message = loadError.getMessage() // Error message
}
override fun onShow() {
//
}
override fun onClick() {
//
}
override fun onPaidEvent(adRevenueData: AdRevenueData) {
var revenue = adRevenueData.revenue // Revenue when ad is shown
var currency = adRevenueData.currency // Currency code for revenue when ad is shown
}
override fun onClose() {
// requestDestroyAd()
}
}
if(hiveAdKey == null) {
// สร้างตัวอย่างโฆษณาเปิดแอป
appOpen = AdizAppOpen.initialize(activity, adizListener)
} else {
// คุณสามารถสร้างตัวอย่างโฆษณาเปิดแอปโดยการป้อน hiveAdKey
appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// โหลดโฆษณาเปิดแอป หลังจากโหลดเสร็จแล้ว โฆษณาจะถูกแสดงโดยอัตโนมัติเมื่อแอปเคลื่อนจากพื้นหลังไปยังพื้นหน้า
// เมื่อโฆษณาแสดงอย่างน้อยหนึ่งครั้ง จะไม่แสดงอีก ดังนั้นหากคุณต้องการแสดงโฆษณาต่อไป คุณต้องเรียก appOpen.load() อีกครั้งใน callback onClose()
appOpen?.load()
}
fun requestDestroyAd() {
// ลบโฆษณาที่เปิดแอป
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(); // Revenue when ad is shown
String currency = adRevenueData.getCurrency(); // Currency code for revenue when ad is shown
}
@Override
public void onClose() {
// requestDestroyAd();
}
};
if(TextUtils.isEmpty(hiveAdKey)) {
// สร้างอินสแตนซ์โฆษณาเปิดแอป (หากไม่ป้อนคีย์โฆษณา (HiveAdKey) อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Adiz.)
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();
}
}