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

ลองใช้ SDK ของ iOS และ Android จาก AdMob


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

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

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

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

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

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

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

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

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

  1. ลงทะเบียนแอปแต่ละเวอร์ชันสำหรับแต่ละแพลตฟอร์มเป็นแอป AdMob

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

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

    ระบบจะขอให้คุณเพิ่ม Mobile Ads 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: เพิ่ม Google Mobile Ads SDK

เนื่องจาก Google Mobile Ads C++ SDK อยู่ในเนมสเปซ 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 C++ SDK

    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++ ได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK แล้ว

iOS

ขั้นตอนในส่วนนี้เป็นตัวอย่างวิธีเพิ่ม Google Mobile Ads C++ SDK ลงในโปรเจ็กต์ iOS

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

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

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. เพิ่ม Pod สำหรับ Google Mobile Ads C++ SDK ลงใน Podfile

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

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

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

คุณพร้อมแล้ว แอป C++ ได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK แล้ว

ขั้นตอนที่ 4: เริ่มต้น Google Mobile Ads SDK

ก่อนโหลดโฆษณา ให้เริ่มต้น 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 แสดงว่าการดำเนินการเสร็จสมบูรณ์แล้ว

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

// 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 จะเริ่มบันทึกเหตุการณ์ Analytics และพร็อพเพอร์ตี้ผู้ใช้จากแอปโดยอัตโนมัติ คุณสามารถดูข้อมูลนี้ได้โดยไม่ต้องเพิ่มโค้ดเพิ่มเติมลงในแอปหรือติดตั้งใช้งานโฆษณา ตำแหน่งที่คุณดูข้อมูลวิเคราะห์นี้ได้มีดังนี้

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

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

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

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

    ดูข้อมูลเพิ่มเติมได้ที่คู่มือการใช้ และ Firebase กับ AdMob แอปGoogle Analytics

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

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

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

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