เริ่มต้นใช้งาน


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

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

Google Mobile Ads SDK รวม SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google สำหรับ iOS และ Android และใช้ได้เฉพาะในแพลตฟอร์มเหล่านั้น Google Mobile Ads SDK ช่วย การใช้โครงสร้าง Firebase C++ เพื่อรองรับการดำเนินการแบบไม่พร้อมกัน ในเนมสเปซ firebase::gma

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

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

Android

  • ใช้ Android Studio 3.2 ขึ้นไป
  • ตรวจสอบว่าไฟล์บิลด์ของแอปใช้ค่าต่อไปนี้
    • minSdkVersion ตั้งแต่ 16 ขึ้นไป
    • compileSdkVersion ที่ระดับ 28 ขึ้นไป

iOS

  • ใช้ Xcode 13 ขึ้นไป
  • กำหนดเป้าหมาย iOS 10.0 ขึ้นไป

ตั้งค่าแอปในบัญชี AdMob

ลงทะเบียนแอปเป็นแอป AdMob โดยทำตามขั้นตอนต่อไปนี้

  1. ลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ สำหรับบัญชี AdMob

  2. ลงทะเบียนแอปด้วย AdMob ขั้นตอนนี้จะสร้าง AdMob แอปที่มีรหัสแอป AdMob ที่ไม่ซ้ำกัน ที่จำเป็นในส่วนต่อไปของคู่มือนี้

ติดตั้ง C++ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google

เนื่องจาก C++ SDK ของโฆษณา Google Mobile อยู่ในเนมสเปซ firebase::gma โปรดดาวน์โหลด Firebase C++ SDK แล้วแตกไฟล์ลงในไดเรกทอรีที่คุณต้องการ

Firebase C++ SDK ไม่ได้เจาะจงแพลตฟอร์ม แต่จำเป็นต้องใช้ การกำหนดค่าไลบรารีเฉพาะแพลตฟอร์ม

Android

เราขอแนะนำให้ใช้ CMake แต่คุณสามารถดูวิธีการสำหรับ ndk-build ได้ใน การเริ่มต้นใช้งาน Firebase C++ SDK ทั่วไป คู่มือ ลิงก์ libfirebase_app.a และ libfirebase_gma.a ไปยังแอปของคุณ

  1. ในไฟล์ gradle.properties ของโปรเจ็กต์ ให้ระบุตำแหน่งขององค์ประกอบ SDK ที่แยกไฟล์แล้ว:

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ settings.gradle ของโปรเจ็กต์

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
    
  3. ไฟล์ Gradle โมดูล (ระดับแอป) โดยทั่วไปแล้ว app/build.gradle— เพิ่มเนื้อหาต่อไปนี้ ซึ่งรวมถึง ทรัพยากร Dependency ของไลบรารีสำหรับ C++ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependency for the Google Mobile Ads C++ SDK
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      gma
    }
    
  4. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ CMakeLists.txt ของโปรเจ็กต์

    # Add Firebase libraries to the target using the function from the SDK.
    add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
    
    # Add the Google Mobile Ads C++ SDK.
    
    # The Firebase C++ library `firebase_app` is required,
    # and it must always be listed last.
    
    set(firebase_libs
      firebase_gma
      firebase_app
    )
    
    target_link_libraries(${target_name} "${firebase_libs}")
    
  5. ซิงค์แอปเพื่อให้ทรัพยากร Dependency ทั้งหมดมีเวอร์ชันที่จำเป็น

iOS

ขั้นตอนในส่วนนี้คือตัวอย่างของวิธีเพิ่มโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google C++ SDK ไปยังโปรเจ็กต์ iOS ของคุณ

  1. รับ CocoaPods เวอร์ชัน 1 ขึ้นไปโดยการเรียกใช้:

    sudo gem install cocoapods --pre
    
  2. เพิ่มพ็อดโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google จาก SDK ที่แยกไฟล์แล้ว

    1. สร้าง Podfile หากคุณยังไม่มี:

      cd APP_DIRECTORY
      pod init
      
    2. ใน Podfile ให้เพิ่มพ็อดสำหรับ SDK ของ C++ โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google SDK สำหรับ User Messaging Platform ของ Google และ Firebase SDK หลักที่เรียบง่าย (จำเป็นสำหรับ GMA C++ SDK)

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. ติดตั้งพ็อด แล้วเปิดไฟล์ .xcworkspace ใน Xcode

      pod install
      open APP.xcworkspace
      
    4. เพิ่มเฟรมเวิร์กต่อไปนี้จาก Firebase C++ SDK ลงในโปรเจ็กต์

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

คุณพร้อมแล้ว แอป C++ ของคุณได้รับการกำหนดค่าให้ใช้ C++ SDK สำหรับโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google โดยไม่มีบริการ Firebase อื่นๆ

กำหนดค่ารหัสแอป AdMob ของแอป

Android

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

iOS

ทำตามขั้นตอนอัปเดต Info.plist ตามที่อธิบายไว้ใน SDK โฆษณาในอุปกรณ์เคลื่อนที่ คู่มือ iOS จากนั้นกลับมาตรวจสอบ มาที่หน้านี้

เริ่มต้น SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google

ให้แอปของคุณเริ่มต้น C++ SDK ของ Google Mobile Ads ก่อนที่จะโหลดโฆษณา กำลังเรียก firebase::gma::Initialize() ซึ่งเริ่มต้น SDK และดำเนินการ firebase::Futureเมื่อการเริ่มต้นเสร็จสมบูรณ์ (หรือหลังจาก 30 วินาที หมดเวลา) คุณต้องดำเนินการนี้เพียงครั้งเดียวเท่านั้น เพื่อให้ดีที่สุดเมื่อเปิดแอป

โฆษณาอาจถูกโหลดล่วงหน้าโดย C++ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google หรือ SDK ของพาร์ทเนอร์สื่อกลาง เมื่อโทรหา Initialize() หากคุณจำเป็นต้องขอความยินยอมจากผู้ใช้ใน เขตเศรษฐกิจยุโรป (EEA) ตั้งค่าการแจ้งเฉพาะคำขอ (เช่น tag_for_child_directed_treatment หรือ tag_for_under_age_of_consent) หรือ ดำเนินการก่อนที่จะโหลดโฆษณา ทำให้แน่ใจว่าคุณดำเนินการดังกล่าวโดยเรียกใช้ firebase::gma::SetRequestConfiguration()ก่อนเริ่มต้นใช้งาน Google Mobile C++ SDK ของโฆษณา สำหรับข้อมูลเพิ่มเติม โปรดดู คู่มือการกำหนดเป้าหมาย

นี่คือตัวอย่างวิธีการโทรหา Initialize()

Android

// Initialize the Google Mobile Ads library
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(jni_env, j_activity, &result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing
  // dependency. Check the device logs for more information.
  return;
}

// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
    future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed.
} else {
  // Initialization on-going, or an error has occurred.
}

iOS

// Initialize the Google Mobile Ads library.
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(&result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing
  // dependency. Check the device logs for more information.
  return;
}

// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
    future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed.
} else {
  // Initialization on-going, or an error has occurred.
}

ใช้ Future เพื่อตรวจสอบสถานะความสำเร็จของการเรียกใช้เมธอด

Future เป็นวิธีระบุสถานะเสร็จสมบูรณ์ เมธอดแบบไม่พร้อมกัน

ตัวอย่างเช่น เมื่อแอปของคุณเรียกใช้ firebase::gma::Initialize() พารามิเตอร์ สร้างและส่งคืน firebase::Future แล้ว จากนั้น แอปของคุณจะสามารถสำรวจ status() จาก Future เพื่อระบุว่าการเริ่มต้นเสร็จสมบูรณ์เมื่อใด เมื่อดำเนินการเสร็จแล้ว แอปสามารถเรียกใช้ result() เพื่อรับผลลัพธ์ AdapterInitializationStatus

วิธีการที่ส่งกลับ Future มี "ผลลัพธ์ล่าสุด" ที่สอดคล้องกัน ที่ สามารถใช้เพื่อเรียกข้อมูล Future ล่าสุดสำหรับการดำเนินการที่ระบุได้ สำหรับ ตัวอย่างเช่น firebase::gma::Initialize() มีเมธอดที่เกี่ยวข้องชื่อว่า firebase::gma::InitializeLastResult() ซึ่งแสดงผล Future ที่แอปของคุณ สามารถใช้ตรวจสอบสถานะการโทรหา firebase::gma::Initialize() ครั้งล่าสุด

หากสถานะของ Future เสร็จสมบูรณ์และรหัสข้อผิดพลาดคือ firebase::gma::kAdErrorCodeNone การดำเนินการก็เสร็จสิ้นแล้ว สำเร็จ

นอกจากนี้ คุณยังลงทะเบียน Callback ที่จะเรียกใช้เมื่อ Future เสร็จสมบูรณ์ได้ด้วย ใน ในบางกรณี Callback จะทำงานในเทรดอื่น ดังนั้นโปรด โค้ดจึงปลอดภัยของชุดข้อความ ข้อมูลโค้ดนี้ใช้ตัวชี้ฟังก์ชันสำหรับ ติดต่อกลับ:

// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
  /*user_data=*/nullptr);

// The OnCompletion callback function.
static void OnCompletionCallback(
  const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
  // Called when the Future is completed for the last call to firebase::gma::Initialize().
  // If the error code is firebase::gma::kAdErrorCodeNone,
  // then the SDK has been successfully initialized.
  if (future.error() == firebase::gma::kAdErrorCodeNone) {
    // success!
  } else {
    // failure.
  }
}

เลือกรูปแบบโฆษณา

ตอนนี้มีการนำเข้า C++ SDK ของโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google และคุณพร้อมที่จะใช้งาน โฆษณาของคุณ AdMob มีรูปแบบโฆษณาต่างๆ มากมายเพื่อให้คุณเลือก ที่เหมาะกับประสบการณ์ของผู้ใช้แอปมากที่สุด

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

ใช้โฆษณาแบนเนอร์

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

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

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

ได้รับรางวัลแล้ว

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

ใช้โฆษณาที่มีการให้รางวัล