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


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

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

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

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

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

Android

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

iOS

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

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

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

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

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

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

เนื่องจาก Google Mobile Ads C++ SDK อยู่ในเนมสเปซ 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 ของไลบรารีสําหรับ SDK ของ Google Mobile Ads C++

    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 Mobile Ads SDK แบบ C++ ลงในโปรเจ็กต์ iOS

  1. ดาวน์โหลด CocoaPods เวอร์ชัน 1 ขึ้นไปโดยเรียกใช้คำสั่งต่อไปนี้

    sudo gem install cocoapods --pre
  2. เพิ่มพ็อด Google Mobile Ads จาก SDK ที่แตกไฟล์แล้ว

    1. หากคุณยังไม่มี Podfile ให้สร้างโดยเรียกใช้คำสั่งต่อไปนี้

      cd APP_DIRECTORY
      pod init
    2. เพิ่ม Pod สำหรับ Google Mobile Ads C++ SDK, SDK สำหรับ User Messaging Platform ของ Google และ Firebase Core SDK ขั้นต่ำ (ตามที่ GMA C++ SDK กำหนด) ลงใน Podfile

      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++ ได้รับการกําหนดค่าให้ใช้ Google Mobile Ads C++ SDK โดยไม่ใช้บริการ Firebase อื่นๆ

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

Android

ทําตามขั้นตอนที่ 3 ของกําหนดค่าแอปตามที่อธิบายไว้ในคําแนะนําสําหรับ Android ของ Mobile Ads SDK แล้วกลับมาที่หน้านี้

iOS

ทําตามขั้นตอนอัปเดต Info.plist ตามที่อธิบายไว้ในคําแนะนํา Mobile Ads SDK สำหรับ iOS แล้วกลับมาที่หน้านี้

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

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

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

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

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

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

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

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

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

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

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