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

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

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

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

      ตรวจสอบให้แน่ใจว่าคุณป้อนชื่อแพ็กเกจ (Android) หรือรหัสบันเดิล (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>

ไอโอเอส

ในไฟล์ 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 ไม่ใช่เฉพาะแพลตฟอร์ม แต่ต้องมีการกำหนดค่าไลบรารีเฉพาะแพลตฟอร์ม

หุ่นยนต์

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

    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

ไอโอเอส

ขั้นตอนในส่วนนี้เป็นตัวอย่างวิธีเพิ่ม 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 ของคุณ ให้เพิ่มพ็อดสำหรับ C++ SDK โฆษณาบนมือถือของ 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++ ของคุณได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK

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

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

ไอโอเอส

// 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 คุณลักษณะ หรือแคมเปญการมีส่วนร่วมของแอปได้ เพื่อเรียนรู้ว่าการเปลี่ยนแปลงดังกล่าวส่งผลต่อเมตริกหลักของคุณหรือไม่ (เช่น รายได้และการรักษาผู้ใช้) ก่อนที่จะเผยแพร่การเปลี่ยนแปลงในวงกว้าง