โฆษณาคั่นระหว่างหน้า


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

คู่มือนี้จะแสดงวิธีผสานรวมโฆษณาคั่นระหว่างหน้าลงในแอป Android และ iOS โดยใช้ Google Mobile Ads C++ SDK

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

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

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

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

  • Android: ca-app-pub-3940256099942544/1033173712
  • iOS: ca-app-pub-3940256099942544/4411468910

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของโฆษณาทดสอบของ Mobile Ads SDK ได้ที่ โฆษณาทดสอบ

การใช้งาน

ขั้นตอนหลักในการผสานรวมโฆษณาคั่นระหว่างหน้ามีดังนี้

  1. โหลดโฆษณา
  2. ลงทะเบียนเพื่อรับการเรียกกลับ
  3. แสดงโฆษณาและจัดการเหตุการณ์วงจรการทำงานของโฆษณา

กำหนดค่า InterstitialAd

โฆษณาคั่นระหว่างหน้าจะแสดงในออบเจ็กต์ InterstitialAd ดังนั้นขั้นตอนแรกในการผสานรวมโฆษณาคั่นระหว่างหน้าลงในแอปคือการสร้างและเริ่มต้นออบเจ็กต์ InterstitialAd

  1. เพิ่มส่วนหัวต่อไปนี้ลงในโค้ด C++ ของแอป

     #include "firebase/gma/interstial_ad.h"

  2. ประกาศและสร้างอินสแตนซ์ออบเจ็กต์ InterstitialAd ดังนี้

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();

  3. เริ่มต้นอินสแตนซ์ InterstitialAd โดยใช้มุมมองระดับบนสุดที่แคสต์เป็นประเภท AdParent มุมมองระดับบนสุดคือข้อมูลอ้างอิง jobject ของ JNI ไปยัง Activity ของ Android หรือพอยน์เตอร์ไปยัง UIView ของ iOS

    // my_ad_parent is a jobject reference to an Android Activity or
    // a pointer to an iOS UIView.
    firebase::gma::AdParent ad_parent =
      static_cast<firebase::gma::AdParent>(my_ad_parent);
    firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
    
  4. คุณสามารถตรวจสอบสถานะของการดำเนินการเริ่มต้นเป็นระยะๆ ได้โดยการเรียกใช้ InitializeLastResult() ในออบเจ็กต์ InterstitialAd แทนการเก็บรักษา Future เป็นตัวแปร ซึ่งอาจเป็นประโยชน์ในการติดตามกระบวนการเริ่มต้นใน Game Loop ทั่วโลก

    // Monitor the status of the future in your game loop:
    firebase::Future<void> result = interstitial_ad->InitializeLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      // Initialization completed.
      if(future.error() == firebase::gma::kAdErrorCodeNone) {
        // Initialization successful.
      } else {
        // An error has occurred.
      }
    } else {
      // Initialization on-going.
    }
    

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ firebase::Future ได้ที่ ใช้ Future เพื่อตรวจสอบสถานะความสมบูรณ์ของการเรียกใช้เมธอด calls

โหลดโฆษณา

การโหลดโฆษณาทำได้โดยใช้เมธอด LoadAd() ในออบเจ็กต์ InterstitialAd เมธอดโหลดกำหนดให้คุณต้องเริ่มต้นออบเจ็กต์ InterstitialAd และมีรหัสหน่วยโฆษณาและออบเจ็กต์ AdRequest ระบบจะแสดงผล firebase::Future ซึ่งคุณสามารถใช้เพื่อตรวจสอบสถานะและผลลัพธ์ของการดำเนินการโหลด