เริ่มต้นใช้งาน 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