Android
Adiz Android¶
Adiz Android เป็นโมดูลโฆษณาสำหรับ Android ที่ Hive จัดเตรียมไว้เพื่อให้สามารถใช้งานฟังก์ชันการแสดงโฆษณาจาก AdMob ได้สะดวกยิ่งขึ้น รูปแบบโฆษณาที่ Adiz Android มีให้บริการมีดังนี้
- โฆษณาเต็มหน้าจอ (Interstitial)
- โฆษณาแบนเนอร์ (Banner)
- โฆษณาเนทีฟ (Native)
- โฆษณาแบบให้รางวัล (Rewarded)
- โฆษณาเต็มหน้าจอแบบให้รางวัล (Rewarded Interstitial)
- โฆษณาเปิดแอป (AppOpen)
โปรดอ้างอิงคู่มือด้านล่างตามลำดับเพื่อทำการติดตั้งและใช้งาน 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 โมดูล Adiz จะมีการรวมกฎ ProGuard ด้วย ดังนั้นจึงไม่จำเป็นต้องเพิ่มกฎ 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 สามารถแสดงโฆษณาทดสอบได้ 2 วิธี
- เปิดโหมดทดสอบ: แสดงโฆษณาทดสอบที่ออกโดย AdMob เท่านั้น
- ลงทะเบียนอุปกรณ์ทดสอบก่อนแสดงโฆษณา: แสดงโฆษณาจริงเพื่อการทดสอบ โดยไม่ให้เกิดการเข้าชมที่ไม่ถูกต้อง ลงทะเบียนอุปกรณ์ที่จะทำการแสดงโฆษณาทดสอบ
เปิดใช้งานโหมดทดสอบ¶
ในระหว่างขั้นตอนการพัฒนา จะเปิดใช้งานโหมดทดสอบเพื่อไม่ให้เรียกเก็บค่าใช้จ่ายจากผู้โฆษณาแม้จะคลิกโฆษณาทดสอบ โหมดทดสอบจะเปิดใช้งานเฉพาะโฆษณาทดสอบเท่านั้น ในโหมดทดสอบจะไม่ต้องป้อนคีย์โฆษณา AdMob ในคอนโซลเพื่อแสดงโฆษณาทดสอบ เมื่อมีการเผยแพร่เชิงพาณิชย์จะปิดใช้งานโหมดทดสอบ.
วิธีเปิดโหมดทดสอบมี 2 วิธี
- ลงทะเบียนอุปกรณ์ทดสอบในคอนโซล โฆษณาสาธิต (แนะนำ):
โปรดดูเนื้อหาใน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล - ใช้เมธอด
setTestMode()
ของคลาส Adiz:
โปรดดู โค้ดตัวอย่างด้านล่าง
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 โฆษณาคีย์ที่ลงทะเบียนในคอนโซลทำงานได้ดีหรือไม่
- ในกรณีที่เขียน GDPR ข้อความ และตรวจสอบว่า GDPR การยินยอมป๊อปอัปทำงานได้ดีหรือไม่
- ในกรณีที่เรียกใช้ เครื่องตรวจสอบโฆษณา เพื่อวิเคราะห์และดีบักคำขอโฆษณา
วิธีการแสดงโฆษณาบนอุปกรณ์ทดสอบมี 2 วิธี
-
ลงทะเบียนอุปกรณ์ทดสอบในคอนโซล ใช้ ID หน่วยโฆษณา (แนะนำ):
โปรดดูเนื้อหาใน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล -
ใช้เมธอด
setTestDevice()
ของคลาส Adiz:
โปรดดู โค้ดตัวอย่าง ด้านล่าง
Note
หากคุณทำการทดสอบโดยไม่ลงทะเบียนอุปกรณ์ทดสอบและแสดงโฆษณาจริง จะถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AbMob ของคุณอาจถูกบล็อกและไม่สามารถแสดงโฆษณาได้อีกต่อไป หากลงทะเบียนอุปกรณ์ทดสอบ โฆษณาที่แสดงจะมีข้อความ "Test Mode" หรือ "Test Ad" (โฆษณาเนทีฟ) แสดงอยู่ ในการเผยแพร่เชิงพาณิชย์ คุณต้องปิดการใช้งานอุปกรณ์ทดสอบ
แบนเนอร์, โฆษณาหน้าแรกหรือโฆษณาแบบมีรางวัล
การใช้เมธอด Adiz.setTestDevice()¶
ในการลงทะเบียนอุปกรณ์ทดสอบ คุณต้องตรวจสอบ ID ของอุปกรณ์ทดสอบก่อน ID ของอุปกรณ์ทดสอบ (ตัวอย่าง:33BE2250B43518CCDA7DE426D04EE231
) สามารถตรวจสอบได้ 2 วิธีดังต่อไปนี้
-
Adiz.Initialize()
เรียกหลังจากตรวจสอบบันทึก Logcat: -
หลังจากเรียก
Adiz.Initialize()
ไม่ว่าจะเป็นประเภทโฆษณาใดก็ตาม ให้เรียกinitialize()
→load()
จากนั้นตรวจสอบบันทึก Logcat:
ตรวจสอบ 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?) {
// ... ถูกตัดทอน
}
})
}
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()) {
// ... ข้าม
}
}
});
}
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()) {
// ... ข้าม
}
}
});
}
เครื่องมือการตรวจสอบโฆษณา¶
เครื่องมือการตรวจสอบโฆษณาคือเครื่องมือโอเวอร์เลย์ในแอปที่วิเคราะห์กระบวนการเรียกดูโฆษณาจริงในอุปกรณ์ทดสอบแบบเรียลไทม์ โดยจะแจ้งเวลาที่ใช้ในการโหลดโฆษณา และหากมีการแสดงผลล้มเหลว จะบอกเหตุผลในการล้มเหลว นอกจากนี้ยังสามารถกำหนดเครือข่ายโฆษณาเฉพาะเพื่อให้แน่ใจว่าโฆษณาแสดงผลได้ดี และหากมีปัญหาสามารถทำการดีบักในระดับโค้ดได้ กระบวนการทั้งหมดนี้จะดำเนินการพร้อมกับ UI การตรวจสอบโฆษณา ซึ่งรวมอยู่ใน Google Mobile Ads SDK Android 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 ของอุปกรณ์ผู้ใช้เป็นที่อยู่ IP ของยุโรปและสหราชอาณาจักร (EEA & UK) Adiz สนับสนุน Google UMP (User Messaging Platform) สำหรับการแสดงป๊อปอัปการยินยอม GDPR หลังจากที่สร้างข้อความ GDPR ใน AdMob Console แล้ว ให้เริ่มต้น Adiz จะมีการแสดงป๊อปอัป GDPR สำหรับผู้ใช้ที่เข้าถึงจากภูมิภาคยุโรปและสหราชอาณาจักร
Warning
หากคุณกำลังตั้งเป้าไปที่ยุโรปและนอกสหราชอาณาจักร เช่น หากคุณวางแผนที่จะให้บริการเฉพาะในประเทศ การแสดงป๊อปอัปการยินยอม GDPR (ยุโรป, สหราชอาณาจักร) คุณสามารถข้ามขั้นตอนนี้และใช้ Adiz.initializeForNonGDPR()
เพื่อดำเนินการเริ่มต้น
หากคุณใช้ Adiz.initialize()
เพื่อดำเนินการเริ่มต้น คุณจะต้องสร้างข้อความ GDPR ในคอนโซล AdMob เพื่อให้การเริ่มต้น Adiz ดำเนินการได้อย่างถูกต้อง
การเขียนข้อความ GDPR¶
เข้าสู่ระบบ Google AdMob Console เพื่อเขียนข้อความ GDPR ก่อนที่จะเขียนข้อความ GDPR โปรดดูที่ คู่มือการเขียนข้อความ GDPR
หากคุณได้สร้างข้อความ GDPR แล้ว การเริ่มต้น Adiz จะทำให้ป๊อปอัปการยินยอม GDPR แสดงขึ้นโดยอัตโนมัติ
การดำเนินการยินยอม/ถอนการยินยอม GDPR¶
รายการในป๊อปอัปการยินยอม GDPR จะต้องมีฟังก์ชันการแก้ไขเพื่อให้ผู้ใช้สามารถปรับเปลี่ยนการยินยอมได้ตลอดเวลา ตัวอย่างเช่น ผู้ใช้อาจไม่ยินยอมกับ GDPR ในตอนแรก แต่ต้องการยินยอมอีกครั้งเพื่อดูโฆษณาที่ปรับแต่ง หรือในทางกลับกัน ผู้ใช้อาจยินยอมกับ GDPR ในตอนแรก แต่ไม่ต้องการให้ข้อมูลส่วนบุคคลอีกต่อไปและต้องการถอนการยินยอม ในสถานการณ์เหล่านี้ ผู้พัฒนาแอปจะต้องดำเนินการฟังก์ชันการยินยอมใหม่หรือถอนการยินยอมที่มีอยู่สำหรับแต่ละรายการ เพื่อดำเนินการฟังก์ชันการยินยอม/ถอนการยินยอม GDPR ให้ทำตามขั้นตอนต่อไปนี้
- สร้าง UI ปุ่มในแอปเพื่อเรียกหน้าต่างป๊อปอัพการยินยอม GDPR ขึ้นมาอีกครั้ง
- เมื่อทำการ เริ่มต้น Adiz ให้เรียกใช้
isPrivacyOptionsRequired()
เพื่อแสดง UI ปุ่มดังกล่าวสำหรับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร และไม่แสดงสำหรับผู้ใช้ที่ไม่ใช่ในกรณีนี้ หากผู้ใช้จากยุโรปและสหราชอาณาจักรกดปุ่มดังกล่าว ให้เรียกshowPrivacyOptionsForm
เพื่อเรียกหน้าต่างป๊อปอัพการยินยอม GDPR ขึ้นมาอีกครั้ง ผู้ใช้สามารถกดปุ่ม "Manage Options" ในแอปเพื่อปรับเปลี่ยนการยินยอมในรายละเอียด 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()) {
// ... ข้าม
// ตัดสินใจว่าจะแสดงปุ่มเพื่อเปิดหน้าต่างข้อตกลง 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) {
// ไม่จำเป็นต้องจัดการข้อผิดพลาดใด ๆ
}
});
}
}
การตั้งค่าแท็กสำหรับผู้ใช้ที่อายุต่ำกว่าที่ตกลง GDPR (TFUA)¶
GDPR การใช้แท็ก (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 จะนำการตั้งค่าความยินยอมสำหรับผู้ใช้ที่ต่ำกว่าช่วงอายุที่ตั้งไว้โดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องเรียก 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?) {
// ... ถูกตัดทอน
}
})
}
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; // เปลี่ยนเป็น true หากเป็นเด็ก
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()) {
// ... ถูกละเว้น
}
}
});
}
การตั้งค่าอุปกรณ์ทดสอบ GDPR¶
ป๊อปอัปการยินยอม GDPR จะปรากฏเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์อยู่ในยุโรปและสหราชอาณาจักร ในระยะพัฒนาจะมีการบังคับให้แสดงป๊อปอัปการยินยอม GDPR โดยไม่คำนึงถึงที่อยู่ IP เพื่อทดสอบการแสดงป๊อปอัป และเพื่อสิ่งนี้จะต้องตั้งค่าอุปกรณ์ทดสอบ GDPR การตั้งค่าอุปกรณ์ทดสอบใน Hive Console จะทำให้การทดสอบเป็นเรื่องง่าย วิธีการตั้งค่าด้วยเมธอด setTestDevice
มีดังนี้ และเหมือนกับวิธีการ แสดงโฆษณาบนอุปกรณ์ทดสอบ
- ทำการเริ่มต้น Adiz นี่คือการเริ่มต้นเพื่อตรวจสอบ ID อุปกรณ์ทดสอบและไม่จำเป็นต้องเขียนข้อความขอความยินยอม GDPR
ตรวจสอบข้อความที่สามารถเห็น ID อุปกรณ์ในผลลัพธ์ของ Logcat ด้านล่างเป็นตัวอย่างข้อความ
- ตรวจสอบ 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?) {
// ... ถูกละเว้น
}
})
}
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()) {
// ... ข้าม
}
}
});
}
การตั้งค่าแท็กการจัดการสำหรับเด็ก COPPA¶
ตามพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคลออนไลน์สำหรับเด็ก (COPPA) นักพัฒนาแอปสามารถกำหนดได้ว่า Google จะจัดการเนื้อหาเป็นเนื้อหาสำหรับเด็กหรือไม่ โดยใช้การตั้งค่าแท็กการจัดการสำหรับเด็ก (tagForChildDirectedTreatment, TFCD) เมื่อมีการร้องขอโฆษณา หากต้องการให้จัดการเป็นเนื้อหาสำหรับเด็ก ต้องเรียกใช้ AdizConsentManager.setUserPrivacySettings
ก่อนที่จะเรียกใช้ Adiz.initialize
เมื่อใช้ Adiz และ Hive SDK ร่วมกัน แท็กการจัดการสำหรับเด็กจะถูกนำไปใช้โดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องตั้งค่าเพิ่มเติม
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?) {
// ... ถูกละเว้น
}
})
}
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; // เปลี่ยนเป็น true หากเป็นเด็ก
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()) {
// ... ถูกละเว้น
}
}
});
}
การเพิ่มการจัดการโฆษณา¶
Adiz สามารถแสดงโฆษณาโดยใช้การจัดการโฆษณาของ AdMob ได้ หากต้องการเพิ่มการจัดการโฆษณา โปรดทำตามขั้นตอนด้านล่าง
การเพิ่มการไกล่เกลี่ย AdMob¶
ดำเนินการเชื่อมต่อแหล่งโฆษณาในคอนโซล AdMob ตามตารางด้านล่าง
AppLovin | Pangle | Unity Ads | Meta | |
---|---|---|---|---|
ขั้นตอนที่ 1 | ตั้งค่า AppLovin | ตั้งค่า Pangle | ตั้งค่า Unity Ads | ตั้งค่า Meta |
ขั้นตอนที่ 2 | เพิ่มแหล่งโฆษณา AppLovin ลงใน AdMob | เพิ่มแหล่งโฆษณา Pangle ลงใน AdMob | เพิ่มแหล่งโฆษณา Unity Ads ลงใน AdMob | เพิ่มแหล่งโฆษณา Meta ลงใน AdMob |
ขั้นตอนที่ 3 | เพิ่ม Adiz adapter |
เพิ่ม Adiz อะแดปเตอร์¶
เพิ่มการพึ่งพาห้องสมุดใน build.gradle ระดับแอป
dependencies {
// ... (생략)
implementation 'com.com2us.android.adiz:hive-adiz:2.0.1' // ส่วนร่วม (ต้องเพิ่ม)
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 ระดับโปรเจกต์
// Gradle 7.0 이상 사용 시 settings.gradle 설정
การจัดการการแก้ไขความสัมพันธ์ {
ที่เก็บ {
maven { url 'https://artifact.bytedance.com/repository/pangle/' } // เพิ่มเมื่อเชื่อมต่อกับ Pangle
}
}
หากคุณใช้ Gradle 7.0 หรือต่ำกว่า ให้เพิ่มการตั้งค่า repository
ในส่วน allprojects
ของ build.gradle ระดับโปรเจกต์
// การตั้งค่า build.gradle เมื่อใช้ Gradle 7.0 หรือต่ำกว่า
allprojects {
repositories {
maven {
url 'https://artifact.bytedance.com/repository/pangle' // เพิ่มเมื่อเชื่อมต่อ Pangle
}
}
}
เพื่อยืนยันว่าการกำหนดค่า Adiz อนุกรมได้ถูกนำไปใช้อย่างถูกต้อง ให้เรียกใช้แอปและตรวจสอบรายการการกำหนดค่าบนหน้าจอ ตัวตรวจสอบโฆษณา。
การเริ่มต้น Adiz¶
ขั้นตอนที่จำเป็นต้องดำเนินการก่อนที่จะเปิดเผยโฆษณาทุกประเภท เมื่อเริ่มต้น Adiz คุณจะได้รับคีย์โฆษณาที่จำเป็นสำหรับการแสดงโฆษณา หากเปิดใช้งานโหมดทดสอบ คุณจะได้รับคีย์ทดสอบ หากคุณกำลังใช้ Hive SDK ให้ดำเนินการเริ่มต้น 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")
สำหรับ (i ใน 0 จนถึง 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() {
// การเริ่มต้นทั่วไป
Adiz.initialize(activity, sdkInitializationListener);
}
void initAdizForNonGDPR() {
// ในกรณีที่ไม่มีการตอบสนองต่อ GDPR
Adiz.initializeForNonGDPR(activity, sdkInitializationListener);
}
ไฟล์ JSON ที่ได้รับจากการเรียกใช้งานเริ่มต้นผ่าน callback จะมีรายการคีย์โฆษณาอยู่ รายการคีย์โฆษณามีรูปแบบดังนี้:
{
"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 คอนโซลและลงทะเบียนโฆษณาใหม่
การตั้งค่า Listener การเรียกกลับโฆษณา¶
เมื่อสร้างอินสแตนซ์โฆษณาแต่ละรายการ คุณสามารถรับการเรียกกลับตามการเปลี่ยนแปลงสถานะโฆษณาโดยการใช้ AdizListener
ชื่อ | คำอธิบาย | การใช้งานที่จำเป็น |
---|---|---|
onLoad() | โหลดโฆษณาสำเร็จ | O |
onFail(error: AdizError) | ล้มเหลว(error.getCode() และ error.getMessage() สามารถทราบเหตุผลการล้มเหลว) | O |
onShow() | แสดงโฆษณาสำเร็จ | O |
onClick() | คลิกโฆษณา | O |
onPaidEvent(adRevenueData: AdRevenueData) | จุดที่ได้รับ paid event หลังจากแสดงโฆษณา โดยจะมีข้อมูลรายได้จากโฆษณาส่งมา | 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) {
// 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) {
// 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() {
// ถูกเรียกเมื่อโฆษณาถูกปิด
// แบนเนอร์และโฆษณาแบบเนทีฟไม่มีปุ่มปิดและดังนั้นจึงไม่มีการเรียกกลับ onClose
}
@Override
public void onRewarded(@NonNull RewardItem rewardItem) {
// เรียกเมื่อมีการให้รางวัลสำหรับการดูโฆษณาในโฆษณาที่ได้รับรางวัล, โฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
String rewardType = rewardItem.getItemType(); // ประเภทของรายการรางวัล
int rewardAmount = rewardItem.getItemAmount(); // จำนวนรายการรางวัล
}
};
รหัสข้อผิดพลาด¶
เมื่อได้รับ 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 | Unit Id ไม่ถูกต้อง |
-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(); // 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(); // รายได้เมื่อโฆษณาถูกแสดง
String currency = adRevenueData.getCurrency(); // รหัสสกุลเงินสำหรับรายได้เมื่อโฆษณาถูกแสดง
}
};
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()
callback ดังนั้นคุณต้องเรียกใช้ destroy()
จากตำแหน่งอื่นเพื่อสิ้นสุดโฆษณา
BannerSize
เป็นขนาดแบนเนอร์มาตรฐาน
ขนาดพ้อย (กว้างxสูง) | คำอธิบาย | กลุ่มเป้าหมาย | ค่าคงที่ BannerSize |
---|---|---|---|
320x50 | แบนเนอร์ | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.NORMAL |
320x100 | แบนเนอร์ขนาดใหญ่ | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.MEDIUM |
300x250 | IAB ขนาดกลางสี่เหลี่ยมผืนผ้า | โทรศัพท์มือถือและแท็บเล็ต | BannerSize.LARGE |
468 x 60 | IAB แบนเนอร์ขนาดเต็ม | แท็บเล็ต | BannerSize.FULL |
PositionType
เป็นตำแหน่งที่สูงสุดหรือต่ำสุด ค่าเริ่มต้นคือค่าต่ำสุด
การจัดเรียง | คำอธิบาย | ค่าคงที่ 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() {
// แสดงโฆษณาแบนเนอร์
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 |
---|---|---|
การจัดเรียงที่ด้านบนสุด | กำหนดการจัดเรียงที่ด้านบนสุดของหน้าจอ | 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 // Revenue when ad is shown
var currency = adRevenueData.currency // Currency code for revenue when ad is shown
}
}
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() {
// เปิดเผยโฆษณาพื้นเมือง
nativeAd?.let {
if(it.isLoaded()) it.show()
}
// ตั้งค่าตำแหน่งแบนเนอร์
/*
var position = PositionType.TOP
nativeAd?.let {
if(it.isLoaded()) it.show(position)
}
*/
}
fun requestDestroyAd() {
// ลบโฆษณาพื้นเมือง
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() {
// โหลดโฆษณาท้องถิ่น
if(nativeAd != null && nativeAd.isInitialized()) nativeAd.load();
}
private void requestShowAd() {
// แสดงโฆษณาท้องถิ่น
if(nativeAd != null && nativeAd.isLoaded()) nativeAd.show();
// ตั้งค่าตำแหน่งแบนเนอร์
// PositionType position = PositionType.TOP;
// ถ้า(nativeAd != null && nativeAd.isLoaded()) 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)
}
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() {
// ลบโฆษณาที่ได้รับรางวัล
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(); // รายได้เมื่อโฆษณาแสดง
String currency = adRevenueData.getCurrency(); // รหัสสกุลเงินสำหรับรายได้เมื่อโฆษณาแสดง
}
@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)) {
// สร้างอินสแตนซ์โฆษณาที่ได้รับรางวัล (ถ้าไม่มี 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() {
// ลบโฆษณาที่ได้รับรางวัล.
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)
}
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()) {
// สร้างอินสแตนซ์ของโฆษณาแบบ rewarded interstitial
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
} else {
// คุณสามารถสร้างอินสแตนซ์ของโฆษณาแบบ rewarded interstitial โดยการป้อน 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() {
// แสดงโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
rewardedInterstitialAd?.let {
if(it.isLoaded()) it.show()
}
}
fun requestDestroyAd() {
// ลบโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
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)) {
// สร้างอินสแตนซ์ของโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล (ถ้าคีย์โฆษณา (HiveAdKey) ไม่ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Hive Adiz.)
rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
} else {
// คุณสามารถสร้างอินสแตนซ์ของโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัลโดยการป้อน 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() {
// แสดงโฆษณาแบบ interstitial ที่ได้รับรางวัล
if(rewardedInterstitialAd != null && rewardedInterstitialAd.isLoaded()) rewardedInterstitialAd.show();
}
private void requestDestroyAd() {
// ลบโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
if(rewardedInterstitialAd != null) rewardedInterstitialAd.destroy();
}
}
โฆษณาเปิดแอป (AppOpen)¶
โฆษณาเปิดแอปคือโฆษณาที่แสดงเมื่อสถานะของแอปเปลี่ยนจากพื้นหลังไปยังพื้นหน้า โดยจะมีการโหลดโฆษณาล่วงหน้า (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)
}
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 // Revenue when ad is shown
var currency = adRevenueData.currency // Currency code for revenue when ad is shown
}
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()) {
// Creates an app opening ad instance.
appOpen = AdizAppOpen.initialize(activity, adizListener)
} else {
// You can create an app opening ad instance by entering the placementId.
appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener)
}
// requestLoadAd()
}
fun requestLoadAd() {
// โหลดโฆษณาเปิดแอป หลังจากการโหลดเสร็จสิ้น โฆษณาจะถูกแสดงโดยอัตโนมัติเมื่อแอปเคลื่อนจากพื้นหลังไปยังพื้นหน้า
// เมื่อโฆษณาถูกแสดงอย่างน้อยหนึ่งครั้ง จะไม่ถูกแสดงอีก ดังนั้นหากคุณต้องการแสดงโฆษณาต่อไป คุณต้องเรียก appOpen.load() อีกครั้งใน callback onClose()
appOpen?.let {
if(it.isInitialized()) it.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);
}
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(); // รายได้เมื่อแสดงโฆษณา
String currency = adRevenueData.getCurrency(); // รหัสสกุลเงินสำหรับรายได้เมื่อแสดงโฆษณา
}
@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() {
// ลบโฆษณาเปิดแอป
if(appOpen != null) appOpen.destroy();
}
}