โหลดโฆษณาเนทีฟ

เลือกแพลตฟอร์ม: Android (เบต้า) ใหม่ Android iOS Flutter Unity

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

เมื่อโฆษณาเนทีฟโหลด แอปจะได้รับออบเจ็กต์โฆษณาที่มีชิ้นงาน และแอป (ไม่ใช่ Google Mobile Ads SDK) จะมีหน้าที่ แสดงโฆษณา

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

หน้านี้แสดงวิธีใช้ SDK เพื่อโหลด โฆษณาเนทีฟ

ข้อกำหนดเบื้องต้น

ก่อนดำเนินการต่อ ตั้งค่า Google Mobile Ads SDK

ทดสอบด้วยโฆษณาทดสอบเสมอ

เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทนโฆษณาจริง

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

/21775744923/example/native

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

ดูรายละเอียดเกี่ยวกับโฆษณาทดสอบGoogle Mobile Ads SDKได้ที่ หัวข้อเปิดใช้โฆษณาทดสอบ

โหลดโฆษณา

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

สร้าง AdLoader

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

Java

// It is recommended to call AdLoader.Builder on a background thread.
new Thread(
        () -> {
          AdLoader adLoader =
              new AdLoader.Builder(context, "AD_UNIT_ID")
                  .forNativeAd(
                      new NativeAd.OnNativeAdLoadedListener() {
                        @Override
                        // The native ad loaded successfully. You can show the ad.
                        public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {}
                      })
                  .withAdListener(
                      new AdListener() {
                        @Override
                        // The native ad load failed. Check the adError message for failure
                        // reasons.
                        public void onAdFailedToLoad(@NonNull LoadAdError adError) {}
                      })
                  // Use the NativeAdOptions.Builder class to specify individual options
                  // settings.
                  .withNativeAdOptions(new NativeAdOptions.Builder().build())
                  .build();
        })
    .start();

Kotlin

// It is recommended to call AdLoader.Builder on a background thread.
CoroutineScope(Dispatchers.IO).launch {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forNativeAd { nativeAd ->
        // The native ad loaded successfully. You can show the ad.
      }
      .withAdListener(
        object : AdListener() {
          override fun onAdFailedToLoad(adError: LoadAdError) {
            // The native ad load failed. Check the adError message for failure reasons.
          }
        }
      )
      // Use the NativeAdOptions.Builder class to specify individual options settings.
      .withNativeAdOptions(NativeAdOptions.Builder().build())
      .build()
}

แทนที่ AD_UNIT_ID ด้วยรหัสอุปกรณ์ทดสอบ

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

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

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

Java

adLoaderBuilder.withAdListener(
    // Override AdListener callbacks here.
    new AdListener() {});

Kotlin

adLoaderBuilder.withAdListener(
  // Override AdListener callbacks here.
  object : AdListener() {}
)

ส่งคำขอแสดงโฆษณา

เมื่อสร้าง AdLoader เสร็จแล้ว ก็ถึงเวลาใช้เพื่อส่งคำขอโฆษณา โดยมี 2 เมธอดที่ใช้ได้ ได้แก่ loadAd() และ loadAds()

loadAd()

เมธอดนี้จะส่งคำขอโฆษณาเดียว

Java

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

Kotlin

adLoader.loadAd(AdManagerAdRequest.Builder().build())

loadAds()

เมธอดนี้จะส่งคำขอโฆษณาหลายรายการ (สูงสุด 5 รายการ)

Java

// Load three native ads.
adLoader.loadAds(new AdManagerAdRequest.Builder().build(), 3);

Kotlin

// Load three native ads.
adLoader.loadAds(AdManagerAdRequest.Builder().build(), 3)

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

โหลดโฆษณาหลายรายการ (ไม่บังคับ)

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

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

อย่าใช้เมธอด loadAds() หากคุณใช้สื่อกลาง เนื่องจากคำขอโฆษณาเนทีฟหลายรายการใช้ไม่ได้กับรหัสหน่วยโฆษณาที่กำหนดค่าไว้สำหรับสื่อกลาง

การเรียกกลับ

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

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

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

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

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

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

Java

nativeAd.destroy();

Kotlin

nativeAd.destroy()

แนวทางปฏิบัติแนะนำ

ทำตามกฎต่อไปนี้เมื่อโหลดโฆษณา

  • แอปที่ใช้โฆษณาเนทีฟในรายการควรแคชรายการโฆษณาไว้ล่วงหน้า

  • เมื่อแคชโฆษณาไว้ล่วงหน้า ให้ล้างแคชและโหลดซ้ำหลังจากผ่านไป 1 ชั่วโมง

  • อย่าเรียกใช้ loadAd() ใน AdLoader จนกว่าคำขอแรก จะโหลดเสร็จ
  • จำกัดการแคชโฆษณาเนทีฟให้มีเฉพาะสิ่งที่จำเป็นเท่านั้น เช่น เมื่อแคชไว้ล่วงหน้า ให้แคชเฉพาะโฆษณาที่มองเห็นได้ทันทีบนหน้าจอ โฆษณาเนทีฟใช้หน่วยความจำที่ใช้มาก และการแคชโฆษณาเนทีฟโดยไม่ทำลายโฆษณาจะทำให้ใช้หน่วยความจำมากเกินไป

  • ทำลายโฆษณาเนทีฟเมื่อไม่ได้ใช้งานแล้ว

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

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

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

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

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

<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>

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

แสดงโฆษณา

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