Android
Adiz Android¶
Adiz Android เป็นโมดูลโฆษณาสำหรับ Android ที่จัดทำโดย Hive เพื่อทำให้การใช้ฟีเจอร์การแสดงโฆษณาที่เสนอโดย AdMob ง่ายขึ้น ประเภทของโฆษณาที่จัดทำโดย Adiz Android มีดังนี้
- โฆษณาแบบเต็มหน้าจอ
- โฆษณาแบบแบนเนอร์
- โฆษณาแบบเนทีฟ
- โฆษณาแบบให้รางวัล
- โฆษณาแบบให้รางวัลเต็มหน้าจอ
- โฆษณาแบบเปิดแอป
ในการติดตั้งและใช้งาน Adiz Android โปรดดูคู่มือด้านล่างตามลำดับ
การติดตั้ง¶
เพิ่มรายการไลบรารี Adiz ลงในไฟล์ Gradle ระดับแอป (app/build.gradle).
เพื่อสนับสนุนฟีเจอร์ Java 8 ให้เพิ่มสิ่งต่อไปนี้ภายใต้การตั้งค่า android
ในไฟล์ Gradle ระดับแอปของโมดูล
android {
// ...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
AndroidManifest.xml ไฟล์, ป้อน AdMobId
(ในรูปแบบ ca-app-pub-XXXXX~YYYYY).
<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>
เมื่อใช้ Proguard กฎ ProGuard สำหรับโมดูล Adiz จะถูกรวมอยู่ด้วย ดังนั้นจึงไม่จำเป็นต้องเพิ่มกฎ ProGuard ลงในโปรเจกต์
ในการแสดงโฆษณาวิดีโอ คุณต้องเปิดใช้งานการเร่งความเร็วของฮาร์ดแวร์ เพิ่มการตั้งค่าสำหรับการเร่งความเร็วของฮาร์ดแวร์ในไฟล์ AndroidManifest.xml การเพิ่มลงในแท็ก application
จะเปิดใช้งานการเร่งความเร็วของฮาร์ดแวร์สำหรับทั้งแอปพลิเคชัน การเพิ่มลงในแท็ก activity
จะเปิดใช้งานการเร่งความเร็วของฮาร์ดแวร์เฉพาะสำหรับ Activity
ที่คุณต้องการแสดงโฆษณา
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
</application>
การตั้งค่าโฆษณาทดสอบ¶
Adiz สามารถแสดงโฆษณาทดสอบได้สองวิธี.
- เปิดโหมดทดสอบ: จะมีการแสดงโฆษณาทดสอบที่ออกโดย AdMob เท่านั้น
- แสดงโฆษณาหลังจากลงทะเบียนอุปกรณ์ทดสอบ: แสดงโฆษณาจริงสำหรับการทดสอบ โดยมั่นใจว่าไม่มีการเกิดการเข้าชมที่ไม่ถูกต้อง และดำเนินการโดยการลงทะเบียนอุปกรณ์ที่จะมีการแสดงโฆษณาทดสอบ
เปิดโหมดทดสอบ¶
ในระยะการพัฒนา เปิดโหมดทดสอบเพื่อให้การคลิกโฆษณาทดสอบไม่คิดค่าใช้จ่ายกับผู้โฆษณา เมื่อเปิดโหมดทดสอบ จะมีเพียงโฆษณาทดสอบเท่านั้นที่จะแสดง ในโหมดทดสอบ โฆษณาทดสอบจะแสดงแม้ว่าจะไม่ได้ป้อนคีย์โฆษณา AdMob ในคอนโซล ปิดโหมดทดสอบในระหว่างการจัดจำหน่ายเชิงพาณิชย์.
มีสองวิธีในการเปิดใช้งานโหมดทดสอบ.
- หลังจากลงทะเบียนอุปกรณ์ทดสอบในคอนโซล Hive ให้ตั้งค่าอุปกรณ์ด้วย โฆษณาเดโม (แนะนำ):
โปรดดูที่ส่วน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล - ใช้ คลาส Adiz และเมธอด
setTestMode()
:
ดูที่ โค้ดตัวอย่างด้านล่าง.
Note
เมื่อไม่ได้อยู่ในโหมดทดสอบในระหว่างขั้นตอนการพัฒนา การคลิกที่โฆษณามากเกินไปอาจถือเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AdMob ของคุณอาจถูกรายงาน ซึ่งจะทำให้ไม่สามารถแสดงโฆษณาได้
การใช้เมธอด Adiz.setTestMode()¶
import com.hive.adiz.Adiz
import com.hive.adiz.AdizError
import org.json.JSONException
import org.json.JSONObject
// เปิดโหมดทดสอบ แสดงความคิดเห็นบรรทัดด้านล่างสำหรับการจัดจำหน่ายเชิงพาณิชย์.
Adiz.setTestMode(true)
// เปิดการบันทึกสำหรับโมดูล Hive Adiz การบันทึกควรใช้เฉพาะในโหมดทดสอบ เท่านั้น คอมเมนต์บรรทัดด้านล่างสำหรับการจัดจำหน่ายเชิงพาณิชย์
Adiz.setLogEnable(true)
import com.hive.adiz.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);
// เปิดการบันทึกสำหรับโมดูล Hive Adiz การบันทึกควรใช้เฉพาะในโหมดทดสอบ ให้คอมเมนต์บรรทัดด้านล่างสำหรับการจัดจำหน่ายเชิงพาณิชย์
Adiz.setLogEnable(true);
การแสดงโฆษณาบนอุปกรณ์ทดสอบ¶
ในสถานการณ์ต่อไปนี้ คุณต้องลงทะเบียนอุปกรณ์ทดสอบเพื่อแสดงโฆษณาทดสอบ
- เมื่อทดสอบว่า AdMob ad key ที่ลงทะเบียนในคอนโซลทำงานได้อย่างถูกต้อง
- เมื่อเขียนข้อความ GDPR และตรวจสอบว่า GDPR consent popup ทำงานได้อย่างถูกต้อง
- เมื่อรัน ad inspector เพื่อวิเคราะห์และแก้ไขข้อผิดพลาดในการขอโฆษณา
<
มีสองวิธีในการแสดงโฆษณาบนอุปกรณ์ทดสอบ.
<
-
หลังจากลงทะเบียนอุปกรณ์ทดสอบในคอนโซล Hive ให้ตั้งค่าเป็น ใช้หมายเลข ID โฆษณา (แนะนำ):
กรุณาอ้างอิงไปที่ส่วน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล. -
ใช้เมธอด
setTestDevice()
ของคลาส Adiz:
โปรดดูที่ โค้ดตัวอย่าง ด้านล่าง.
Note
หากคุณทำการทดสอบที่แสดงโฆษณาจริงโดยไม่ลงทะเบียนอุปกรณ์ทดสอบ จะถือว่าการเข้าชมไม่ถูกต้อง และบัญชี AdMob ของคุณอาจถูกบล็อก ทำให้ไม่สามารถแสดงโฆษณาได้อีกต่อไป เมื่อคุณลงทะเบียนอุปกรณ์ทดสอบ โหมดทดสอบหรือโฆษณาทดสอบ (โฆษณาแบบเนทีฟ) จะถูกแสดงระหว่างการแสดงโฆษณา คุณต้องปิดการใช้งานอุปกรณ์ทดสอบในระหว่างการจัดจำหน่ายเชิงพาณิชย์.
แบนเนอร์, โฆษณาแบบแทรก, หรือโฆษณาแบบให้รางวัล
การใช้วิธี Adiz.setTestDevice()¶
ในการลงทะเบียนอุปกรณ์ทดสอบ คุณต้องตรวจสอบ ID ของอุปกรณ์ทดสอบก่อน ID ของอุปกรณ์ทดสอบ (ตัวอย่าง: 33BE2250B43518CCDA7DE426D04EE231
) สามารถตรวจสอบได้สองวิธีด้านล่าง
-
ตรวจสอบบันทึก Logcat หลังจากเรียกใช้
Adiz.Initialize()
: -
หลังจากเรียกใช้
Adiz.Initialize()
ไม่ว่าจะเป็นประเภทโฆษณาใด ให้เรียกใช้initialize()
→load()
และตรวจสอบบันทึก Logcat:
หลังจากตรวจสอบ ID อุปกรณ์ทดสอบแล้ว ให้เพิ่มบรรทัด Adiz.setTestDevice(DEVICE_ID)
ก่อนที่จะดำเนินการ Adiz.initialize
ในโค้ดการเริ่มต้น Adiz ที่มีอยู่ ป้อน ID อุปกรณ์ทดสอบที่คัดลอกไว้ใน DEVICE_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?) {
// ... omitted
}
})
}
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()) {
// ... omitted
}
}
});
}
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()) {
// ... omitted
}
}
});
}
การใช้งาน Ad Inspector¶
Ad Inspector เป็นเครื่องมือที่แสดงผลในแอปพลิเคชันซึ่งวิเคราะห์กระบวนการขอและแสดงโฆษณาจริงบนอุปกรณ์ทดสอบแบบเรียลไทม์ มันจะแจ้งให้คุณทราบถึงเวลาที่ใช้ในการโหลดโฆษณา และหากการแสดงผลล้มเหลว จะให้เหตุผลสำหรับความล้มเหลว คุณยังสามารถระบุเครือข่ายโฆษณาเฉพาะเพื่อตรวจสอบว่าโฆษณาแสดงผลได้อย่างถูกต้องหรือไม่ และหากมีปัญหา คุณสามารถดีบักที่ระดับโค้ด ทั้งหมดนี้ทำควบคู่ไปกับ UI ของ Ad Inspector มันรวมอยู่ใน Google Mobile Ads SDK เวอร์ชัน 20.0.0 ขึ้นไป และสามารถใช้งานได้โดยการเรียก AdizDeveloperTool.openAdInspector
.
ในการใช้ตัวตรวจสอบโฆษณา, การแสดงโฆษณาบนอุปกรณ์ทดสอบ จะต้องถูกตั้งค่า.
การกำหนดค่า Adiz AppID¶
ตั้งค่า Adiz AppID ที่ลงทะเบียนในคอนโซล AppCenter หากไม่ตั้งค่า ชื่อแพ็คเกจ AndroidManifest.xml จะถูกใช้
Hive การตั้งค่าเซิร์ฟเวอร์คอนโซล¶
ตั้งค่าเซิร์ฟเวอร์คอนโซล Hive ที่จะใช้ ค่าเริ่มต้นคือ REAL
แม้ว่าคุณจะใช้เซิร์ฟเวอร์การผลิต การเปิดใช้งานโหมดทดสอบจะทำให้แสดงโฆษณาทดสอบเท่านั้น
- Hive เซิร์ฟเวอร์คอนโซลทดสอบ:
ZoneType.TEST
- Hive เซิร์ฟเวอร์คอนโซลแซนด์บ็อกซ์:
ZoneType.SANDBOX
- Hive เซิร์ฟเวอร์คอนโซลการผลิต:
ZoneType.REAL
การแสดงป๊อปอัปการยินยอม GDPR (ยุโรป, สหราชอาณาจักร)¶
หากเกมมีเป้าหมายที่ยุโรปและสหราชอาณาจักร (EEA & UK) จะต้องแสดงป๊อปอัพการยินยอม GDPR (กฎทั่วไปว่าด้วยการคุ้มครองข้อมูล) ป๊อปอัพการยินยอม GDPR จะถูกแสดงเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์ของผู้ใช้มาจากยุโรปและสหราชอาณาจักร (EEA & UK) Adiz รองรับการแสดงป๊อปอัพการยินยอม GDPR ผ่าน Google UMP (User Messaging Platform) หลังจากสร้างข้อความ GDPR ในคอนโซล AdMob ให้เริ่มต้น Adizเพื่อแสดงป๊อปอัพ GDPR ให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร
Warning
หากคุณกำลังมุ่งเป้าไปที่ภูมิภาคนอกยุโรปและสหราชอาณาจักร เช่น หากคุณวางแผนที่จะให้บริการเฉพาะในประเทศ คุณสามารถข้ามขั้นตอน การแสดงป๊อปอัปการยินยอม GDPR (ยุโรป, สหราชอาณาจักร) และดำเนินการเริ่มต้นด้วยวิธี Adiz.initializeForNonGDPR()
ได้
หากคุณใช้วิธี Adiz.initialize()
สำหรับการเริ่มต้น คุณต้องเขียนข้อความ GDPR ในคอนโซล AdMob เพื่อให้การเริ่มต้น Adiz ดำเนินการตามปกติ
การสร้างข้อความ GDPR¶
1) เข้าถึงแดชบอร์ด Google AdMob และสร้างข้อความ GDPR ของคุณ ก่อนที่จะสร้างข้อความ GDPR โปรดดูที่ คู่มือการสร้างข้อความ GDPR.
เมื่อสร้างข้อความ GDPR คุณต้องเพิ่มการไกล่เกลี่ยที่คุณต้องการใช้ลงในรายชื่อพันธมิตรด้านการโฆษณา นี่คือวิธีการเพิ่มการไกล่เกลี่ย.
1) ไปที่แท็บ ความเป็นส่วนตัว & การส่งข้อความ > กฎระเบียบของยุโรป > การตั้งค่า บนแดชบอร์ด Google AdMob จากนั้นคลิกที่ไอคอนแก้ไขสำหรับ 'การตรวจสอบพันธมิตรโฆษณา > พันธมิตรโฆษณาที่กำหนดเอง 2) ตรวจสอบพันธมิตรการจัดการทั้งหมดที่ได้รับการรับรองโดย Google ภายใต้ GDPR เพื่อเพิ่มในกลุ่ม หรือเลือกเฉพาะพันธมิตรการจัดการที่ต้องการและคลิก เพิ่ม.
หากคุณได้เขียนข้อความ GDPR แล้ว ป๊อปอัปการยินยอม GDPR จะปรากฏขึ้นโดยอัตโนมัติเมื่อคุณ เริ่มต้น Adiz.
การดำเนินการฟังก์ชันการยินยอม/ถอนการยินยอมของ GDPR¶
รายการในป๊อปอัปการยินยอมของ GDPR ต้องให้ผู้ใช้มีความสามารถในการแก้ไขสถานะการยินยอมของตนได้ตลอดเวลา ตัวอย่างเช่น ผู้ใช้อาจไม่ยินยอมต่อ GDPR ในตอนแรก แต่ต่อมาต้องการยินยอมอีกครั้งเพื่อดูโฆษณาที่ปรับให้เหมาะสม หรือในทางกลับกัน ผู้ใช้อาจยินยอมต่อ GDPR ในตอนแรก แต่ต่อมาต้องการถอนการยินยอมเพราะไม่ต้องการให้ข้อมูลส่วนบุคคลอีกต่อไป เพื่อจัดการกับสถานการณ์เหล่านี้ นักพัฒนาแอปต้องดำเนินการฟังก์ชันที่อนุญาตให้ผู้ใช้ยินยอมอีกครั้งต่อแต่ละรายการหรือถอนการยินยอมที่มีอยู่ เพื่อดำเนินการฟังก์ชันการยินยอม/ถอนการยินยอมของ GDPR ให้ทำตามขั้นตอนเหล่านี้
- สร้าง UI ปุ่มในแอปที่สามารถเปิดหน้าต่างขอความยินยอม GDPR ใหม่ได้
- เมื่อทำการติดตั้ง การเริ่มต้น Adiz ให้เรียก
isPrivacyOptionsRequired()
เพื่อแสดง UI ปุ่มข้างต้นให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร และไม่แสดงในกรณีอื่น หากผู้ใช้ที่เข้าถึงจากยุโรปหรือสหราชอาณาจักรคลิกที่ปุ่ม ให้เรียกshowPrivacyOptionsForm
เพื่อเปิดหน้าต่างขอความยินยอม GDPR ใหม่ นี่จะช่วยให้ผู้ใช้สามารถปรับเปลี่ยนความยินยอมสำหรับรายละเอียด GDPR ได้ตลอดเวลาผ่านการกดปุ่มเช่น "จัดการตัวเลือก" ในแอปshowPrivacyOptionsForm
ด้านล่างเป็นวิธีการที่ถูกนำไปใช้โดยพลการเพื่อวัตถุประสงค์ในการยกตัวอย่าง และนักพัฒนาสามารถเปลี่ยนแปลงการใช้งานได้ตามต้องการ
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) {
// ... ถูกละเว้น
// ตัดสินใจว่าจะมีการแสดงปุ่มในแอปเพื่อเปิดหน้าต่างการยินยอม 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.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()) {
// ... omitted
// Decide whether to display a button in the app to reopen the GDPR consent popup
boolean isPrivacyOptionsRequired = AdizConsentManager.isPrivacyOptionsRequired();
if(isPrivacyOptionsRequired) {
// Display the button in the app. (When the button is clicked, showPrivacyOptionsForm() is called to display the GDPR consent popup)
showGDPRConsentPopupButton();
} else {
// Do not display the button in the app.
// Other processing as desired by the app.
}
}
}
});
}
public void showPrivacyOptionsForm(Activity activity) {
// เรียกแบบฟอร์มตัวเลือกความยินยอม GDPR
if(AdizConsentManager.isPrivacyOptionsRequired()) {
AdizConsentManager.showPrivacyOptionsForm(activity, new AdizConsentManager.ConsentListener() {
@Override
public void onResult(@NonNull AdizError error) {
// ไม่จำเป็นต้องจัดการกับข้อผิดพลาดใด ๆ
}
});
}
}
การตั้งแท็กสำหรับผู้ใช้ที่อยู่ภายใต้ช่วงอายุที่ต้องได้รับความยินยอมตาม GDPR (TFUA)¶
คุณสามารถใช้ Tag For Under the Age of Consent (TFUA) เพื่อจัดการผู้ใช้ที่อาศัยอยู่ในเขตเศรษฐกิจยุโรป (EEA), สหราชอาณาจักร, และสวิตเซอร์แลนด์ในฐานะที่เป็นหัวข้อการประมวลผลข้อมูลที่จำกัดเมื่อทำการขอการโฆษณา สำหรับแอปที่มุ่งเป้าไปที่เด็ก คุณสามารถตั้งค่าผู้ใช้ให้เป็นผู้ที่อายุต่ำกว่าขั้นตอนการยินยอมโดยใช้ AdizConsentManager.setUserPrivacySettings
ในขณะที่มีความแตกต่างบางประการระหว่างประเทศในยุโรป GDPR กำหนดอายุที่ต้องการความยินยอมจากผู้ปกครองว่าอยู่ที่ต่ำกว่า 16 ปี การตั้งค่าต่ำกว่าขั้นตอนการยินยอมต้องถูกกำหนดก่อนที่จะดำเนินการ Adiz.initialize
Warning
การตั้งค่าแท็กความยินยอมสำหรับผู้เยาว์ตาม GDPR setTagForUnderAgeOfConsent
และการตั้งค่าการรักษาที่มุ่งเป้าไปที่เด็กตาม COPPA setTagForChildDirectedTreatment
เป็น true
พร้อมกันจะส่งผลให้การตั้งค่าการรักษาที่มุ่งเป้าไปที่เด็กตาม COPPA setTagForChildDirectedTreatment
มีความสำคัญมากกว่า ดังนั้นอย่าตั้งค่าทั้งสองเป็น true
และใช้พร้อมกัน
Note
เมื่อใช้ Hive SDK v4 24.2.0 หรือสูงกว่าร่วมกับ Adiz 2.0.1 หรือสูงกว่า อายุที่ได้รับความยินยอมที่ตั้งไว้ใน Hive SDK จะถูกนำไปใช้โดยอัตโนมัติสำหรับผู้ใช้ที่มีอายุต่ำกว่านั้น
อย่างไรก็ตาม หากผู้ใช้เรียกใช้ API AdizConsentManager.setUserPrivacySettings
โดยตรงก่อนที่จะดำเนินการ Adiz.initialize
การตั้งค่าอายุการยินยอมที่ตั้งโดย Hive SDK จะไม่มีผลใช้บังคับ และค่าที่ตั้งไว้ในระหว่างการเรียก API 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 // เปลี่ยนเป็น true หากเป็นเด็ก
val settings = PrivacySettings.Builder()
.setTagForUnderAgeOfConsent(isUnderAgeForGDPR)
.build()
AdizConsentManager.setUserPrivacySettings(settings)
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
// ... omitted
}
})
}
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 to true if 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()) {
// ... omitted
}
}
});
}
การตั้งค่าอุปกรณ์ทดสอบ GDPR¶
ป๊อปอัพการยินยอม GDPR จะแสดงเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์มาจากยุโรปหรือสหราชอาณาจักร ในระหว่างขั้นตอนการพัฒนา ป๊อปอัพการยินยอม GDPR สามารถแสดงได้โดยบังคับไม่ว่าจะเป็นที่อยู่ IP เพื่อทดสอบการแสดงป๊อปอัพ และสำหรับสิ่งนี้ อุปกรณ์ทดสอบ GDPR จะต้องถูกตั้งค่า โดยการตั้งค่าอุปกรณ์ทดสอบในคอนโซล Hive การทดสอบสามารถทำได้อย่างง่ายดาย วิธีการตั้งค่าด้วยวิธีการ setTestDevice
มีดังนี้ และเป็นวิธีเดียวกับการ แสดงโฆษณาบนอุปกรณ์ทดสอบ.
- เริ่มต้น Adiz โดย เริ่มต้น นี่คือการเริ่มต้นเพื่อตรวจสอบ ID อุปกรณ์ทดสอบ และไม่จำเป็นต้องเขียนข้อความความยินยอม GDPR.
ตรวจสอบผลลัพธ์ logcat สำหรับข้อความที่ยืนยัน ID อุปกรณ์ ด้านล่างนี้คือตัวอย่างข้อความ.
- ตรวจสอบ ID อุปกรณ์ในข้อความ (ตัวอย่าง:
33BE2250B43518CCDA7DE426D04EE231
). - คัดลอก ID อุปกรณ์.
- เพิ่ม
AdizGDPRManager.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?) {
// ... omitted
}
})
}
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()) {
// ... omitted
}
}
});
}
การตั้งค่าแท็กการกำหนดเป้าหมายเด็ก COPPA¶
ตามพระราชบัญญัติคุ้มครองความเป็นส่วนตัวออนไลน์สำหรับเด็ก (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 // เปลี่ยนเป็น true หากเป็นเด็ก
val settings = PrivacySettings.Builder()
.setTagForChildDirectedTreatment(isChildDirectedTreatmentForCOPPA)
.build()
AdizConsentManager.setUserPrivacySettings(settings)
Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
override fun onComplete(error: AdizError, jsonData: JSONObject?) {
// ... omitted
}
})
}
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; // Change to true if it is for children
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()) {
// ... omitted
}
}
});
}
เพิ่มการจัดการโฆษณา¶
Adiz สามารถแสดงโฆษณาโดยใช้การจัดการโฆษณาของ AdMob ได้ เพื่อเพิ่มการจัดการโฆษณาของ AdMob ให้ทำตามขั้นตอนด้านล่าง
การเพิ่มการไกล่เกลี่ย AdMob¶
เราจะดำเนินการรวมแหล่งโฆษณาในคอนโซล AdMob ต่อไป กรุณาติดตามตารางด้านล่างเพื่อดำเนินการต่อ
AppLovin | Liftoff Monetize | Meta Audience Network | Pangle | Unity Ads | ironSource | |
---|---|---|---|---|---|---|
ขั้นตอนที่ 1 | ตั้งค่า AppLovin configuration | ตั้งค่า Liftoff Monetize configuration | ตั้งค่า Meta Audience Network configuration | ตั้งค่า Pangle configuration | ตั้งค่า Unity Ads configuration | ตั้งค่า ironSource configuration |
ขั้นตอนที่ 2 | เพิ่ม AppLovin ad source ไปยัง AdMob | เพิ่ม Liftoff Monetize ad source ไปยัง AdMob | เพิ่ม Meta Audience Network ad source ไปยัง AdMob | เพิ่ม Pangle ad source ไปยัง AdMob | เพิ่ม Unity Ads ad source ไปยัง AdMob | เพิ่ม ironSource ad source ไปยัง AdMob |
ขั้นตอนที่ 3 | เพิ่ม Adiz adapter |
การเพิ่มอะแดปเตอร์ Adiz¶
เพิ่มการพึ่งพาห้องสมุดไปยัง build.gradle ระดับแอป
dependencies {
// ... (omitted)
implementation 'com.com2us.android.adiz:hive-adiz:3.0.0' // Common (required)
implementation 'com.com2us.android.adiz:hive-adiz-adapter-applovin:3.0.0' // Add when integrating AppLovin
implementation 'com.com2us.android.adiz:hive-adiz-adapter-liftoff:3.0.0' // Add when integrating Liftoff Monetize
implementation 'com.com2us.android.adiz:hive-adiz-adapter-meta:3.0.0' // Add when integrating Meta Audience Network
implementation 'com.com2us.android.adiz:hive-adiz-adapter-pangle:3.0.0' // Add when integrating Pangle
implementation 'com.com2us.android.adiz:hive-adiz-adapter-unityads:3.0.0' // Add when integrating Unity Ads
implementation 'com.com2us.android.adiz:hive-adiz-adapter-ironsource:3.0.0' // Add when integrating ironSource
}
เพิ่มรหัสการกำหนดค่าตามเวอร์ชัน Gradle ที่ใช้เมื่อรวม Pangle หรือ ironSource.
-
หากคุณกำลังใช้ Gradle 7.0 หรือสูงกว่า ให้เพิ่มการตั้งค่า
repository
ในส่วนdependencyResolutionManagement
ของไฟล์ระดับโปรเจกต์ settings.gradle. -
หากคุณกำลังใช้ Gradle เวอร์ชันต่ำกว่า 7.0 ให้เพิ่มการตั้งค่า
repository
ในระดับโปรเจกต์ในส่วน build.gradleallprojects
เพื่อตรวจสอบว่าการกำหนดค่าตัวเชื่อมต่อ Adiz ได้ถูกนำไปใช้ถูกต้องหรือไม่ ให้เรียกใช้แอปและตรวจสอบรายการการกำหนดค่าบนหน้าจอ Ad Inspector.
การเริ่มต้น Adiz¶
นี่เป็นขั้นตอนที่จำเป็นต้องทำก่อนที่จะมีการแสดงโฆษณาทุกประเภท โดยการเริ่มต้น Adiz คุณจะได้รับกุญแจโฆษณาที่จำเป็นสำหรับการแสดงโฆษณา หากคุณเปิดใช้งานโหมดทดสอบ คุณจะได้รับกุญแจทดสอบ หากคุณกำลังใช้ SDK ของ Hive ให้ดำเนินการเริ่มต้น Adiz หลังจากเรียกใช้ AuthV4.setup
val sdkInitializationListener = 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) {
//...
}
}
}
}
}
fun initAdiz() {
// การเริ่มต้นทั่วไป
Adiz.initialize(activity, sdkInitializationListener)
}
fun initAdizForNonGDPR() {
// ในกรณีที่ไม่ได้จัดการกับการปฏิบัติตาม GDPR
Adiz.initializeForNonGDPR(activity, sdkInitializationListener)
}
Adiz.SdkInitializationListener sdkInitializationListener = 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);
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) {
}
}
}
}
};
void initAdiz() {
// General initialization
Adiz.initialize(activity, sdkInitializationListener);
}
void initAdizForNonGDPR() {
// If not responding to GDPR
Adiz.initializeForNonGDPR(activity, sdkInitializationListener);
}
ไฟล์ JSON ที่ได้รับเป็นการเรียกกลับเมื่อทำการเริ่มต้นจะมีรายการของคีย์โฆษณา รายการของคีย์โฆษณามีรูปแบบดังต่อไปนี้
{
"keys":[
{
"mediation_id":5,
"key":"ca-app-pub-3940256099942544/5354046379",
"form":"rewarded_interstitial",
"is_default":true,
"placement_id":"lobby01"
},
{
"mediation_id":4,
"key":"ca-app-pub-3940256099942544/5224354917",
"form":"rewarded",
"is_default":true,
"placement_id":"game02"
},
{
"mediation_id":3,
"key":"ca-app-pub-3940256099942544/2247696110",
"form":"native",
"is_default":true,
"placement_id":"event01"
},
{
"mediation_id":1,
"key":"ca-app-pub-3940256099942544/1033173712",
"form":"interstitial",
"is_default":true,
"placement_id":"mission01"
},
{
"mediation_id":2,
"key":"ca-app-pub-3940256099942544/6300978111",
"form":"banner",
"is_default":true,
"placement_id":"main01"
},
{
"mediation_id":6,
"key":"ca-app-pub-3940256099942544/9257395921",
"form":"app_open",
"is_default":true,
"placement_id":"appopen01"
}
]
}
เมื่อเริ่มต้นในโหมดทดสอบ คุณจะได้รับรายการคีย์โฆษณาทดสอบแม้ว่าคุณจะยังไม่ได้ลงทะเบียนคีย์โฆษณา AdMob ในคอนโซล Hive เมื่อเริ่มต้นในโหมดการผลิต คุณจะได้รับรายการคีย์โฆษณา AdMob ที่ลงทะเบียนในคอนโซล Hive
สำหรับแต่ละประเภทของโฆษณา (form
), โฆษณาหนึ่งรายการจะถูกใช้เป็น โฆษณาเริ่มต้น (โฆษณาที่มี "is_default":true
). เมื่อทำการลงทะเบียนประเภทโฆษณาเป็นครั้งแรก, โฆษณาที่ลงทะเบียนในตอนแรกจะกลายเป็นโฆษณาเริ่มต้น. โฆษณาเริ่มต้นไม่ต้องการให้ป้อนคีย์โฆษณา (hiveAdKey
) เมื่อสร้างอินสแตนซ์โฆษณา (initialize()
). เพื่อเปลี่ยนโฆษณาเริ่มต้น, คุณต้องลบโฆษณาเริ่มต้นที่มีอยู่จากคอนโซล Hive และลงทะเบียนโฆษณาใหม่.
การตั้งค่าฟังการเรียกกลับโฆษณา¶
โดยการใช้งาน AdizListener
เมื่อสร้างอินสแตนซ์โฆษณาแต่ละรายการ คุณสามารถรับการเรียกกลับตามการเปลี่ยนแปลงในสถานะโฆษณา。
ชื่อ | คำอธิบาย | การใช้งานที่จำเป็น |
---|---|---|
onLoad() | การโหลดโฆษณาสำเร็จ | O |
onFail(error: AdizError) | ความล้มเหลว (สาเหตุของความล้มเหลวสามารถทราบได้จาก error.getCode() และ error.getMessage() ) | O |
onShow() | การแสดงโฆษณาสำเร็จ | O |
onClick() | การคลิกโฆษณา | O |
onPaidEvent(adRevenueData: AdRevenueData) | จุดในเวลาที่ได้รับเหตุการณ์ที่ต้องชำระเงินหลังจากการแสดงโฆษณา ข้อมูลรายได้จากโฆษณาจะถูกจัดเตรียม | O |
onClose() | สิ้นสุดโฆษณา
| 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) {
// ถูกเรียกเมื่อมีรายได้เกิดขึ้นจากโฆษณา.
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) {
// Called if the ad load failed or the ad display failed for some other reason.
}
@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() {
// Called when the ad is closed.
// Banner, Native ads do not have a close button and therefore do not have an onClose callback.
}
@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
}
};
รหัสข้อผิดพลาด¶
เมื่อได้รับ onFail()
ใน Adiz.Initialize
และ AdizListener
รหัสข้อผิดพลาดและข้อความข้อผิดพลาดของ AdizError
มีดังนี้
รหัสทั่วไป¶
หมายเลข | กรณี | คำอธิบาย |
---|---|---|
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 หรือไม่จำเป็นต้องแสดง |
การแสดงโฆษณาและการสิ้นสุดโฆษณา¶
ในการแสดงและสิ้นสุดโฆษณา ให้ทำตามขั้นตอนเหล่านี้
- สร้างอินสแตนซ์โฆษณาในคลาสโฆษณาสำหรับแต่ละประเภทของโฆษณาที่คุณต้องการแสดง หากโฆษณาที่คุณต้องการแสดงไม่ใช่ โฆษณาเริ่มต้น คุณต้องป้อนคีย์โฆษณาหรือ ID การวางที่ได้รับจาก การเริ่มต้น
หากคุณไม่ป้อนคีย์โฆษณา (hiveAdKey
) หรือ ID การวาง (placementId
) จะมีการสร้างอินสแตนซ์โฆษณาเริ่มต้น ID การวางสามารถตั้งค่าได้ในคอนโซล Hive และสำหรับรายละเอียดเพิ่มเติม โปรดดูที่ หน้าการตั้งค่า Admob ในคู่มือคอนโซล - โหลดโฆษณาที่คุณต้องการแสดง (
load()
). - แสดงโฆษณาที่โหลดแล้ว (
show()
). เพื่อแสดงโฆษณาอีกครั้ง ให้เรียกload()
อีกครั้งแล้วเรียกshow()
. - เพื่อปิดโฆษณา ให้เรียก
destroy()
.
โฆษณาแบบ Interstitial¶
นี่คือโฆษณาแบบเต็มหน้าจอที่ใช้พื้นที่ทั้งหน้าจอ.
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)
}
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()
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// สร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอ
interstitialAd = AdizInterstitial.initialize(activity, adizListener)
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอโดยการป้อน hiveAdKey
interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementid(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// สร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอ
interstitialAd = AdizInterstitial.initialize(activity, adizListener)
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอโดยการป้อน placementId
interstitialAd = AdizInterstitial.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// โหลดโฆษณาแบบเต็มจอ
interstitialAd?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// แสดงโฆษณาแบบเต็มหน้าจอ
interstitialAd?.let {
if(it.isLoaded()) it.show()
}
}
fun requestDestroyAd() {
// ลบโฆษณาแบบเต็มหน้าจอ
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);
}
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 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
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// สร้างอินสแตนซ์โฆษณาแบบเต็มจอ
interstitialAd = AdizInterstitial.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเต็มจอโดยการป้อน hiveAdKey
interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// สร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอ
interstitialAd = AdizInterstitial.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอโดยการป้อน placementId
interstitialAd = AdizInterstitial.initializeWithPlacementId(activity, placementId, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// โหลดโฆษณาแบบเต็มจอ
if(interstitialAd != null && interstitialAd.isInitialized()) interstitialAd.load();
}
private void requestShowAd() {
// แสดงโฆษณาแบบเต็มหน้าจอ
if(interstitialAd != null && interstitialAd.isLoaded()) 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 |
468 x 60 | 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)
}
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
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// สร้างตัวอย่างโฆษณาแบนเนอร์
banner = AdizBanner.initialize(activity, bannerSize, adizListener)
} else {
// คุณสามารถสร้างตัวอย่างโฆษณาแบนเนอร์โดยการป้อน hiveAdKey
banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// สร้างตัวอย่างโฆษณาแบนเนอร์
banner = AdizBanner.initialize(activity, bannerSize, adizListener)
} else {
// คุณสามารถสร้างตัวอย่างโฆษณาแบนเนอร์โดยการป้อน placementId
banner = AdizBanner.initializeWithPlacementId(activity, placementId, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// โหลดโฆษณาแบนเนอร์
banner?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// Expose the banner ad.
banner?.let {
if(it.isLoaded()) it.show()
}
// ตั้งค่าตำแหน่งแบนเนอร์
/*
var position = PositionType.TOP
banner?.let {
if(it.isLoaded()) it.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);
}
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
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// สร้างตัวอย่างโฆษณาแบนเนอร์
banner = AdizBanner.initialize(activity, bannerSize, adizListener);
} else {
// คุณสามารถสร้างตัวอย่างโฆษณาแบนเนอร์โดยการป้อน hiveAdKey
banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// สร้างอินสแตนซ์โฆษณาแบนเนอร์
banner = AdizBanner.initialize(activity, bannerSize, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาแบนเนอร์โดยการป้อน placementId
banner = AdizBanner.initializeWithPlacementId(activity, placementId, bannerSize, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// โหลดแบนเนอร์โฆษณา
if(banner != null && banner.isInitialized()) banner.load();
}
private void requestShowAd() {
// แสดงโฆษณาแบนเนอร์
if(banner != null && banner.isLoaded()) 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 |
---|---|---|
ขนาดเล็ก | บน / ล่าง | 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)
}
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 // รหัสสกุลเงินสำหรับรายได้เมื่อแสดงโฆษณา
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// สร้างอินสแตนซ์โฆษณาแบบเนทีฟ
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเนทีฟโดยการป้อน hiveAdKey
nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// สร้างอินสแตนซ์โฆษณาเนทีฟ
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาเนทีฟโดยการป้อน placementId
nativeAd = AdizNative.initializeWithPlacementId(activity, placementId, bannerSize, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// โหลดโฆษณาเนทีฟ
nativeAd?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// Expose the native ad.
nativeAd?.let {
if(it.isLoaded()) it.show()
}
// ตั้งค่าตำแหน่งแบนเนอร์
/*
var position = PositionType.TOP
nativeAd?.let {
if(it.isLoaded()) it.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);
}
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(); // รหัสสกุลเงินสำหรับรายได้เมื่อโฆษณาแสดง
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// สร้างอินสแตนซ์โฆษณาเนทีฟ (ถ้าไม่มี HiveAdKey ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้นที่ตั้งค่าเป็น is_default=true ซึ่งได้รับระหว่างการเริ่มต้นของ Hive Adiz.)
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาเนทีฟโดยการป้อน hiveAdKey.
nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// สร้างอินสแตนซ์โฆษณาเนทีฟ (หากไม่มี HiveAdKey ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้นที่ตั้งค่าเป็น is_default=true ซึ่งได้รับระหว่างการเริ่มต้นของ Hive Adiz.)
nativeAd = AdizNative.initialize(activity, bannerSize, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาเนทีฟโดยการป้อน placementId.
nativeAd = AdizNative.initializeWithPlacementId(activity, placementId, bannerSize, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// Load the native ad.
if(nativeAd != null && nativeAd.isInitialized()) nativeAd.load();
}
private void requestShowAd() {
// แสดงโฆษณาท้องถิ่น
if(nativeAd != null && nativeAd.isLoaded()) nativeAd.show();
// ตั้งค่าตำแหน่งแบนเนอร์
// PositionType position = PositionType.TOP;
// if(nativeAd != null && nativeAd.isLoaded()) nativeAd.show(position);
}
private void requestDestroyAd() {
// ลบโฆษณาเนทีฟ
if(nativeAd != null) nativeAd.destroy();
}
}
โฆษณาที่ได้รับรางวัล¶
นี่คือโฆษณาที่ได้รับรางวัลซึ่งผู้ใช้จะได้รับรางวัลสำหรับการดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อได้รับรางวัล ข้อมูลรายการรางวัลจะถูกส่งผ่านการเรียกกลับ 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)
}
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 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 // จำนวนของรางวัล
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// สร้างตัวอย่างโฆษณาที่ให้รางวัล
rewardedAd = AdizRewarded.initialize(activity, adizListener)
} else {
// คุณสามารถสร้างตัวอย่างโฆษณาที่ให้รางวัลโดยการป้อน hiveAdKey
rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// สร้างอินสแตนซ์โฆษณาที่ได้รับรางวัล
rewardedAd = AdizRewarded.initialize(activity, adizListener)
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาที่ได้รับรางวัลโดยการป้อน placementId
rewardedAd = AdizRewarded.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// โหลดโฆษณาที่ได้รับรางวัล
rewardedAd?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// แสดงโฆษณาที่ได้รับรางวัล
rewardedAd?.let {
if(it.isLoaded()) it.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);
}
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(); // Reward item type
int rewardAmount = rewardItem.getItemAmount(); // Reward item quantity
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// สร้างอินสแตนซ์โฆษณาที่ได้รับรางวัล (หากไม่มี HiveAdKey ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ซึ่งได้รับระหว่างการเริ่มต้นของ Hive Adiz.)
rewardedAd = AdizRewarded.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาที่ได้รับรางวัลโดยการป้อน hiveAdKey.
rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// สร้างอินสแตนซ์โฆษณาที่ได้รับรางวัล (หากไม่มี HiveAdKey ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ซึ่งได้รับระหว่างการเริ่มต้นของ Hive Adiz.)
rewardedAd = AdizRewarded.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาที่ได้รับรางวัลโดยการป้อน placementId.
rewardedAd = AdizRewarded.initializeWithPlacementId(activity, placementId, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// โหลดโฆษณาที่ได้รับรางวัล
if(rewardedAd != null && rewardedAd.isInitialized()) rewardedAd.load();
}
private void requestShowAd() {
// แสดงโฆษณาที่ได้รับรางวัล
if(rewardedAd != null && rewardedAd.isLoaded()) rewardedAd.show();
}
private void requestDestroyAd() {
// Remove the rewarded ad.
if(rewardedAd != null) rewardedAd.destroy();
}
}
โฆษณาแบบเต็มหน้าที่ได้รับรางวัล¶
นี่คือโฆษณาแบบเต็มหน้าที่ผู้ใช้จะได้รับรางวัลสำหรับการดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อได้รับรางวัล ข้อมูลรายการรางวัลจะถูกส่งผ่านการเรียกกลับ 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)
}
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 // จำนวนของรางวัล
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// Creates an instance of rewarded interstitial ad.
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
} else {
// You can create an instance of rewarded interstitial ad by entering the hiveAdKey.
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// Creates an instance of rewarded interstitial ad.
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
} else {
// You can create an instance of rewarded interstitial ad by entering the placementId.
rewardedInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// โหลดโฆษณาแบบอินเตอร์สเตเชียลที่ให้รางวัล
rewardedInterstitialAd?.let {
if(it.isInitialized()) it.load()
}
}
fun requestShowAd() {
// แสดงโฆษณาแบบ interstitial ที่มีรางวัล
rewardedInterstitialAd?.let {
if(it.isLoaded()) it.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);
}
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(); // จำนวนรางวัล
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// สร้างอินสแตนซ์ของโฆษณาแบบ rewarded interstitial (ถ้าคีย์โฆษณา (HiveAdKey) ไม่ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Hive Adiz.)
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์ของโฆษณาแบบ rewarded interstitial โดยการป้อน hiveAdKey.
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// สร้างอินสแตนซ์ของโฆษณาแบบ rewarded interstitial (ถ้าคีย์โฆษณา (HiveAdKey) ไม่ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Hive Adiz.)
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์ของโฆษณาแบบ rewarded interstitial โดยการป้อน placementId.
rewardedInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(activity, placementId, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// โหลดโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
if(rewardedInterstitialAd != null && rewardedInterstitialAd.isInitialized()) rewardedInterstitialAd.load();
}
private void requestShowAd() {
// แสดงโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
if(rewardedInterstitialAd != null && rewardedInterstitialAd.isLoaded()) rewardedInterstitialAd.show();
}
private void requestDestroyAd() {
// ลบโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
if(rewardedInterstitialAd != null) rewardedInterstitialAd.destroy();
}
}
โฆษณาเปิดแอป (AppOpen)¶
โฆษณาเปิดแอปถูกออกแบบมาเพื่อแสดงโฆษณาที่โหลดไว้ล่วงหน้า (โดยใช้ load()
) เมื่อแอปเปลี่ยนจากพื้นหลังไปยังพื้นหน้า.
เมื่อโฆษณาแสดงอย่างน้อยหนึ่งครั้งแล้ว จะไม่ถูกโหลดใหม่โดยอัตโนมัติ หากต้องการแสดงโฆษณาอีกครั้ง คุณต้องเรียกใช้ load()
อีกครั้ง นอกจากนี้ หากเวลาผ่านไปมากกว่า 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)
}
val adizListener = object : AdizListener() {
override fun onLoad() {
//
}
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()
}
}
fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {
if(hiveAdKey.isNullOrEmpty()) {
// สร้างตัวอย่างโฆษณาเปิดแอป
appOpen = AdizAppOpen.initialize(activity, adizListener)
} else {
// คุณสามารถสร้างตัวอย่างโฆษณาเปิดแอปโดยการป้อน hiveAdKey
appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener)
}
// requestLoadAd()
}
fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {
if(placementId.isNullOrEmpty()) {
// สร้างอินสแตนซ์โฆษณาเปิดแอป
appOpen = AdizAppOpen.initialize(activity, adizListener)
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาเปิดแอปโดยการป้อน placementId
appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// โหลดโฆษณาเปิดแอป หลังจากโหลดเสร็จแล้ว โฆษณาจะถูกแสดงโดยอัตโนมัติเมื่อแอปเคลื่อนจากพื้นหลังไปยังพื้นหน้า
// เมื่อโฆษณาแสดงอย่างน้อยหนึ่งครั้ง จะไม่ถูกแสดงอีกครั้ง ดังนั้นหากคุณต้องการให้แสดงโฆษณาต่อไป คุณต้องเรียก appOpen.load() อีกครั้งใน callback onClose()
appOpen?.let {
if(it.isInitialized()) it.load()
}
}
fun requestDestroyAd() {
// Removes the app opening ad.
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);
}
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();
}
};
public void requestInitAd(Activity activity, String hiveAdKey) {
if(TextUtils.isEmpty(hiveAdKey)) {
// สร้างอินสแตนซ์โฆษณาเปิดแอป (ถ้ากุญแจโฆษณา (HiveAdKey) ไม่ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยกุญแจเริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Hive Adiz.)
appOpen = AdizAppOpen.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาเปิดแอปโดยการป้อน hiveAdKey.
appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener);
}
// requestLoadAd();
}
public void requestInitAdWithPlacementId(Activity activity, String placementId) {
if(TextUtils.isEmpty(placementId)) {
// สร้างอินสแตนซ์โฆษณาเปิดแอป (ถ้าคีย์โฆษณา (HiveAdKey) ไม่ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Hive Adiz.)
appOpen = AdizAppOpen.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์โฆษณาเปิดแอปโดยการป้อน placementId.
appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener);
}
// requestLoadAd();
}
private void requestLoadAd() {
// โหลดโฆษณาเปิดแอป
if(appOpen != null && appOpen.isInitialized()) appOpen.load();
}
private void requestDestroyAd() {
// Removes the app opening ad.
if(appOpen != null) appOpen.destroy();
}
}