Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

เริ่มต้นใช้งาน AdMob ในโครงการ C++ ของคุณ

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

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

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

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

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

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

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

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

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

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

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

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

      ตรวจสอบว่าคุณป้อนชื่อแพ็กเกจ (Android) หรือ Bundle ID (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 อยู่ในเนมสเปซ 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 ) ให้เพิ่มเนื้อหาต่อไปนี้ ซึ่งรวมถึงการอ้างอิงไลบรารีสำหรับ 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. ซิงค์แอปของคุณเพื่อให้แน่ใจว่าการขึ้นต่อกันทั้งหมดมีเวอร์ชันที่จำเป็น

คุณทุกชุด! แอป C++ ของคุณได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK

iOS

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

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

    sudo gem install cocoapods --pre
  2. เพิ่มพ็อดโฆษณา Google Mobile จาก 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++ ของคุณได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK

ขั้นตอนที่ 4: เริ่มต้น SDK โฆษณาบนมือถือของ Google

ก่อนโหลดโฆษณา ให้เริ่มต้น 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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