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

Android

Adiz Android

Adiz Android เป็นโมดูลโฆษณาสำหรับ Android ที่ Hive จัดเตรียมไว้เพื่อให้สามารถใช้งานฟังก์ชันการแสดงโฆษณาจาก AdMob ได้สะดวกยิ่งขึ้น รูปแบบโฆษณาที่ Adiz Android มีให้บริการมีดังนี้

  • โฆษณาเต็มหน้าจอ (Interstitial)
  • โฆษณาแบนเนอร์ (Banner)
  • โฆษณาเนทีฟ (Native)
  • โฆษณาแบบให้รางวัล (Rewarded)
  • โฆษณาเต็มหน้าจอแบบให้รางวัล (Rewarded Interstitial)
  • โฆษณาเปิดแอป (AppOpen)

โปรดอ้างอิงคู่มือด้านล่างตามลำดับเพื่อทำการติดตั้งและใช้งาน Adiz Android

การติดตั้ง

เพิ่มรายการไลบรารี Adiz ในไฟล์ Gradle ระดับแอปของโมดูล (app/build.gradle)

    dependencies {
        implementation 'com.com2us.android.adiz:hive-adiz:2.1.0'
    }
 

เพื่อสนับสนุนฟีเจอร์ 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 วิธี

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 วิธี

Note

หากคุณทำการทดสอบโดยไม่ลงทะเบียนอุปกรณ์ทดสอบและแสดงโฆษณาจริง จะถือว่าเป็นการเข้าชมที่ไม่ถูกต้อง และบัญชี AbMob ของคุณอาจถูกบล็อกและไม่สามารถแสดงโฆษณาได้อีกต่อไป หากลงทะเบียนอุปกรณ์ทดสอบ โฆษณาที่แสดงจะมีข้อความ "Test Mode" หรือ "Test Ad" (โฆษณาเนทีฟ) แสดงอยู่ ในการเผยแพร่เชิงพาณิชย์ คุณต้องปิดการใช้งานอุปกรณ์ทดสอบ


แบนเนอร์, โฆษณาหน้าแรกหรือโฆษณาแบบมีรางวัล


โฆษณาพื้นเมือง


การใช้เมธอด Adiz.setTestDevice()

ในการลงทะเบียนอุปกรณ์ทดสอบ คุณต้องตรวจสอบ ID ของอุปกรณ์ทดสอบก่อน ID ของอุปกรณ์ทดสอบ (ตัวอย่าง:33BE2250B43518CCDA7DE426D04EE231) สามารถตรวจสอบได้ 2 วิธีดังต่อไปนี้

  • Adiz.Initialize() เรียกหลังจากตรวจสอบบันทึก Logcat:

    ใช้ใหม่
    ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") เพื่อกำหนดให้เป็นอุปกรณ์ดีบัก
    
  • หลังจากเรียก Adiz.Initialize() ไม่ว่าจะเป็นประเภทโฆษณาใดก็ตาม ให้เรียก initialize()load() จากนั้นตรวจสอบบันทึก Logcat:

    I/Ads: ใช้ RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231")) เพื่อรับโฆษณาทดสอบบนอุปกรณ์นี้。
    


ตรวจสอบ ID อุปกรณ์ทดสอบ จากนั้นเพิ่มบรรทัด Adiz.setTestDevice(DEVICE_ID) ก่อนเรียกใช้ Adiz.initialize ในโค้ดการรีเซ็ต Adiz ที่มีอยู่ DEVICE_ID ให้ใส่ ID อุปกรณ์ทดสอบที่คัดลอกมา

import com.hive.Adiz
import com.hive.adiz.AdizError
import org.json.JSONObject


fun initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231")

        Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                override fun onComplete(error: AdizError, jsonData: JSONObject?) {
                        // ... ถูกตัดทอน
                }
        })
}
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


ในการใช้เครื่องมือการตรวจสอบโฆษณา ต้องตั้งค่าให้แสดงโฆษณาบนอุปกรณ์ทดสอบ

import com.hive.adiz.utils.AdizDeveloperTool

AdizDeveloperTool.openAdInspector(activity)
import com.hive.adiz.utils.AdizDeveloperTool;

AdizDeveloperTool.openAdInspector(activity);


การตั้งค่า Adiz AppID

ตั้งค่า Adiz AppID ที่ลงทะเบียนใน AppCenter ของคอนโซล หากไม่ได้ตั้งค่า จะใช้ชื่อแพ็คเกจใน AndroidManifest.xml

Adiz.setAppId("YOUR_APPID")
Adiz.setAppId("YOUR_APPID");

Hive การตั้งค่าเซิร์ฟเวอร์คอนโซล

ตั้งค่าเซิร์ฟเวอร์คอนโซล Hive ที่จะใช้ ค่าเริ่มต้นคือ REAL แม้ว่าจะใช้เซิร์ฟเวอร์เชิงพาณิชย์ หากเปิดใช้งานโหมดทดสอบ จะมีการแสดงโฆษณาทดสอบเท่านั้น

  • Hive เซิร์ฟเวอร์คอนโซลทดสอบ: ZoneType.TEST
  • Hive เซิร์ฟเวอร์คอนโซลแซนด์บ็อกซ์: ZoneType.SANDBOX
  • Hive เซิร์ฟเวอร์คอนโซลเชิงพาณิชย์: ZoneType.REAL
Adiz.setZone(AdizConfiguration.ZoneType.REAL)
Adiz.setZone(AdizConfiguration.ZoneType.REAL);

หากเกมมีเป้าหมายที่ยุโรปและสหราชอาณาจักร (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 ให้ทำตามขั้นตอนต่อไปนี้

  1. สร้าง UI ปุ่มในแอปเพื่อเรียกหน้าต่างป๊อปอัพการยินยอม GDPR ขึ้นมาอีกครั้ง
  2. เมื่อทำการ เริ่มต้น 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 มีดังนี้ และเหมือนกับวิธีการ แสดงโฆษณาบนอุปกรณ์ทดสอบ

  1. ทำการเริ่มต้น Adiz นี่คือการเริ่มต้นเพื่อตรวจสอบ ID อุปกรณ์ทดสอบและไม่จำเป็นต้องเขียนข้อความขอความยินยอม GDPR
  2. ตรวจสอบข้อความที่สามารถเห็น ID อุปกรณ์ในผลลัพธ์ของ Logcat ด้านล่างเป็นตัวอย่างข้อความ

    ใช้ ConsentDebugSettings.Builder ใหม่().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") เพื่อตั้งค่านี้เป็นอุปกรณ์ดีบัก
    
  3. ตรวจสอบ ID อุปกรณ์ในข้อความ (ตัวอย่าง: 33BE2250B43518CCDA7DE426D04EE231)
  4. คัดลอก ID อุปกรณ์
  5. เพิ่ม AdizGDPRManager.setTestDevice(DEVICE_ID) ก่อนเรียกใช้ Adiz.initialize ในโค้ดการเริ่มต้น Adiz ที่มีอยู่
  6. เขียนข้อความขอความยินยอม 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() สิ้นสุดโฆษณา
  • หลังจากโฆษณาสิ้นสุดลง หากต้องการแสดงโฆษณาอีกในอินสแตนซ์เดียวกัน ต้องเรียก load() อีกครั้งแล้วจึงเรียก show()
  • หากไม่ต้องการแสดงโฆษณาอีก ให้เรียก destroy() เพื่อลบอินสแตนซ์โฆษณา
X
onRewarded(rewardItem: RewardItem) จุดที่ผู้ใช้ได้รับรางวัลหลังจากแสดงโฆษณาในโฆษณาแบบให้รางวัล (rewarded, rewarded interstitial) X
var adizListener = object : AdizListener() {
    override fun onLoad() {
        // Called when the ad is loaded.
        // If the ad load is successful, you need to call the ad instance's .show() at the desired point to display the ad.
    }

    override fun onFail(loadError: AdizError) {
        // Called if the ad load failed or the ad display failed for some other reason.
    }

    override fun onShow() {
        // Called when the ad is displayed.
    }

    override fun onClick() {
        // Called when the ad is clicked.
    }

    override fun onPaidEvent(adRevenueData: AdRevenueData) {     
        // Called when revenue is generated for the ad.

        var revenue = adRevenueData.revenue // Revenue at the time of ad display
        var currency = adRevenueData.currency // Currency code for the revenue at the time of ad display     
    }

    override fun onClose() {
        // ถูกเรียกเมื่อโฆษณาถูกปิด
        // แบนเนอร์, โฆษณาเนทีฟไม่มีการเรียกกลับ onClose
    }

    override fun onRewarded(rewardItem: RewardItem) {         
        // ถูกเรียกเมื่อมีการสร้างรางวัลสำหรับการดูโฆษณาในโฆษณาที่ได้รับรางวัล, โฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล.
        var itemType = rewardItem.itemType // ประเภทของรางวัล
        var itemAmount = rewardItem.itemAmount // จำนวนของรางวัล   
    } 
}
AdizListener adizListener = new AdizListener() {
    @Override
    public void onLoad() {
        // Called when the ad is loaded.
        // If the ad load is successful, you need to call the ad instance's .show() at the desired point to display the ad.
    }

    @Override
    public void onFail(@NonNull AdizError loadError) {
        // 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 หรืออยู่ในสถานะที่ไม่จำเป็นต้องแสดง

การแสดงโฆษณาและการสิ้นสุดโฆษณา

เพื่อแสดงและสิ้นสุดโฆษณา ให้ทำตามขั้นตอนต่อไปนี้

  1. สร้างอินสแตนซ์โฆษณาจากคลาสโฆษณาตามประเภทโฆษณาที่ต้องการแสดง หากโฆษณาที่ต้องการแสดงไม่ใช่ โฆษณาพื้นฐาน จะต้องป้อนคีย์โฆษณาหรือ ID ตำแหน่งที่ได้รับจาก การเริ่มต้น
    หากไม่ป้อนคีย์โฆษณา (hiveAdKey) หรือ ID ตำแหน่ง (placementId) จะสร้างอินสแตนซ์โฆษณาพื้นฐาน ID ตำแหน่งสามารถตั้งค่าได้ในคอนโซล Hive และสำหรับข้อมูลเพิ่มเติมโปรดดูที่หน้า การตั้งค่า Admob ในคู่มือคอนโซล
  2. โหลดโฆษณาที่ต้องการแสดง (load())
  3. แสดงโฆษณาที่โหลดแล้ว (show()) หากต้องการแสดงโฆษณาอีกครั้งให้เรียก load() ใหม่แล้วจึงเรียก show()
  4. หากต้องการสิ้นสุดโฆษณาให้เรียก 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();
    }
}

นี่คือโฆษณาแบนเนอร์ที่แสดงแบนเนอร์ขนาดเฉพาะ โฆษณาแบนเนอร์จะไม่รับ 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();
        }
}