เริ่มต้นใช้งาน 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 ที่ไม่ซ้ำ ซึ่งคุณจะต้องใช้ในภายหลังในคู่มือนี้

    ระบบจะขอให้คุณเพิ่ม Mobile Ads SDK ลงในแอปของคุณ ค้นหาคำแนะนำโดยละเอียดสำหรับงานนี้ในภายหลังในคู่มือนี้

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

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

    สำหรับแต่ละรูปแบบแพลตฟอร์ม ให้ดำเนินการสองขั้นตอนต่อไปนี้ในแดชบอร์ด Apps ของบัญชี AdMob ของคุณ:

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

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

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

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

แอนดรอยด์

เพิ่ม รหัสแอป 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 App ID ของคุณ

คุณสามารถทำการเปลี่ยนแปลงนี้โดยทางโปรแกรม:

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

หรือแก้ไขในตัวแก้ไขรายการคุณสมบัติ:

ผู้แก้ไขรายการคุณสมบัติ

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

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

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

แอนดรอยด์

  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 ) ให้เพิ่มเนื้อหาต่อไปนี้ ซึ่งรวมถึงการขึ้นต่อกันของไลบรารีสำหรับ SDK โฆษณา C++ ของ Google Mobile

    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. ซิงค์แอปของคุณเพื่อให้แน่ใจว่าการอ้างอิงทั้งหมดมีเวอร์ชันที่จำเป็น

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

iOS

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

  1. รับ CocoaPods เวอร์ชัน 1 หรือใหม่กว่าโดยเรียกใช้:

    sudo gem install cocoapods --pre
  2. เพิ่มพ็อด Google Mobile Ads จาก SDK ที่คลายซิป

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. ใน Podfile ของคุณ ให้เพิ่มพ็อดสำหรับ Google Mobile Ads C++ SDK:

      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++ ของคุณได้รับการกำหนดค่าให้ใช้ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google C++

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

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

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

นี่คือตัวอย่างวิธีการเรียก Initialize() :

แอนดรอยด์

// 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(ไม่บังคับ) ใช้คุณสมบัติเพิ่มเติมของ Google Analytics และ Firebase

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

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

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

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

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

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

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