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

Android

Adiz Android

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

  • โฆษณาแบบเต็มหน้าจอ
  • โฆษณาแบบแบนเนอร์
  • โฆษณาแบบเนทีฟ
  • โฆษณาแบบมีรางวัล
  • โฆษณาแบบเต็มหน้าจอที่มีรางวัล
  • โฆษณาเปิดแอป

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

การติดตั้ง

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

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

เพื่อสนับสนุนฟีเจอร์ Java 8 ให้เพิ่มสิ่งต่อไปนี้ภายใต้การตั้งค่า android ในไฟล์ Gradle ระดับแอปของโมดูล

android {
    // ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

 

AndroidManifest.xml ไฟล์, ป้อน AdMobId (ในรูปแบบ ca-app-pub-XXXXX~YYYYY).

<manifest>
    <application>
    <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>
 

เมื่อใช้ Proguard กฎ ProGuard สำหรับโมดูล Adiz จะถูกรวมอยู่ด้วย ดังนั้นจึงไม่มีความจำเป็นต้องเพิ่มกฎ ProGuard ลงในโปรเจกต์

 

ในการแสดงโฆษณาวิดีโอ คุณต้องเปิดใช้งานการเร่งความเร็วฮาร์ดแวร์ เพิ่มการตั้งค่าสำหรับการเร่งความเร็วฮาร์ดแวร์ในไฟล์ AndroidManifest.xml การเพิ่มลงในแท็ก application จะเปิดใช้งานการเร่งความเร็วฮาร์ดแวร์สำหรับทั้งแอปพลิเคชัน การเพิ่มลงในแท็ก activity จะเปิดใช้งานการเร่งความเร็วฮาร์ดแวร์เฉพาะสำหรับ Activity ที่คุณต้องการแสดงโฆษณา

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
</application>

การตั้งค่าโฆษณาทดสอบ

Adiz สามารถแสดงโฆษณาทดสอบได้สองวิธี

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

เปิดโหมดทดสอบ

ในระยะการพัฒนา เปิดโหมดทดสอบเพื่อให้การคลิกโฆษณาทดสอบไม่คิดค่าบริการกับผู้ลงโฆษณา เมื่อเปิดโหมดทดสอบ โฆษณาทดสอบเท่านั้นที่จะถูกแสดง ในโหมดทดสอบ โฆษณาทดสอบจะถูกแสดงแม้ว่าจะไม่มีการป้อนคีย์โฆษณา AdMob ในคอนโซล ปิดโหมดทดสอบในระหว่างการจัดจำหน่ายเชิงพาณิชย์.

มีสองวิธีในการเปิดใช้งานโหมดทดสอบ.
<

Note

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

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

import com.hive.adiz.Adiz
import com.hive.adiz.AdizError

import org.json.JSONException
import org.json.JSONObject

// เปิดโหมดทดสอบ คอมเมนต์บรรทัดด้านล่างสำหรับการจัดจำหน่ายเชิงพาณิชย์.
Adiz.setTestMode(true)

// เปิดใช้งานการบันทึกสำหรับโมดูล Hive Adiz การบันทึกควรใช้เฉพาะในโหมดทดสอบ เท่านั้น คอมเมนต์บรรทัดด้านล่างสำหรับการจัดจำหน่ายเชิงพาณิชย์.
Adiz.setLogEnable(true)
import com.hive.adiz.Adiz;
import com.hive.adiz.AdizError;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;

// เปิดโหมดทดสอบ คอมเมนต์บรรทัดด้านล่างเพื่อการจัดจำหน่ายเชิงพาณิชย์
Adiz.setTestMode(true);

// เปิดใช้งานการบันทึกสำหรับโมดูล Hive Adiz การบันทึกควรใช้เฉพาะในโหมดทดสอบ เท่านั้น คอมเมนต์บรรทัดด้านล่างสำหรับการจัดจำหน่ายเชิงพาณิชย์。
Adiz.setLogEnable(true);

การแสดงโฆษณาอุปกรณ์ทดสอบ

ในสถานการณ์ต่อไปนี้ คุณต้องลงทะเบียนอุปกรณ์ทดสอบเพื่อแสดงโฆษณาทดสอบ

  • เมื่อตรวจสอบว่า AdMob ad key ที่ลงทะเบียนในคอนโซลทำงานได้อย่างถูกต้อง
  • เมื่อลงข้อความ GDPR และตรวจสอบว่า GDPR consent popup ทำงานได้อย่างถูกต้อง
  • เมื่อตรวจสอบ ad inspector เพื่อวิเคราะห์และแก้ไขปัญหาคำขอแอด

    <

มีสองวิธีในการแสดงโฆษณาบนอุปกรณ์ทดสอบ.

  • หลังจากลงทะเบียนอุปกรณ์ทดสอบในคอนโซล Hive ให้ตั้งค่าเป็น ใช้หมายเลข ID หน่วยโฆษณา (แนะนำ):
    โปรดดูที่ส่วน การจัดการอุปกรณ์ทดสอบ ของคู่มือคอนโซล.

  • ใช้ Adiz คลาส's setTestDevice() วิธีการ:
    ดูที่ โค้ดตัวอย่าง ด้านล่าง.

Note

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


แบนเนอร์, โฆษณาแบบเต็มหน้าจอ, หรือโฆษณาที่ให้รางวัล


การโฆษณาแบบเนทีฟ


การใช้วิธี Adiz.setTestDevice()

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

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

    ใช้ใหม่
    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 ที่มีอยู่ ใส่ ID อุปกรณ์ทดสอบที่คัดลอกมาใน DEVICE_ID

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


fun initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231")

        Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                override fun onComplete(error: AdizError, jsonData: JSONObject?) {
                        // ... omitted
                }
        })
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import org.json.JSONObject;


public void initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... omitted
                        }
                }
        });
}


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


public void initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... omitted
                        }
                }
        });
}


การใช้งาน Ad Inspector

Ad Inspector เป็นเครื่องมือแบบ overlay ในแอปที่วิเคราะห์กระบวนการขอและแสดงโฆษณาจริงบนอุปกรณ์ทดสอบแบบเรียลไทม์ มันจะแจ้งให้คุณทราบถึงเวลาที่ใช้ในการโหลดโฆษณา และหากการแสดงผลล้มเหลว จะให้เหตุผลสำหรับความล้มเหลว คุณยังสามารถระบุเครือข่ายโฆษณาเฉพาะเพื่อตรวจสอบว่าโฆษณาแสดงผลอย่างถูกต้องหรือไม่ และหากมีปัญหา คุณสามารถดีบักที่ระดับโค้ด ทั้งหมดนี้ทำควบคู่ไปกับ UI ของ Ad Inspector มันรวมอยู่ใน Google Mobile Ads SDK เวอร์ชัน 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 (General Data Protection Regulation) ป๊อปอัพการยินยอมตาม GDPR จะถูกแสดงเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์ของผู้ใช้มาจากยุโรปและสหราชอาณาจักร (EEA & UK) Adiz รองรับการแสดงป๊อปอัพการยินยอมตาม GDPR ผ่าน Google UMP (User Messaging Platform) หลังจากสร้างข้อความ GDPR ในคอนโซล AdMob ให้เริ่มต้น Adizเพื่อแสดงป๊อปอัพ GDPR ให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร

Warning

หากคุณกำลังมุ่งเป้าไปยังภูมิภาคนอกยุโรปและสหราชอาณาจักร เช่น หากคุณวางแผนที่จะให้บริการเฉพาะในประเทศ คุณสามารถข้ามขั้นตอน การเปิดเผยป๊อปอัปความยินยอม GDPR (ยุโรป, สหราชอาณาจักร) และดำเนินการเริ่มต้นด้วยวิธี Adiz.initializeForNonGDPR() ได้
หากคุณใช้วิธี Adiz.initialize() สำหรับการเริ่มต้น คุณต้องเขียนข้อความ GDPR ในคอนโซล AdMob เพื่อให้การเริ่มต้น Adiz ดำเนินไปตามปกติ

การสร้างข้อความ GDPR

1) เข้าถึงแดชบอร์ด Google AdMob และสร้างข้อความ GDPR ของคุณ ก่อนที่จะสร้างข้อความ GDPR โปรดดูที่ คู่มือการสร้างข้อความ GDPR.

เมื่อสร้างข้อความ GDPR คุณต้องเพิ่มการไกล่เกลี่ยที่คุณต้องการใช้ลงในรายการพันธมิตรโฆษณา นี่คือวิธีการเพิ่มการไกล่เกลี่ย.

1) ไปที่แท็บ ความเป็นส่วนตัวและการส่งข้อความ > ระเบียบข้อบังคับของยุโรป > การตั้งค่า บนแดชบอร์ด Google AdMob จากนั้นคลิกที่ไอคอนแก้ไขสำหรับ 'การตรวจสอบพันธมิตรโฆษณา > พันธมิตรโฆษณาที่กำหนดเอง 2) ตรวจสอบพันธมิตรการจัดการทั้งหมดที่ได้รับการรับรองโดย Google ภายใต้ GDPR เพื่อเพิ่มในกลุ่ม หรือเลือกเฉพาะพันธมิตรการจัดการที่ต้องการและคลิก เพิ่ม.

หากคุณได้เขียนข้อความ GDPR แล้ว ป๊อปอัปการยินยอม GDPR จะปรากฏขึ้นโดยอัตโนมัติเมื่อคุณ เริ่มต้น Adiz.

การดำเนินการฟังก์ชันการยินยอม/ถอนการยินยอมของ GDPR

รายการในป๊อปอัปการยินยอมของ GDPR จะต้องให้ผู้ใช้มีความสามารถในการปรับเปลี่ยนสถานะการยินยอมของตนได้ตลอดเวลา ตัวอย่างเช่น ผู้ใช้อาจไม่ยินยอมต่อ GDPR ในตอนแรก แต่ต่อมาอาจต้องการยินยอมอีกครั้งเพื่อดูโฆษณาที่ปรับให้เหมาะสม หรือในทางกลับกัน ผู้ใช้อาจยินยอมต่อ GDPR ในตอนแรก แต่ต่อมาอาจต้องการถอนการยินยอมเพราะไม่ต้องการให้ข้อมูลส่วนบุคคลอีกต่อไป เพื่อจัดการกับสถานการณ์เหล่านี้ นักพัฒนาแอปต้องดำเนินการฟังก์ชันที่อนุญาตให้ผู้ใช้ยินยอมอีกครั้งต่อแต่ละรายการหรือถอนการยินยอมที่มีอยู่ของตน เพื่อดำเนินการฟังก์ชันการยินยอม/ถอนการยินยอมของ GDPR ให้ทำตามขั้นตอนเหล่านี้

  1. สร้าง UI ปุ่มในแอปที่สามารถเปิดหน้าต่างการยินยอม GDPR ใหม่ได้
  2. เมื่อทำการติดตั้ง การเริ่มต้น Adiz ให้เรียก isPrivacyOptionsRequired() เพื่อแสดง UI ปุ่มดังกล่าวให้กับผู้ใช้ที่เข้าถึงจากยุโรปและสหราชอาณาจักร และไม่แสดงในกรณีอื่น หากผู้ใช้ที่เข้าถึงจากยุโรปหรือสหราชอาณาจักรกดปุ่ม ให้เรียก showPrivacyOptionsForm เพื่อเปิดหน้าต่างการยินยอม GDPR ใหม่ นี่จะช่วยให้ผู้ใช้สามารถปรับเปลี่ยนการยินยอมสำหรับรายละเอียด GDPR ได้ทุกเมื่อโดยการกดปุ่มเช่น "จัดการตัวเลือก" ในแอป showPrivacyOptionsForm ด้านล่างเป็นวิธีการที่ถูกนำไปใช้แบบสุ่มเพื่อเป็นตัวอย่าง และนักพัฒนาสามารถเปลี่ยนแปลงการใช้งานได้ตามต้องการ
    import com.hive.Adiz
    import com.hive.adiz.AdizError
    import com.hive.AdizConsentManager
    import org.json.JSONObject

    fun initialize() {
            // ...
            Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                    override fun onComplete(error: AdizError, jsonData: JSONObject?) {

                            if(error.isSuccess) {
                                    // ... ถูกละเว้น
                                    // ตัดสินใจว่าจะแสดงปุ่มในแอปเพื่อเปิดหน้าต่างการยินยอม GDPR อีกครั้งหรือไม่
                                    var isPrivacyOptionsRequired = AdizConsentManager.isPrivacyOptionsRequired()
                                    if(isPrivacyOptionsRequired) {
                                            // แสดงปุ่มในแอป (เมื่อคลิกปุ่ม จะเรียก showPrivacyOptionsForm() เพื่อแสดงหน้าต่างการยินยอม GDPR)
                                            showGDPRConsentPopupButton()
                                    } else {
                                            // ไม่แสดงปุ่มในแอป
                                            // การประมวลผลอื่น ๆ ที่แอปต้องการ
                                    }
                            }
                    }
            })
    }


    fun showPrivacyOptionsForm(activity: Activity) {

            // แบบฟอร์มตัวเลือกความยินยอม GDPR
            if(AdizConsentManager.isPrivacyOptionsRequired()) {
                    AdizConsentManager.showPrivacyOptionsForm(activity, object : AdizConsentManager.ConsentListener {
                            override fun onResult(error: AdizError) {
                                    addLog("AdizConsentManager.showPrivacyOptionsForm() errorCode : ${error.getCode()}, errorMessage : ${error.getMessage()}}\n")
                                    // ไม่จำเป็นต้องจัดการกับข้อผิดพลาดใดๆ
                            }
                    })
            }
    }
    import com.hive.adiz.Adiz;
    import com.hive.adiz.AdizError;
    import com.hive.AdizConsentManager;
    import org.json.JSONObject;


    public void initialize() {
Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
    @Override
    public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

        if(error.isSuccess()) {
            // ... omitted
            // Decide whether to display a button in the app to reopen the GDPR consent popup
            boolean isPrivacyOptionsRequired = AdizConsentManager.isPrivacyOptionsRequired();
            if(isPrivacyOptionsRequired) {
                // Display the button in the app. (When the button is clicked, showPrivacyOptionsForm() is called to display the GDPR consent popup)
                showGDPRConsentPopupButton();
            } else {
                // Do not display the button in the app.
                // Other processing as desired by the app.
            }
        }
    }
    });
    }


    public void showPrivacyOptionsForm(Activity activity) {
            // เรียกแบบฟอร์มตัวเลือกความยินยอม GDPR
            if(AdizConsentManager.isPrivacyOptionsRequired()) {
                    AdizConsentManager.showPrivacyOptionsForm(activity, new AdizConsentManager.ConsentListener() {
                            @Override
                            public void onResult(@NonNull AdizError error) {
                                    // ไม่จำเป็นต้องจัดการข้อผิดพลาดใดๆ
                            }
                    });
            }
    }

การตั้งค่าแท็กสำหรับผู้ใช้ที่มีอายุต่ำกว่าความยินยอมของ GDPR (TFUA)

คุณสามารถใช้แท็กสำหรับผู้ที่อายุต่ำกว่าความยินยอม (TFUA) เพื่อจัดการผู้ใช้ที่อาศัยอยู่ในเขตเศรษฐกิจยุโรป (EEA), สหราชอาณาจักร, และสวิตเซอร์แลนด์เป็นผู้ที่มีการประมวลผลข้อมูลที่จำกัดเมื่อทำการขอการโฆษณา สำหรับแอปที่มุ่งเป้าไปที่เด็ก คุณสามารถตั้งค่าผู้ใช้ให้ต่ำกว่าความยินยอมโดยใช้ AdizConsentManager.setUserPrivacySettings ในขณะที่มีความแตกต่างบางประการระหว่างประเทศในยุโรป GDPR กำหนดอายุที่ต้องการความยินยอมจากผู้ปกครองไว้ที่ต่ำกว่า 16 ปี การตั้งค่าต่ำกว่าความยินยอมต้องถูกกำหนดก่อนที่จะดำเนินการ Adiz.initialize

Warning

การตั้งค่าแท็กความยินยอมของผู้เยาว์ตาม GDPR setTagForUnderAgeOfConsent และการตั้งค่าการรักษาที่มุ่งเป้าไปที่เด็กตาม COPPA setTagForChildDirectedTreatment เป็น true พร้อมกันจะส่งผลให้การตั้งค่าการรักษาที่มุ่งเป้าไปที่เด็กตาม COPPA setTagForChildDirectedTreatment มีความสำคัญมากกว่า ดังนั้นโปรดอย่าตั้งค่าทั้งสองเป็น true และใช้พร้อมกัน

Note

เมื่อใช้ Hive SDK v4 24.2.0 หรือสูงกว่าร่วมกับ Adiz 2.0.1 หรือสูงกว่า อายุที่ตั้งค่าความยินยอมใน Hive SDK จะถูกนำไปใช้โดยอัตโนมัติสำหรับผู้ใช้ที่อายุต่ำกว่าที่กำหนด

อย่างไรก็ตาม หากผู้ใช้เรียกใช้ API AdizConsentManager.setUserPrivacySettings โดยตรงก่อนที่จะดำเนินการ Adiz.initialize การตั้งค่าอายุความยินยอมที่ตั้งโดย Hive SDK จะไม่ถูกนำไปใช้ และค่าที่ตั้งไว้ในระหว่างการเรียก API AdizConsentManager.setUserPrivacySettings จะมีความสำคัญมากกว่า

 

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

fun initialize() {

        val isUnderAgeForGDPR = false // เปลี่ยนเป็น true หากเป็นเด็ก

        val settings = PrivacySettings.Builder()
                .setTagForUnderAgeOfConsent(isUnderAgeForGDPR)
                .build()
        AdizConsentManager.setUserPrivacySettings(settings)

        Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                override fun onComplete(error: AdizError, jsonData: JSONObject?) {
                        // ... omitted
                }
        })
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import com.hive.adiz.consent.PrivacySettings;
import org.json.JSONObject;


public void initialize() {

        boolean isUnderAgeForGDPR = false; // Change to true if a child

        PrivacySettings settings = new PrivacySettings.Builder()
                        .setTagForUnderAgeOfConsent(isUnderAgeForGDPR)
                        .build();
        AdizConsentManager.setUserPrivacySettings(settings);

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... omitted
                        }
                }
        });
}

การตั้งค่าอุปกรณ์ทดสอบ GDPR

ป๊อปอัปการยินยอม GDPR จะแสดงเฉพาะเมื่อที่อยู่ IP ของอุปกรณ์มาจากยุโรปหรือสหราชอาณาจักร ในระยะการพัฒนา ป๊อปอัปการยินยอม GDPR สามารถแสดงได้โดยบังคับไม่คำนึงถึงที่อยู่ IP เพื่อทดสอบการแสดงป๊อปอัป และสำหรับสิ่งนี้ ต้องตั้งค่าอุปกรณ์ทดสอบ โดยการตั้งค่าอุปกรณ์ทดสอบในคอนโซล Hive การทดสอบสามารถทำได้อย่างง่ายดาย วิธีการตั้งค่าด้วยวิธี setTestDevice มีดังนี้ และเหมือนกับวิธีการ แสดงโฆษณาบนอุปกรณ์ทดสอบ.

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

    ใช้ 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?) {
                        // ... omitted
                }
        })
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import org.json.JSONObject;


public void initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... omitted
                        }
                }
        });
}

การตั้งค่าแท็กการกำหนดเป้าหมายเด็ก COPPA

ตามพระราชบัญญัติคุ้มครองความเป็นส่วนตัวของเด็กทางออนไลน์ (COPPA) นักพัฒนาแอปสามารถกำหนดได้ว่า Google ควรถือว่าคอนเทนต์นั้นเป็นการกำหนดเป้าหมายเด็กโดยการตั้งค่าแท็กการกำหนดเป้าหมายเด็ก (tagForChildDirectedTreatment, TFCD) เมื่อทำการขอโฆษณา หากคุณต้องการให้ถือว่ามันเป็นการกำหนดเป้าหมายเด็ก คุณต้องเรียกใช้ AdizConsentManager.setUserPrivacySettings ก่อนที่จะดำเนินการ Adiz.initialize เมื่อใช้ Adiz กับ SDK ของ Hive แท็กการกำหนดเป้าหมายเด็กจะถูกนำไปใช้โดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องมีการกำหนดค่าเพิ่มเติม

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

fun initialize() {

        val isChildDirectedTreatmentForCOPPA = false // เปลี่ยนเป็น true หากเป็นเด็ก

        val settings = PrivacySettings.Builder()
                .setTagForChildDirectedTreatment(isChildDirectedTreatmentForCOPPA)
                .build()
        AdizConsentManager.setUserPrivacySettings(settings)

        Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                override fun onComplete(error: AdizError, jsonData: JSONObject?) {
                        // ... omitted
                }
        })
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import com.hive.adiz.consent.PrivacySettings;
import org.json.JSONObject;


public void initialize() {

        boolean isChildDirectedTreatmentForCOPPA = false; // Change to true if it is for children

        PrivacySettings settings = new PrivacySettings.Builder()
                        .setTagForChildDirectedTreatment(isChildDirectedTreatmentForCOPPA)
                        .build();
        AdizConsentManager.setUserPrivacySettings(settings);

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... omitted
                        }
                }
        });
}

เพิ่มการจัดการโฆษณา

Adiz สามารถแสดงโฆษณาโดยใช้การจัดการโฆษณาของ AdMob ได้ เพื่อเพิ่มการจัดการโฆษณาของ AdMob ให้ทำตามขั้นตอนด้านล่าง

การเพิ่มการจัดการ AdMob

เราจะดำเนินการรวมแหล่งโฆษณาในคอนโซล AdMob โปรดทำตามตารางด้านล่างเพื่อดำเนินการต่อ

AppLovin Liftoff Monetize Meta Audience Network Pangle Unity Ads ironSource
ขั้นตอนที่ 1 ตั้งค่าคอนฟิก AppLovin ตั้งค่าคอนฟิก Liftoff Monetize ตั้งค่าคอนฟิก Meta Audience Network ตั้งค่าคอนฟิก Pangle ตั้งค่าคอนฟิก Unity Ads ตั้งค่าคอนฟิก ironSource
ขั้นตอนที่ 2 เพิ่มแหล่งโฆษณา AppLovin ลงใน AdMob เพิ่มแหล่งโฆษณา Liftoff Monetize ลงใน AdMob เพิ่มแหล่งโฆษณา Meta Audience Network ลงใน AdMob เพิ่มแหล่งโฆษณา Pangle ลงใน AdMob เพิ่มแหล่งโฆษณา Unity Ads ลงใน AdMob เพิ่มแหล่งโฆษณา ironSource ลงใน AdMob
ขั้นตอนที่ 3 เพิ่ม Adiz adapter

การเพิ่มอะแดปเตอร์ Adiz

เพิ่มการพึ่งพาห้องสมุดไปยัง build.gradle ระดับแอป

dependencies {
    // ... (생략)

    implementation 'com.com2us.android.adiz:hive-adiz:2.1.3' // 공통 (필수 추가)

    implementation 'com.com2us.android.adiz:hive-adiz-adapter-applovin:2.1.3'   // AppLovin 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-liftoff:2.1.3'    // Liftoff Monetize 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-meta:2.1.3'       // Meta Audience Network 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-pangle:2.1.3'     // Pangle 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-unityads:2.1.3'   // Unity Ads 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-ironsource:2.1.3' // ironSource 연동시 추가
}

 

เพิ่มโค้ดการกำหนดค่าตามเวอร์ชัน Gradle ที่ใช้เมื่อรวม Pangle หรือ ironSource.

  • หากคุณกำลังใช้ Gradle 7.0 หรือสูงกว่า ให้เพิ่มการตั้งค่า repository ในส่วน dependencyResolutionManagement ของไฟล์ settings.gradle ระดับโปรเจกต์

    // เมื่อใช้ Gradle 7.0 หรือสูงกว่า ให้กำหนดค่า settings.gradle
    
    dependencyResolutionManagement {
            repositories {
                    maven { url 'https://artifact.bytedance.com/repository/pangle/' }   // Add when integrating Pangle
            maven { url 'https://android-sdk.is.com/' }                         // Add when integrating ironSource
            }
    }
    
  • หากคุณกำลังใช้ Gradle เวอร์ชันต่ำกว่า 7.0 ให้เพิ่มการตั้งค่า repository ในระดับโปรเจกต์ในส่วน build.gradle allprojects

    // Configuration for build.gradle when using Gradle version below 7.0
    
    allprojects {
            repositories {
                    maven {
                            url 'https://artifact.bytedance.com/repository/pangle'  // Add when integrating Pangle
                url 'https://android-sdk.is.com/'                       // Add when integrating ironSource
                    }
    
            }
    }
    

 

เพื่อตรวจสอบว่าการกำหนดค่าของอะแดปเตอร์ Adiz ได้ถูกนำไปใช้ถูกต้องหรือไม่ ให้เรียกใช้แอปและตรวจสอบรายการการกำหนดค่าบนหน้าจอ Ad Inspector.

การเริ่มต้น Adiz

นี่เป็นขั้นตอนที่จำเป็นต้องดำเนินการก่อนการแสดงโฆษณาทุกประเภท โดยการเริ่มต้น Adiz คุณจะได้รับกุญแจโฆษณาที่จำเป็นสำหรับการแสดงโฆษณา หากคุณเปิดใช้งานโหมดทดสอบ คุณจะได้รับกุญแจทดสอบ หากคุณกำลังใช้ SDK ของ Hive ให้ดำเนินการเริ่มต้น Adiz หลังจากเรียกใช้ AuthV4.setup

val sdkInitializationListener = object : Adiz.SdkInitializationListener {
    override fun onComplete(error: AdizError, jsonData: JSONObject?) {
        Log.d(TAG, "Adiz initialize complete. error code : ${error.getCode()}, message : ${error.getMessage()}, data : $jsonData")
        if(error.isSuccess) {
            if(jsonData != null) {

                var interstitialKeyList = ArrayList<String>()
                var bannerKeyList = ArrayList<String>()
                var nativeKeyList = ArrayList<String>()
                var rewardedKeyList = ArrayList<String>()
                var rewardedInterstitialKeyList = ArrayList<String>()
                var appOpenKeyList = ArrayList<String>()

                พยายาม {
                    var keysArr = jsonData.getJSONArray("keys")
                    for (i in 0 until keysArr.length()) {
                        var unit = keysArr.optJSONObject(i) 

                        // ตัวอย่างของการสร้างรายการของกุญแจที่ is_default เป็น false หากคุณป้อนกุญแจโฆษณาโดยตรงในเกม
                        if (unit.optBoolean("is_default").not()) {

                            var hiveAdKey = unit.optString("key")
                            when (unit.optString("form")) {
                                "interstitial" -> interstitialKeyList.add(hiveAdKey)
                                "banner" -> bannerKeyList.add(hiveAdKey)
                                "native" -> nativeKeyList.add(hiveAdKey)
                                "rewarded" -> rewardedKeyList.add(hiveAdKey)
                                "rewarded_interstitial" -> rewardedInterstitialKeyList.add(hiveAdKey)
                                "app_open" -> appOpenKeyList.add(hiveAdKey)
                            }
                        }
                    }

                    println("interstitialKeyList $interstitialKeyList")
                    println("bannerKeyList $bannerKeyList")
                    println("nativeKeyList $nativeKeyList")
                    println("rewardedKeyList $rewardedKeyList")
                    println("rewardedInterstitialKeyList $rewardedInterstitialKeyList")
                    println("appOpenKeyList $appOpenKeyList")

                } catch (e: JSONException) {
                    //...
                }
            }
        }
    }
}

fun initAdiz() {
    // General initialization
    Adiz.initialize(activity, sdkInitializationListener)
}

fun initAdizForNonGDPR() {
    // ในกรณีที่ไม่ได้จัดการกับการปฏิบัติตาม GDPR
    Adiz.initializeForNonGDPR(activity, sdkInitializationListener)
}
Adiz.SdkInitializationListener sdkInitializationListener = new Adiz.SdkInitializationListener() {
    @Override
    public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

        if(error.isSuccess()) {
            if(jsonData != null) {
                ArrayList interstitialKeyList = new ArrayList<String>();
                ArrayList bannerKeyList = new ArrayList<String>();
                ArrayList nativeKeyList = new ArrayList<String>();
                ArrayList rewardedKeyList = new ArrayList<String>();
                ArrayList rewardedInterstitialKeyList = new ArrayList<String>();
                ArrayList appOpenKeyList = new ArrayList<String>();

                ลอง {
                    JSONArray keysArr = jsonData.optJSONArray("keys");
                    for(int i = 0; i < keysArr.length(); i++) {
                        JSONObject unit = keysArr.optJSONObject(i);

                        if(unit.optBoolean("is_default") == false) {
                            String hiveAdKey = unit.optString("key");
                            String form = unit.optString("form");
                            switch (form) {
                                case "interstitial":
                                    interstitialKeyList.add(hiveAdKey);
                                    break;
                                case "banner":
                                    bannerKeyList.add(hiveAdKey);
                                    break;
                                case "native":
                                    nativeKeyList.add(hiveAdKey);
                                    break;
                                case "rewarded":
                                    rewardedKeyList.add(hiveAdKey);
                                    break;
                                case "rewarded_interstitial":
                                    rewardedInterstitialKeyList.add(hiveAdKey);
                                    break;
                                case "app_open":
                                    appOpenKeyList.add(hiveAdKey);
                                    break;
                            }
                        }
                    }

                    System.out.println("interstitialKeyList " + interstitialKeyList);
                    System.out.println("bannerKeyList " + bannerKeyList);
                    System.out.println("nativeKeyList " + nativeKeyList);
                    System.out.println("rewardedKeyList " + rewardedKeyList);
                    System.out.println("rewardedInterstitialKeyList " + rewardedInterstitialKeyList);
                    System.out.println("appOpenKeyList " + appOpenKeyList);

                } catch (Exception e) {

                }
            }
        }
    }
};

void initAdiz() {
    // General initialization
    Adiz.initialize(activity, sdkInitializationListener);
}

void initAdizForNonGDPR() {
    // If not responding to GDPR
    Adiz.initializeForNonGDPR(activity, sdkInitializationListener);
}

 

ไฟล์ JSON ที่ได้รับเป็นการเรียกกลับเมื่อทำการเริ่มต้นประกอบด้วยรายการของคีย์โฆษณา รายการของคีย์โฆษณามีรูปแบบดังต่อไปนี้

    {
        "keys":[
            {
                "mediation_id":5,
                "key":"ca-app-pub-3940256099942544/5354046379",
                "form":"rewarded_interstitial",
                "is_default":true,
                "placement_id":"lobby01"
            },
            {
                "mediation_id":4,
                "key":"ca-app-pub-3940256099942544/5224354917",
                "form":"rewarded",
                "is_default":true,
                "placement_id":"game02"
            },
            {
                "mediation_id":3,
                "key":"ca-app-pub-3940256099942544/2247696110",
                "form":"native",
                "is_default":true,
                "placement_id":"event01"
            },
            {
                "mediation_id":1,
                "key":"ca-app-pub-3940256099942544/1033173712",
                "form":"interstitial",
                "is_default":true,
                "placement_id":"mission01"
            },
            {
                "mediation_id":2,
                "key":"ca-app-pub-3940256099942544/6300978111",
                "form":"banner",
                "is_default":true,
                "placement_id":"main01"
            },
            {
                "mediation_id":6,
                "key":"ca-app-pub-3940256099942544/9257395921",
                "form":"app_open",
                "is_default":true,
                "placement_id":"appopen01"
            }
        ]
    }

 

เมื่อเริ่มต้นในโหมดทดสอบ คุณจะได้รับรายการของกุญแจโฆษณาทดสอบแม้ว่าคุณจะยังไม่ได้ลงทะเบียนกุญแจโฆษณา AdMob ในคอนโซล Hive เมื่อเริ่มต้นในโหมดการผลิต คุณจะได้รับรายการของกุญแจโฆษณา AdMob ที่ลงทะเบียนในคอนโซล Hive

สำหรับแต่ละประเภทของโฆษณา (form), โฆษณาหนึ่งรายการจะถูกใช้เป็น โฆษณาเริ่มต้น (โฆษณาที่มี "is_default":true). เมื่อทำการลงทะเบียนประเภทโฆษณาเป็นครั้งแรก, โฆษณาที่ลงทะเบียนในเบื้องต้นจะกลายเป็นโฆษณาเริ่มต้น. โฆษณาเริ่มต้นไม่จำเป็นต้องกรอกคีย์โฆษณา (hiveAdKey) เมื่อสร้างอินสแตนซ์โฆษณา (initialize()). เพื่อเปลี่ยนโฆษณาเริ่มต้น, คุณต้องลบโฆษณาเริ่มต้นที่มีอยู่จากคอนโซล Hive และลงทะเบียนโฆษณาใหม่.

การตั้งค่าตัวฟังการเรียกกลับโฆษณา

โดยการใช้ AdizListener เมื่อสร้างอินสแตนซ์โฆษณาแต่ละตัว คุณสามารถรับการเรียกกลับตามการเปลี่ยนแปลงในสถานะโฆษณา。

ชื่อ คำอธิบาย การใช้งานที่จำเป็น
onLoad() การโหลดโฆษณาสำเร็จ O
onFail(error: AdizError) ความล้มเหลว (เหตุผลของความล้มเหลวสามารถทราบได้จาก error.getCode() และ error.getMessage()) O
onShow() การแสดงโฆษณาสำเร็จ O
onClick() การคลิกโฆษณา O
onPaidEvent(adRevenueData: AdRevenueData) จุดเวลาเมื่อได้รับเหตุการณ์ที่ชำระเงินหลังจากการแสดงโฆษณา ข้อมูลรายได้จากโฆษณาจะถูกจัดเตรียม O
onClose() สิ้นสุดโฆษณา
  • หลังจากที่โฆษณาสิ้นสุดลง เพื่อแสดงโฆษณาเดียวกันอีกครั้ง ต้องเรียก 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) {     
        // ถูกเรียกเมื่อมีรายได้เกิดขึ้นจากโฆษณา.

        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) {
        // Called when a reward occurs for watching the ad in rewarded, rewarded interstitial ads.
        String rewardType = rewardItem.getItemType(); // Reward item type
        int rewardAmount = rewardItem.getItemAmount(); // Reward item quantity
    }
};

รหัสข้อผิดพลาด

เมื่อได้รับ onFail() ใน Adiz.Initialize และ AdizListener รหัสข้อผิดพลาด AdizError และข้อความข้อผิดพลาดมีดังนี้

รหัสทั่วไป

หมายเลข กรณี คำอธิบาย
0 สำเร็จ สำเร็จ

รหัสข้อผิดพลาด Adiz

หมายเลข กรณี คำอธิบาย
-1 InvalidParam พารามิเตอร์ไม่ถูกต้อง
-2 NotSupported ไม่รองรับ
-3 InProgress กำลังดำเนินการ
-4 Network ข้อผิดพลาดเครือข่าย
-5 NeedInitialize ต้องการการเริ่มต้น
-6 ResponseFail การตอบสนองล้มเหลว
-7 Timeout หมดเวลาเครือข่าย
-99 Unknown ข้อผิดพลาดที่ไม่รู้จัก

รหัสข้อผิดพลาดแพลตฟอร์มโฆษณา

หมายเลข กรณี คำอธิบาย
-101 NeedLoad โฆษณาไม่โหลด
-102 NeedReload ต้องโหลดใหม่เนื่องจากเวลาการแสดงโฆษณาหมดอายุ
-103 NotEnoughInventory การตอบสนองของการจัดการสำเร็จ แต่ไม่มีโฆษณาที่เติมเต็มเนื่องจากขาดแคลนสินค้า
-104 MissingAppId ข้อผิดพลาด AppID สำหรับคำขอการจัดการ
-105 InternalNetworkError ข้อผิดพลาดที่เกี่ยวข้องกับเครือข่ายการจัดการ
-106 InvalidUnitId รหัสหน่วยไม่ถูกต้อง
-107 MediationNoFill ตัวปรับการจัดการล้มเหลวในการประมวลผลคำขอโฆษณา
-108 AlreadyLoaded อยู่ในสถานะที่โหลดแล้ว
-109 CannotRequestAds ไม่สามารถขอโฆษณาได้
-201 GdprConsentError ข้อผิดพลาดการยินยอม GDPR
-202 IsNotPrivacyOptionsRequired ไม่สามารถแสดงป๊อปอัปการยินยอม GDPR หรือไม่จำเป็นต้องแสดง

การแสดงโฆษณาและการยุติโฆษณา

ในการแสดงและยุติโฆษณา ให้ทำตามขั้นตอนเหล่านี้

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

โฆษณาแบบแทรก

นี่คือโฆษณาแบบเต็มหน้าจอที่ใช้พื้นที่ทั้งหน้าจอ.

import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizInterstitial
import com.hive.adiz.common.AdRevenueData

class InterstitialExample : Activity() {

    var interstitialAd: AdizInterstitial? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // ...

        // requestInitAd(this)
    }

    val adizListener = object : AdizListener() {
        override fun onLoad() {
            // requestShowAd()
        }

        override fun onFail(loadError: AdizError) {
            var code = loadError.getCode() // error code
            var message = loadError.getMessage() // error message
        }

        override fun onShow() {
            //
        }

        override fun onClick() {
            //
        }

        override fun onPaidEvent(adRevenueData: AdRevenueData) {
            var revenue = adRevenueData.revenue // revenue when ad is exposed
            var currency = adRevenueData.currency // currency code for revenue when ad is exposed
        }

        override fun onClose() {
            // requestDestroyAd()
        }
    }

    fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

        if(hiveAdKey.isNullOrEmpty()) {
            // สร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอ
            interstitialAd = AdizInterstitial.initialize(activity, adizListener)
        } else {
            // คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอโดยการป้อน hiveAdKey
            interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener)
        }

        // requestLoadAd()
    }

    fun requestInitAdWithPlacementid(activity: Activity, placementId: String? = null) {

        if(placementId.isNullOrEmpty()) {
            // สร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอ
            interstitialAd = AdizInterstitial.initialize(activity, adizListener)
        } else {
            // คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอโดยการป้อน placementId
            interstitialAd = AdizInterstitial.initializeWithPlacementId(activity, placementId, adizListener)
        }

        // requestLoadAd()
    }

    fun requestLoadAd() {
        // โหลดโฆษณาข้ามหน้าจอ
        interstitialAd?.let { 
            if(it.isInitialized()) it.load()
        }
    }

    fun requestShowAd() {
        // แสดงโฆษณาแบบเต็มจอ
        interstitialAd?.let { 
            if(it.isLoaded()) it.show()
        }
    }

    fun requestDestroyAd() {
        // ลบโฆษณาแบบเต็มหน้าจอ
        interstitialAd?.destroy()
    }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizInterstitial;
import com.hive.adiz.common.AdRevenueData;

public class InterstitialExample extends Activity {

    AdizInterstitial interstitialAd = null;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //...

        // requestInitAd(this, null);
    }

    AdizListener adizListener = new AdizListener() {
        @Override
        public void onLoad() {
            // requestShowAd();
        }

        @Override
        public void onFail(@NonNull AdizError loadError) {
            int code = loadError.getCode(); // รหัสข้อผิดพลาด
            String message = loadError.getMessage(); // ข้อความข้อผิดพลาด
        }

        @Override
        public void onShow() {

        }

        @Override
        public void onClick() {
            //
        }

        @Override
        public void onClose() {
            // requestDestroyAd();
        }

        @Override
        public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
            double revenue = adRevenueData.getRevenue(); // revenue when ad is exposed
            String currency = adRevenueData.getCurrency(); // currency code for revenue when ad is exposed
        }
    };

    public void requestInitAd(Activity activity, String hiveAdKey) {

        if(TextUtils.isEmpty(hiveAdKey)) {
            // สร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอ
            interstitialAd = AdizInterstitial.initialize(activity, adizListener);
        } else {
            // คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเต็มหน้าจอโดยการป้อน hiveAdKey
            interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener);
        }

        // requestLoadAd();
    }

    public void requestInitAdWithPlacementId(Activity activity, String placementId) {

        if(TextUtils.isEmpty(placementId)) {
            // สร้างอินสแตนซ์โฆษณาแบบเต็มจอ
            interstitialAd = AdizInterstitial.initialize(activity, adizListener);
        } else {
            // คุณสามารถสร้างอินสแตนซ์โฆษณาแบบเต็มจอโดยการป้อน placementId
            interstitialAd = AdizInterstitial.initializeWithPlacementId(activity, placementId, adizListener);
        }

        // requestLoadAd();
    }

    private void requestLoadAd() {
        // โหลดโฆษณาแบบเต็มจอ
        if(interstitialAd != null && interstitialAd.isInitialized()) interstitialAd.load();
    }

    private void  requestShowAd() {
        // แสดงโฆษณาแบบเต็มหน้าจอ
        if(interstitialAd != null && interstitialAd.isLoaded()) interstitialAd.show();
    }

    private void  requestDestroyAd() {
        // ลบโฆษณาแบบเต็มหน้าจอ
        if(interstitialAd != null) interstitialAd.destroy();
    }
}

นี่คือโฆษณาแบนเนอร์ที่แสดงแบนเนอร์ขนาดเฉพาะ โฆษณาแบนเนอร์จะไม่ได้รับการเรียกคืน onClose() ดังนั้นคุณต้องเรียก destroy() จากตำแหน่งอื่นเพื่อยุติโฆษณา

 

BannerSize ปฏิบัติตามขนาดแบนเนอร์มาตรฐาน.

ขนาดคะแนน (ความกว้าง x ความสูง) คำอธิบาย อุปกรณ์ที่รองรับ ค่าคงที่ขนาดแบนเนอร์
320x50 แบนเนอร์ โทรศัพท์มือถือและแท็บเล็ต BannerSize.NORMAL
320x100 แบนเนอร์ขนาดใหญ่ โทรศัพท์มือถือและแท็บเล็ต BannerSize.MEDIUM
300x250 IAB ขนาดกลางสี่เหลี่ยมผืนผ้า โทรศัพท์มือถือและแท็บเล็ต BannerSize.LARGE
468 x 60 IAB แบนเนอร์ขนาดเต็ม แท็บเล็ต BannerSize.FULL

 

PositionType คือด้านบนสุดหรือล่างสุด ค่าเริ่มต้นคือด้านล่างสุด.

การจัดตำแหน่ง คำอธิบาย ค่าคงที่ประเภทตำแหน่ง
การจัดตำแหน่งด้านบน กำหนดการจัดตำแหน่งที่ด้านบนของหน้าจอ PositionType.TOP
การจัดตำแหน่งด้านล่าง (ค่าเริ่มต้น) กำหนดการจัดตำแหน่งที่ด้านล่างของหน้าจอ PositionType.BOTTOM
import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizBanner
import com.hive.adiz.common.AdRevenueData
import com.hive.adiz.common.BannerSize
import com.hive.adiz.common.PositionType

class BannerExample : Activity() {

    var banner: AdizBanner? = null

    // ตั้งค่าขนาดแบนเนอร์
    var bannerSize = BannerSize.NORMAL

    override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)

            // ...

            // requestInitAd(this)
    }

    val adizListener = object : AdizListener() {
        override fun onLoad() {
            // requestShowAd()
        }

        override fun onFail(loadError: AdizError) {
            var code = loadError.getCode() // error code
            var message = loadError.getMessage() // error message
        }

        override fun onShow() {
            //
        }

        override fun onClick() {
            //
        }

        override fun onPaidEvent(adRevenueData: AdRevenueData) {
            var revenue = adRevenueData.revenue // revenue when ad is exposed
            var currency = adRevenueData.currency // currency code for revenue when ad is exposed
        }
    }

    fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

        if(hiveAdKey.isNullOrEmpty()) {
            // สร้างตัวอย่างโฆษณาแบนเนอร์
            banner = AdizBanner.initialize(activity, bannerSize, adizListener)
        } else {
            // คุณสามารถสร้างตัวอย่างโฆษณาแบนเนอร์โดยการป้อน hiveAdKey
            banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener)
        }

        // requestLoadAd()
    }

    fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {

        if(placementId.isNullOrEmpty()) {
            // สร้างตัวอย่างโฆษณาแบนเนอร์
            banner = AdizBanner.initialize(activity, bannerSize, adizListener)
        } else {
            // คุณสามารถสร้างตัวอย่างโฆษณาแบนเนอร์โดยการป้อน placementId
            banner = AdizBanner.initializeWithPlacementId(activity, placementId, bannerSize, adizListener)
        }

        // requestLoadAd()
    }

    fun requestLoadAd() {
        // โหลดโฆษณาแบนเนอร์
        banner?.let { 
            if(it.isInitialized()) it.load()
        }
    }

    fun requestShowAd() {
        // แสดงโฆษณาแบนเนอร์
        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() // Error code
                        var message = loadError.getMessage() // Error message
                }

                override fun onShow() {
                        //
                }

                override fun onClick() {
                        //
                }

                override fun onPaidEvent(adRevenueData: AdRevenueData) {
                        var revenue = adRevenueData.revenue // Revenue when ad is shown
                        var currency = adRevenueData.currency // Currency code for revenue when ad is shown
                }
        }

        fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

                if(hiveAdKey.isNullOrEmpty()) {
                        // สร้างอินสแตนซ์โฆษณาเนทีฟ
                        nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
                } else {
                        // คุณสามารถสร้างอินสแตนซ์โฆษณาเนทีฟโดยการป้อน hiveAdKey
                        nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener)
                }

                // requestLoadAd()
        }

        fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {

                if(placementId.isNullOrEmpty()) {
                        // สร้างอินสแตนซ์โฆษณาเนทีฟ
                        nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
                } else {
                        // คุณสามารถสร้างอินสแตนซ์โฆษณาเนทีฟโดยการป้อน placementId
                        nativeAd = AdizNative.initializeWithPlacementId(activity, placementId, bannerSize, adizListener)
                }

                // requestLoadAd()
        }

        fun requestLoadAd() {
                // โหลดโฆษณาท้องถิ่น
                nativeAd?.let { 
                        if(it.isInitialized()) it.load()
                }
        }

        fun requestShowAd() {
                // Expose the native ad.
                nativeAd?.let { 
                        if(it.isLoaded()) it.show()
                }

                // ตั้งค่าตำแหน่งแบนเนอร์
                /* 
                var position = PositionType.TOP
                nativeAd?.let {
                        if(it.isLoaded()) it.show(position)
                } 
                */
        }

        fun requestDestroyAd() {
                // ลบโฆษณาพื้นเมือง
                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(); // Revenue when ad is shown
                        String currency = adRevenueData.getCurrency(); // Currency code for revenue when ad is shown
                }
        };

        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;
                // if(nativeAd != null && nativeAd.isLoaded()) nativeAd.show(position);
        }

        private void  requestDestroyAd() {
                // ลบโฆษณาเนทีฟ
                if(nativeAd != null) nativeAd.destroy();
        }
}

โฆษณาที่ได้รับรางวัล

นี่คือโฆษณาที่ได้รับรางวัลซึ่งผู้ใช้จะได้รับรางวัลสำหรับการดูโฆษณาเป็นระยะเวลาหนึ่ง เมื่อได้รับรางวัล ข้อมูลรายการรางวัลจะถูกส่งผ่านการเรียกกลับ onRewarded()

import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizRewarded
import com.hive.adiz.common.AdRevenueData

class RewardedExample : Activity() {

        var rewardedAd: AdizRewarded? = null

        override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)

                // ...

                // requestInitAd(this)
        }

        val adizListener = object : AdizListener() {
                override fun onLoad() {
                        // requestShowAd()
                }

                override fun onFail(loadError: AdizError) {
                        var code = loadError.getCode() // รหัสข้อผิดพลาด
                        var message = loadError.getMessage() // ข้อความข้อผิดพลาด
                }

                override fun onShow() {
                        //
                }

                override fun onClick() {
                        //
                }

                override fun onPaidEvent(adRevenueData: AdRevenueData) {
                        var revenue = adRevenueData.revenue // Revenue when ad is shown
                        var currency = adRevenueData.currency // Currency code for revenue when ad is shown
                }

                override fun onClose() {
                        // requestDestroyAd()
                }

                override fun onRewarded(rewardItem: RewardItem) {
                        var itemType = rewardItem.itemType // ประเภทของรางวัล
                        var itemAmount = rewardItem.itemAmount // จำนวนของรางวัล
                }
        }

        fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

                if(hiveAdKey.isNullOrEmpty()) {
                        // สร้างอินสแตนซ์โฆษณาที่ได้รับรางวัล
                        rewardedAd = AdizRewarded.initialize(activity, adizListener)
                } else {
                        // คุณสามารถสร้างอินสแตนซ์โฆษณาที่ได้รับรางวัลโดยการป้อน hiveAdKey
                        rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener)
                }

                // requestLoadAd()
        }

        fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {

                if(placementId.isNullOrEmpty()) {
                        // สร้างอินสแตนซ์โฆษณาที่ได้รับรางวัล
                        rewardedAd = AdizRewarded.initialize(activity, adizListener)
                } else {
                        // คุณสามารถสร้างอินสแตนซ์โฆษณาที่ได้รับรางวัลโดยการป้อน placementId
                        rewardedAd = AdizRewarded.initializeWithPlacementId(activity, placementId, adizListener)
                }

                // requestLoadAd()
        }

        fun requestLoadAd() {
                // โหลดโฆษณาที่ได้รับรางวัล
                rewardedAd?.let {
                        if(it.isInitialized()) it.load()
                }
        }

        fun requestShowAd() {
                // แสดงโฆษณาที่ได้รับรางวัล
                rewardedAd?.let {
                        if(it.isLoaded()) it.show()
                }
        }

        fun requestDestroyAd() {
                // Remove the rewarded ad.
                rewardedAd?.destroy()
        }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizRewarded;
import com.hive.adiz.common.AdRevenueData;

public class RewardedExample extends Activity {

        AdizRewarded rewardedAd = null;

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                //...

                // requestInitAd(this, null);
        }

        AdizListener adizListener = new AdizListener() {
                @Override
                public void onLoad() {
                        // requestShowAd();
                }

                @Override
                public void onFail(@NonNull AdizError loadError) {
                        int code = loadError.getCode(); // รหัสข้อผิดพลาด
                        String message = loadError.getMessage(); // ข้อความข้อผิดพลาด
                }

                @Override
                public void onShow() {
                        //
                }

                @Override
                public void onClick() {
                        //
                }

                @Override
                public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
                        double revenue = adRevenueData.getRevenue(); // Revenue when ad is shown
                        String currency = adRevenueData.getCurrency(); // Currency code for revenue when ad is shown
                }

                @Override
                public void onClose() {
                        // requestDestroyAd();
                }

                @Override
                public void onRewarded(@NonNull RewardItem rewardItem) {
                        String rewardType = rewardItem.getItemType(); // ประเภทของรางวัล
                        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() {
                // Remove the rewarded ad.
                if(rewardedAd != null) rewardedAd.destroy();
        }
}

โฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล

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

import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizRewardedInterstitial
import com.hive.adiz.common.AdRevenueData
import com.hive.adiz.rewarded.RewardItem

class RewardedInterstitialExample : Activity() {

        var rewardedInterstitialAd: AdizRewardedInterstitial? = null

        override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)

                // ...

                // requestInitAd(this)
        }

        val adizListener = object : AdizListener() {
                override fun onLoad() {
                        // requestShowAd()
                }

                override fun onFail(loadError: AdizError) {
                        var code = loadError.getCode() // รหัสข้อผิดพลาด
                        var message = loadError.getMessage() // ข้อความข้อผิดพลาด
                }

                override fun onShow() {
                        //
                }

                override fun onClick() {
                        //
                }

                override fun onPaidEvent(adRevenueData: AdRevenueData) {
                        var revenue = adRevenueData.revenue // Revenue generated when ad is shown
                        var currency = adRevenueData.currency // Currency code for revenue when ad is shown
                }

                override fun onClose() {
                        // requestDestroyAd()
                }

                override fun onRewarded(rewardItem: RewardItem) {
                        var itemType = rewardItem.itemType // ประเภทของรางวัล
                        var itemAmount = rewardItem.itemAmount // จำนวนของรางวัล
                }
        }

        fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

                if(hiveAdKey.isNullOrEmpty()) {
                        // สร้างอินสแตนซ์ของโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
                        rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
                } else {
                        // คุณสามารถสร้างอินสแตนซ์ของโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัลโดยการป้อน 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)) {
                        // สร้างอินสแตนซ์ของโฆษณาแบบอินเตอร์สเตเชียลที่มีรางวัล (ถ้าคีย์โฆษณา (HiveAdKey) ไม่ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Hive Adiz.)
                        rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
                } else {
                    // คุณสามารถสร้างอินสแตนซ์ของโฆษณาแบบอินเตอร์สเตเชียลที่มีรางวัลโดยการป้อน placementId.
                    rewardedInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(activity, placementId, adizListener);
                }

                // requestLoadAd();
        }

        private void requestLoadAd() {
                // โหลดโฆษณาแบบให้รางวัล
                if(rewardedInterstitialAd != null && rewardedInterstitialAd.isInitialized()) rewardedInterstitialAd.load();
        }

        private void  requestShowAd() {
                // แสดงโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
                if(rewardedInterstitialAd != null && rewardedInterstitialAd.isLoaded()) rewardedInterstitialAd.show();
        }

        private void  requestDestroyAd() {
                // ลบโฆษณาแบบอินเตอร์สเตเชียลที่ได้รับรางวัล
                if(rewardedInterstitialAd != null) rewardedInterstitialAd.destroy();
        }
}

โฆษณาเปิดแอป (AppOpen)

นี่คือโฆษณาเปิดแอปที่แสดงโฆษณาที่โหลดไว้ล่วงหน้า (load()) เมื่อสถานะแอปเปลี่ยนจากพื้นหลังไปยังพื้นหน้า หากคุณเรียกใช้ 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()) {
                        // สร้างอินสแตนซ์โฆษณาเปิดแอป
                        appOpen = AdizAppOpen.initialize(activity, adizListener)
                } else {
                        // คุณสามารถสร้างอินสแตนซ์โฆษณาเปิดแอปโดยการป้อน placementId
                        appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener)
                }

                // requestLoadAd()
        }

        fun requestLoadAd() {
                // โหลดโฆษณาเปิดแอป หลังจากการโหลดเสร็จสิ้น โฆษณาจะถูกแสดงโดยอัตโนมัติเมื่อแอปเคลื่อนที่จากพื้นหลังไปยังพื้นหน้า
                // เมื่อโฆษณาแสดงอย่างน้อยหนึ่งครั้ง จะไม่ถูกแสดงอีก ดังนั้นหากคุณต้องการให้แสดงโฆษณาต่อไป คุณต้องเรียก appOpen.load() อีกครั้งใน callback onClose()
                appOpen?.let {
                        if(it.isInitialized()) it.load()
                }
        }

        fun requestDestroyAd() {
                // ลบโฆษณาที่เปิดแอป
                appOpen?.destroy()
        }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizAppOpen;
import com.hive.adiz.common.AdRevenueData;

public class AppOpenExample extends Activity {

        AdizAppOpen appOpen = null;

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                //...

                // requestInitAd(this, null);
        }

        AdizListener adizListener = new AdizListener() {
                @Override
                public void onLoad() {
                        //
                }

                @Override
                public void onFail(@NonNull AdizError loadError) {
                        int code = loadError.getCode(); // รหัสข้อผิดพลาด
                        String message = loadError.getMessage(); // ข้อความข้อผิดพลาด
                }

                @Override
                public void onShow() {
                        //
                }

                @Override
                public void onClick() {
                        //
                }

                @Override
                public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
                        double revenue = adRevenueData.getRevenue(); // Revenue when ad is shown
                        String currency = adRevenueData.getCurrency(); // Currency code for revenue when ad is shown
                }

                @Override
                public void onClose() {
                        // requestDestroyAd();
                }
        };

        public void requestInitAd(Activity activity, String hiveAdKey) {

                if(TextUtils.isEmpty(hiveAdKey)) {
                        // สร้างอินสแตนซ์โฆษณาเปิดแอป (ถ้าคีย์โฆษณา (HiveAdKey) ไม่ถูกป้อน อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ในระหว่างการเริ่มต้น Hive Adiz.)
                        appOpen = AdizAppOpen.initialize(activity, adizListener);
                } else {
                        // คุณสามารถสร้างอินสแตนซ์โฆษณาเปิดแอปโดยการป้อน hiveAdKey.
                        appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener);
                }

                // requestLoadAd();
        }

        public void requestInitAdWithPlacementId(Activity activity, String placementId) {

                if(TextUtils.isEmpty(placementId)) {
                        // สร้างอินสแตนซ์โฆษณาเปิดแอป (หากไม่ป้อนคีย์โฆษณา (HiveAdKey) อินสแตนซ์จะถูกสร้างด้วยคีย์เริ่มต้น (is_default=true) ระหว่างการเริ่มต้น Hive Adiz.)
                        appOpen = AdizAppOpen.initialize(activity, adizListener);
                } else {
                        // คุณสามารถสร้างอินสแตนซ์โฆษณาเปิดแอปโดยการป้อน placementId.
                        appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener);
                }

                // requestLoadAd();
        }

        private void requestLoadAd() {
                // โหลดโฆษณาเปิดแอป
                if(appOpen != null && appOpen.isInitialized()) appOpen.load();
        }

        private void  requestDestroyAd() {
                // Removes the app opening ad.
                if(appOpen != null) appOpen.destroy();
        }
}