เริ่มต้นใช้งาน AdMob ในโปรเจ็กต์ C++


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

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับ ประโยชน์ของการใช้ AdMob, Firebase และ Google Analytics

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

ก่อนเริ่มต้น

  • หากยังไม่มีโปรเจ็กต์ Firebase และแอป Firebase ให้ทำตาม คู่มือเริ่มต้นใช้งาน Firebase เพิ่ม Firebase ไปยังโปรเจ็กต์ C++

  • ตรวจสอบว่าเปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase แล้ว โดยทำดังนี้

    • หากคุณกำลังสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ในระหว่างขั้นตอนการสร้างโปรเจ็กต์

    • หากคุณมีโปรเจ็กต์ Firebase เดิมซึ่งยังไม่มี เปิดใช้ Google Analytics แล้ว คุณสามารถเปิดใช้ Google Analytics ได้จาก เวลา การผสานรวม ของ > การตั้งค่าโปรเจ็กต์

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

  1. ลงทะเบียนแอปแต่ละแพลตฟอร์มเป็นแอป AdMob

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

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

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

  2. ลิงก์แอป AdMob แต่ละแอปของคุณกับแอป Firebase ที่เกี่ยวข้อง

    ขั้นตอนนี้เป็นขั้นตอนที่ไม่บังคับ แต่ขอแนะนำอย่างยิ่ง ดูข้อมูลเพิ่มเติมเกี่ยวกับ ประโยชน์ การเปิดใช้เมตริกผู้ใช้และการลิงก์แอป AdMob กับ Firebase

    สําหรับตัวแปรแพลตฟอร์มแต่ละรายการ ให้ทํา 2 ขั้นตอนต่อไปนี้ในแอป แดชบอร์ดของบัญชี AdMob ดังนี้

    1. เปิดใช้งาน เมตริกผู้ใช้ เพื่อให้ AdMob ประมวลผลและแสดงข้อมูลการวิเคราะห์ ที่ผ่านการดูแลจัดการในบัญชีได้ บัญชี AdMob ซึ่งเป็นการตั้งค่าที่จำเป็นสำหรับคุณในการลิงก์ AdMob ไปยัง Firebase

    2. ลิงก์ แอป AdMob ลงในโปรเจ็กต์ Firebase ที่มีอยู่และแอป Firebase ที่เกี่ยวข้อง

      ตรวจสอบว่าคุณป้อนชื่อแพ็กเกจ (Android) หรือรหัสชุดเดียวกัน (iOS) ที่คุณป้อนสำหรับแอป Firebase ค้นหาแอป Firebase ของคุณ ชื่อแพ็กเกจหรือรหัสชุดในการ์ดแอปของคุณ การตั้งค่าโปรเจ็กต์

ขั้นตอนที่ 2: เพิ่มรหัสแอป AdMob ลงในแอป

Android

เพิ่ม รหัสแอป AdMob ลงในไฟล์ AndroidManifest.xml ของแอปโดยเพิ่มแท็ก <meta-data> เป็น ดังที่แสดงด้านล่าง

<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ADMOB_APP_ID"/>
    </application>
</manifest>

iOS

ในไฟล์ Info.plist ของแอป ให้เพิ่มคีย์ GADApplicationIdentifier ที่มี ค่าสตริงของ รหัสแอป AdMob

คุณทำการเปลี่ยนแปลงนี้แบบเป็นโปรแกรมได้โดยทำดังนี้

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

หรือจะแก้ไขในเครื่องมือแก้ไขรายการพร็อพเพอร์ตี้ก็ได้ ดังนี้

เครื่องมือแก้ไขรายการพร็อพเพอร์ตี้

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

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

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

Android

  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 ของไลบรารีสำหรับ Google Mobile Ads SDK สำหรับ 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 ทั้งหมดมีเวอร์ชันที่จำเป็น

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

iOS

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

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

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

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. ไปที่ Podfile ให้เพิ่มพ็อดสำหรับ SDK ของ C++ โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google ดังนี้

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

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

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

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

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

ก่อนโหลดโฆษณา ให้เริ่มต้น Mobile Ads SDK โดยการเรียกใช้ firebase::gma::Initialize()

การเรียกนี้จะแสดงผล firebase::Future ที่เสร็จสมบูรณ์เมื่อเริ่มการเริ่มต้น เสร็จสิ้น (หรือหลังจากหมดเวลา 30 วินาที) เรียกใช้เมธอดนี้เพียงครั้งเดียวและในฐานะ ให้เร็วที่สุดเท่าที่จะทำได้ โดยเฉพาะอย่างยิ่งในช่วงเปิดแอป

นี่คือตัวอย่างวิธีการโทรหา 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.
  }
}

ขั้นตอนที่ 5: เลือกรูปแบบโฆษณาที่จะใช้ในแอป

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

โฆษณาสี่เหลี่ยมผืนผ้าที่ปรากฏด้านบนหรือด้านล่างของหน้าจออุปกรณ์

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

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

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

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

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

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

ให้รางวัล

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

โฆษณาที่มีการให้รางวัล (หรือ "ตามรางวัล") ช่วยสร้างรายได้จากผู้ใช้ที่เล่นเกมฟรี

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

หัวข้ออื่นๆ ที่สนใจ

ดูเมตริกผู้ใช้และข้อมูลวิเคราะห์

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

โปรดทราบว่าเพื่อให้การนำเสนอได้ดียิ่งขึ้น ARPU และ เมตริก ARPPU อาจต้องรวมข้อมูลจากเหตุการณ์ที่กำหนดเองของ Analytics ที่เรียกว่า ecommerce_purchase ในการคำนวณรายได้สำหรับเมตริกเหล่านี้ (ดูวิธีการ)

(ไม่บังคับ) ใช้ฟีเจอร์อื่นๆ ของ Google Analytics และ Firebase

ใช้ประโยชน์จากโอกาสและฟีเจอร์อื่นๆ ที่มีมากขึ้นเพื่อปรับปรุงการสร้างรายได้จากแอป และ การมีส่วนร่วมของผู้ใช้:

  • เพิ่มและใช้ Firebase SDK สำหรับ Google Analytics

    หากต้องการดูข้อมูลเพิ่มเติม โปรดดูคู่มือสำหรับการใช้ Google Analytics และ Firebase ด้วยแอป AdMob

  • ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase ในแอป

    หลังจากเพิ่ม Firebase SDK สำหรับ Google Analytics แล้ว ให้ใช้ Firebase อื่นๆ เพื่อเพิ่มประสิทธิภาพโฆษณาในแอป

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

    • การทดสอบ A/B ให้คุณทดสอบการเปลี่ยนแปลง UI, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอปเพื่อดูว่าแคมเปญเหล่านั้นสร้าง ผลกระทบต่อเมตริกหลัก (เช่น รายได้และการรักษาลูกค้า) ก่อนเริ่มใช้งาน เปลี่ยนแปลงไปในวงกว้าง