แชร์ความคิดเห็นและช่วยปรับปรุงแผนกลยุทธ์ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google โปรดทําแบบสํารวจประจําปีเกี่ยวกับ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ปี 2023 ก่อนวันที่ 5 พฤษภาคม 2023

โฆษณาเนทีฟ

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

โฆษณาเนทีฟคือเนื้อหาโฆษณาที่นําเสนอแก่ผู้ใช้ผ่านคอมโพเนนต์ UI ที่เป็นของแพลตฟอร์ม โดยจะแสดงโดยใช้มุมมองประเภทเดียวกันที่คุณใช้สร้างเลย์เอาต์อยู่แล้ว และจัดรูปแบบให้สอดคล้องกับการออกแบบประสบการณ์การใช้งานของผู้ใช้ที่ผู้ใช้เห็นได้ ในแง่ของการเขียนโค้ดหมายความว่าเมื่อโฆษณาเนทีฟโหลดแล้ว แอปของคุณจะได้รับออบเจ็กต์ NativeAd ที่มีเนื้อหาอยู่ด้วย และในแอป (แทน SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google) ก็จะมีหน้าที่แสดงโฆษณานั้น

กล่าวกว้างๆ การใช้โฆษณาเนทีฟได้สําเร็จมี 2 ส่วน ได้แก่ การโหลดโฆษณาโดยใช้ SDK แล้วแสดงเนื้อหาโฆษณาในแอป

หน้านี้เกี่ยวข้องกับการใช้ SDK เพื่อโหลด โฆษณาเนทีฟ

สิ่งที่ต้องดำเนินการก่อน

การใช้งาน

โฆษณาเนทีฟจะโหลดด้วยคลาส AdLoader ซึ่งมีคลาส Builder ของตัวเองที่จะปรับแต่งในระหว่างการสร้าง การเพิ่ม Listener ใน AdLoader เมื่อสร้างแอปจะช่วยให้แอประบุประเภทของโฆษณาเนทีฟที่พร้อมรับ จากนั้น AdLoader จะขอประเภทเหล่านั้นเท่านั้น

สร้าง AdLoader

โค้ดต่อไปนี้สาธิตวิธีสร้าง AdLoader ที่โหลดโฆษณาเนทีฟได้

Java

AdLoader adLoader = new AdLoader.Builder(context, "")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

เตรียมพร้อมสําหรับรูปแบบโฆษณาเนทีฟ

วิธีแรกข้างต้นมีหน้าที่เตรียม AdLoader สําหรับรูปแบบ NativeAd

forNativeAd()
การเรียกใช้เมธอดนี้จะกําหนดค่า AdLoader ให้ขอโฆษณาเนทีฟ เมื่อโฆษณาโหลดสําเร็จ ระบบจะเรียกใช้เมธอด onNativeAdLoaded() ของออบเจ็กต์ Listener

เมื่อ AdLoader สร้างคําขอโฆษณา Google จะเลือกและส่งกลับโฆษณาที่เพิ่มผลตอบแทนสูงสุดให้แก่ผู้เผยแพร่โฆษณา

ตั้งค่า AdListener ด้วย AdLoader (ไม่บังคับ)

ระหว่างการสร้าง AdLoader ข้างต้น ฟังก์ชัน withAdListener จะตั้งค่า AdListener เมธอดจะใช้ AdListener เป็นพารามิเตอร์เดี่ยว ซึ่งจะเรียกโค้ดเรียกกลับจาก AdLoader เมื่อมีเหตุการณ์ในวงจรโฆษณาเกิดขึ้น

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

โหลดโฆษณา

เมื่อสร้าง AdLoader เสร็จแล้ว ก็ถึงเวลาใช้ในการโหลดโฆษณา มี 2 วิธีดังนี้ loadAd() และ loadAds()

loadAd()
วิธีนี้ส่งคําขอสําหรับโฆษณารายการเดียว

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())
loadAds()
วิธีนี้ส่งคําขอสําหรับโฆษณาหลายรายการ (สูงสุด 5 รายการ)

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

ทั้งสองวิธีนี้ใช้ออบเจ็กต์ AdRequest เป็นพารามิเตอร์แรก ชั้นเรียนนี้เป็นคลาส AdRequest เดียวกันกับที่แบนเนอร์และโฆษณาคั่นระหว่างหน้าใช้ และคุณจะใช้เมธอดของคลาส AdRequest เพื่อเพิ่มข้อมูลการกําหนดเป้าหมายได้เช่นเดียวกับที่ทํากับรูปแบบโฆษณาอื่นๆ

loadAds() ใช้พารามิเตอร์เพิ่มเติม นั่นคือจํานวนโฆษณาที่ SDK ควรพยายามโหลดสําหรับคําขอนั้นๆ จํานวนดังกล่าวจํากัดไว้ที่ 5 หน่วย และไม่รับประกันว่า SDK จะส่งคืนโฆษณาตามจํานวนที่ขออย่างถูกต้อง

โฆษณาที่ Google แสดงผลจะต่างออกไปกัน ไม่มีการรับประกันว่าโฆษณาจากพื้นที่โฆษณาที่จองไว้หรือผู้ซื้อที่เป็นบุคคลที่สาม ซึ่งรวมถึงผู้ซื้อที่กําหนดค่าไว้สําหรับสื่อกลาง Waterfall หรือการเสนอราคาจะไม่ซ้ํากัน

โค้ดเรียกกลับ

หลังจากเรียกไปยัง loadAd() ระบบจะเรียกโค้ดเดียวกลับไปยัง วิธีการฟัง เพื่อแสดงออบเจ็กต์โฆษณาเนทีฟหรือรายงานข้อผิดพลาด

หลังจากเรียกไปยัง loadAds() จะมีการเรียกกลับดังกล่าวหลายครั้ง (อย่างน้อย 1 ครั้ง และไม่เกินจํานวนโฆษณาที่ขอ) แอปที่ขอโฆษณาหลายรายการ ควรเรียก AdLoader.isLoading() ในการติดตั้งโค้ดเรียกกลับเพื่อตัดสินว่ากระบวนการโหลดเสร็จหรือยัง

ตัวอย่างวิธีตรวจสอบ isLoading() ในการเรียกกลับ onNativeAdLoaded()

Java

final AdLoader adLoader = new AdLoader.Builder(this, "")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

ปล่อยทรัพยากร

อย่าลืมใช้เมธอด destroy() ในโฆษณาเนทีฟที่โหลด ซึ่งจะช่วยประหยัดทรัพยากรที่ใช้ไปและป้องกันการรั่วไหลของหน่วยความจํา

ตรวจสอบว่าการอ้างอิง NativeAd ทั้งหมดถูกทําลายในเมธอด onDestroy() ของกิจกรรม

ในการเรียกกลับ onNativeAdLoaded ให้ทําลายโฆษณาเนทีฟที่มีอยู่ซึ่งจะได้รับการอ้างอิง

การตรวจสอบหลักอีกอย่างหนึ่งคือหากกิจกรรมถูกทําลาย และหากเรียกให้เรียก destroy() ในโฆษณาที่แสดงผลและกลับมาทันที

Java

final AdLoader adLoader = new AdLoader.Builder(this, "")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

ทดสอบโฆษณาทดสอบอยู่เสมอ

เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทนโฆษณาจริง มิเช่นนั้นอาจทําให้บัญชีถูกระงับ

วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบสําหรับโฆษณาเนทีฟขั้นสูงบน Android ดังนี้

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทํางานของโฆษณาทดสอบของ SDK โฆษณาในอุปกรณ์เคลื่อนที่ได้ที่โฆษณาทดสอบ

เวลาที่ควรส่งคําขอโฆษณา

แอปพลิเคชันที่แสดงโฆษณาเนทีฟเป็นบริการฟรีที่สามารถขอล่วงหน้าได้ในกรณีที่โฆษณาจะแสดงจริง ในหลายๆ กรณี แนวทางปฏิบัติที่แนะนํามีดังนี้ แอปที่แสดงรายการสินค้าที่มีโฆษณาเนทีฟผสมกัน เช่น โหลดโฆษณาเนทีฟได้ตลอดทั้งรายการ โดยทราบว่าบางรายการจะแสดงหลังจากที่ผู้ใช้เลื่อนมุมมองเท่านั้น และบางรายการอาจไม่แสดงเลย

การเร่งฮาร์ดแวร์สําหรับโฆษณาวิดีโอ

คุณต้องเปิดใช้การเร่งฮาร์ดแวร์ เพื่อให้โฆษณาวิดีโอแสดงในมุมมองโฆษณาเนทีฟได้สําเร็จ

การเร่งฮาร์ดแวร์จะเปิดใช้โดยค่าเริ่มต้น แต่บางแอปอาจเลือกที่จะปิดใช้งาน หากแอปของคุณนําไปใช้กับแอป เราขอแนะนําให้เปิดใช้การเร่งฮาร์ดแวร์ในคลาสกิจกรรมที่ใช้โฆษณา

เปิดการเร่งฮาร์ดแวร์

หากแอปทํางานผิดปกติเมื่อเปิดการเร่งฮาร์ดแวร์ไว้ทั่วโลก คุณสามารถควบคุมการทํางานลักษณะนี้สําหรับแต่ละกิจกรรมได้เช่นกัน หากต้องการเปิดหรือปิดใช้การเร่งฮาร์ดแวร์ ให้ใช้แอตทริบิวต์ android:hardwareAccelerated สําหรับองค์ประกอบ <application> และ <activity> ใน AndroidManifest.xml ตัวอย่างต่อไปนี้เปิดใช้งานการเร่งฮาร์ดแวร์ สําหรับทั้งแอปแต่ปิดใช้เป็นเวลา 1 กิจกรรม

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

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

แสดงโฆษณาเนทีฟ

เมื่อโหลดโฆษณาแล้ว ที่เหลือก็คือแสดงโฆษณาแก่ผู้ใช้ ไปที่คู่มือเนทีฟขั้นสูงเพื่อดูวิธี

โฆษณาเนทีฟคือเนื้อหาโฆษณาที่นําเสนอแก่ผู้ใช้ผ่านคอมโพเนนต์ UI ที่เป็นของแพลตฟอร์ม โดยจะแสดงโดยใช้มุมมองประเภทเดียวกันที่คุณใช้สร้างเลย์เอาต์อยู่แล้ว และจัดรูปแบบให้สอดคล้องกับการออกแบบประสบการณ์การใช้งานของผู้ใช้ที่ผู้ใช้เห็นได้ ในแง่ของการเขียนโค้ดหมายความว่าเมื่อโฆษณาเนทีฟโหลดแล้ว แอปของคุณจะได้รับออบเจ็กต์ NativeAd ที่มีเนื้อหาอยู่ด้วย และในแอป (แทน SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google) ก็จะมีหน้าที่แสดงโฆษณานั้น

กล่าวกว้างๆ การใช้โฆษณาเนทีฟได้สําเร็จมี 2 ส่วน ได้แก่ การโหลดโฆษณาโดยใช้ SDK แล้วแสดงเนื้อหาโฆษณาในแอป

หน้านี้เกี่ยวข้องกับการใช้ SDK เพื่อโหลด โฆษณาเนทีฟ

สิ่งที่ต้องดำเนินการก่อน

การใช้งาน

โฆษณาเนทีฟจะโหลดด้วยคลาส AdLoader ซึ่งมีคลาส Builder ของตัวเองที่จะปรับแต่งในระหว่างการสร้าง การเพิ่ม Listener ใน AdLoader เมื่อสร้างแอปจะช่วยให้แอประบุประเภทของโฆษณาเนทีฟที่พร้อมรับ จากนั้น AdLoader จะขอประเภทเหล่านั้นเท่านั้น

สร้าง AdLoader

โค้ดต่อไปนี้สาธิตวิธีสร้าง AdLoader ที่โหลดโฆษณาเนทีฟได้

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

เตรียมพร้อมสําหรับรูปแบบโฆษณาเนทีฟ

วิธีแรกข้างต้นมีหน้าที่เตรียม AdLoader สําหรับรูปแบบ NativeAd

forNativeAd()
การเรียกใช้เมธอดนี้จะกําหนดค่า AdLoader ให้ขอโฆษณาเนทีฟ เมื่อโฆษณาโหลดสําเร็จ ระบบจะเรียกใช้เมธอด onNativeAdLoaded() ของออบเจ็กต์ Listener

เมื่อ AdLoader สร้างคําขอโฆษณา Google จะเลือกและส่งกลับโฆษณาที่เพิ่มผลตอบแทนสูงสุดให้แก่ผู้เผยแพร่โฆษณา

ตั้งค่า AdListener ด้วย AdLoader (ไม่บังคับ)

ระหว่างการสร้าง AdLoader ข้างต้น ฟังก์ชัน withAdListener จะตั้งค่า AdListener เมธอดจะใช้ AdListener เป็นพารามิเตอร์เดี่ยว ซึ่งจะเรียกโค้ดเรียกกลับจาก AdLoader เมื่อมีเหตุการณ์ในวงจรโฆษณาเกิดขึ้น

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

โหลดโฆษณา

เมื่อสร้าง AdLoader เสร็จแล้ว ก็ถึงเวลาใช้ในการโหลดโฆษณา มี 2 วิธีดังนี้ loadAd() และ loadAds()

loadAd()
วิธีนี้ส่งคําขอสําหรับโฆษณารายการเดียว

Java

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdRequest.Builder().build())
loadAds()
วิธีนี้ส่งคําขอสําหรับโฆษณาหลายรายการ (สูงสุด 5 รายการ)

Java

adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

adLoader.loadAds(AdRequest.Builder().build(), 3)

ทั้งสองวิธีนี้ใช้ออบเจ็กต์ AdRequest เป็นพารามิเตอร์แรก ชั้นเรียนนี้เป็นคลาส AdRequest เดียวกันกับที่แบนเนอร์และโฆษณาคั่นระหว่างหน้าใช้ และคุณจะใช้เมธอดของคลาส AdRequest เพื่อเพิ่มข้อมูลการกําหนดเป้าหมายได้เช่นเดียวกับที่ทํากับรูปแบบโฆษณาอื่นๆ

loadAds() ใช้พารามิเตอร์เพิ่มเติม นั่นคือจํานวนโฆษณาที่ SDK ควรพยายามโหลดสําหรับคําขอนั้นๆ จํานวนดังกล่าวจํากัดไว้ที่ 5 หน่วย และไม่รับประกันว่า SDK จะส่งคืนโฆษณาตามจํานวนที่ขออย่างถูกต้อง

โฆษณาที่ Google แสดงผลจะต่างออกไปกัน ไม่มีการรับประกันว่าโฆษณาจากพื้นที่โฆษณาที่จองไว้หรือผู้ซื้อที่เป็นบุคคลที่สาม ซึ่งรวมถึงผู้ซื้อที่กําหนดค่าไว้สําหรับสื่อกลาง Waterfall หรือการเสนอราคาจะไม่ซ้ํากัน

โค้ดเรียกกลับ

หลังจากเรียกไปยัง loadAd() ระบบจะเรียกโค้ดเดียวกลับไปยัง วิธีการฟัง เพื่อแสดงออบเจ็กต์โฆษณาเนทีฟหรือรายงานข้อผิดพลาด

หลังจากเรียกไปยัง loadAds() จะมีการเรียกกลับดังกล่าวหลายครั้ง (อย่างน้อย 1 ครั้ง และไม่เกินจํานวนโฆษณาที่ขอ) แอปที่ขอโฆษณาหลายรายการ ควรเรียก AdLoader.isLoading() ในการติดตั้งโค้ดเรียกกลับเพื่อตัดสินว่ากระบวนการโหลดเสร็จหรือยัง

ตัวอย่างวิธีตรวจสอบ isLoading() ในการเรียกกลับ onNativeAdLoaded()

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading()) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd {
        ...
        // some code that displays the ad.
        ...
        if (adLoader.isLoading) {
            // The AdLoader is still loading ads.
            // Expect more adLoaded or onAdFailedToLoad callbacks.
        } else {
            // The AdLoader has finished loading ads.
        }
    }.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)

ปล่อยทรัพยากร

อย่าลืมใช้เมธอด destroy() ในโฆษณาเนทีฟที่โหลด ซึ่งจะช่วยประหยัดทรัพยากรที่ใช้ไปและป้องกันการรั่วไหลของหน่วยความจํา

ตรวจสอบว่าการอ้างอิง NativeAd ทั้งหมดถูกทําลายในเมธอด onDestroy() ของกิจกรรม

ในการเรียกกลับ onNativeAdLoaded ให้ทําลายโฆษณาเนทีฟที่มีอยู่ซึ่งจะได้รับการอ้างอิง

การตรวจสอบหลักอีกอย่างหนึ่งคือหากกิจกรรมถูกทําลาย และหากเรียกให้เรียก destroy() ในโฆษณาที่แสดงผลและกลับมาทันที

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

ทดสอบโฆษณาทดสอบอยู่เสมอ

เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทนโฆษณาจริง มิเช่นนั้นอาจทําให้บัญชีถูกระงับ

วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบสําหรับโฆษณาเนทีฟขั้นสูงบน Android ดังนี้

ca-app-pub-3940256099942544/2247696110

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทํางานของโฆษณาทดสอบของ SDK โฆษณาในอุปกรณ์เคลื่อนที่ได้ที่โฆษณาทดสอบ

เวลาที่ควรส่งคําขอโฆษณา

แอปพลิเคชันที่แสดงโฆษณาเนทีฟเป็นบริการฟรีที่สามารถขอล่วงหน้าได้ในกรณีที่โฆษณาจะแสดงจริง ในหลายๆ กรณี แนวทางปฏิบัติที่แนะนํามีดังนี้ แอปที่แสดงรายการสินค้าที่มีโฆษณาเนทีฟผสมกัน เช่น โหลดโฆษณาเนทีฟได้ตลอดทั้งรายการ โดยทราบว่าบางรายการจะแสดงหลังจากที่ผู้ใช้เลื่อนมุมมองเท่านั้น และบางรายการอาจไม่แสดงเลย

การเร่งฮาร์ดแวร์สําหรับโฆษณาวิดีโอ

คุณต้องเปิดใช้การเร่งฮาร์ดแวร์ เพื่อให้โฆษณาวิดีโอแสดงในมุมมองโฆษณาเนทีฟได้สําเร็จ

การเร่งฮาร์ดแวร์จะเปิดใช้โดยค่าเริ่มต้น แต่บางแอปอาจเลือกที่จะปิดใช้งาน หากแอปของคุณนําไปใช้กับแอป เราขอแนะนําให้เปิดใช้การเร่งฮาร์ดแวร์ในคลาสกิจกรรมที่ใช้โฆษณา

เปิดการเร่งฮาร์ดแวร์

หากแอปทํางานผิดปกติเมื่อเปิดการเร่งฮาร์ดแวร์ไว้ทั่วโลก คุณสามารถควบคุมการทํางานลักษณะนี้สําหรับแต่ละกิจกรรมได้เช่นกัน หากต้องการเปิดหรือปิดใช้การเร่งฮาร์ดแวร์ ให้ใช้แอตทริบิวต์ android:hardwareAccelerated สําหรับองค์ประกอบ <application> และ <activity> ใน AndroidManifest.xml ตัวอย่างต่อไปนี้เปิดใช้งานการเร่งฮาร์ดแวร์ สําหรับทั้งแอปแต่ปิดใช้เป็นเวลา 1 กิจกรรม

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

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

แสดงโฆษณาเนทีฟ

เมื่อโหลดโฆษณาแล้ว ที่เหลือก็คือแสดงโฆษณาแก่ผู้ใช้ ไปที่คู่มือเนทีฟขั้นสูงเพื่อดูวิธี