คู่มือเริ่มต้นฉบับย่อนี้มีไว้สำหรับผู้เผยแพร่โฆษณาและนักพัฒนาแอปที่ต้องการใช้ AdMob เพื่อสร้างรายได้จากแอปที่สร้างด้วย Firebase หากไม่ได้วางแผนที่จะรวม Firebase ไว้ในแอป ให้ไปที่ คำแนะนำAdMob แบบสแตนด์อโลนแทน
หากยังไม่ได้ดำเนินการ โปรดดูประโยชน์ทั้งหมดของการใช้ AdMob, Firebase และ Google Analytics ร่วมกัน
หากคุณอ่านคู่มือนี้เป็นครั้งแรก เราขอแนะนำให้คุณดาวน์โหลดและทำตามโดยใช้แอปทดสอบ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google สำหรับ C++
ก่อนเริ่มต้น
- หากยังไม่มีโปรเจ็กต์ Firebase และแอป Firebase ให้ทำตาม คู่มือเริ่มต้นใช้งาน Firebase เพิ่ม Firebase ลงในโปรเจ็กต์ C++ 
- ตรวจสอบว่าได้เปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase แล้ว โดยทำดังนี้ - หากจะสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ในระหว่างขั้นตอนการสร้างโปรเจ็กต์ 
- หากมีโปรเจ็กต์ Firebase เดิมที่ไม่ได้เปิดใช้ Google Analytics คุณจะเปิดใช้ Google Analytics ได้จาก แท็บการผสานรวม ของ - > การตั้งค่าโปรเจ็กต์ 
 
ขั้นตอนที่ 1: ตั้งค่าแอปในบัญชี AdMob
- ลงทะเบียนแอปแต่ละเวอร์ชันของแพลตฟอร์มเป็นแอป AdMob - ลงชื่อเข้าใช้หรือ ลงชื่อสมัครใช้บัญชี AdMob 
- ลงทะเบียนแอปแต่ละแพลตฟอร์มกับ AdMob ขั้นตอนนี้จะสร้างAdMobแอปที่มีAdMob รหัสแอป ที่ไม่ซ้ำกัน ซึ่งคุณจะต้องใช้ในภายหลังในคู่มือนี้ 
 - ระบบจะขอให้คุณเพิ่ม Mobile Ads SDK ลงในแอป โปรดดู วิธีการโดยละเอียดสำหรับงานนี้ในภายหลังในคู่มือนี้ 
- ลิงก์AdMobแอปแต่ละรายการกับแอป Firebase ที่เกี่ยวข้อง - ขั้นตอนนี้ไม่บังคับ แต่เราขอแนะนำอย่างยิ่งให้ดำเนินการ ดูข้อมูลเพิ่มเติมเกี่ยวกับประโยชน์ ของการเปิดใช้เมตริกผู้ใช้และการลิงก์AdMobแอปกับ Firebase - สำหรับแต่ละแพลตฟอร์ม ให้ทำตาม 2 ขั้นตอนต่อไปนี้ในแดชบอร์ดแอป ของบัญชี AdMob - เปิดใช้ เมตริกผู้ใช้ เพื่อให้ AdMob ประมวลผลและแสดงข้อมูลวิเคราะห์ที่คัดสรรแล้วในบัญชี AdMob นอกจากนี้ยังเป็นข้อกำหนดในการตั้งค่าเพื่อให้คุณลิงก์AdMobแอปกับ Firebase ได้ด้วย 
- ลิงก์แอป AdMobกับโปรเจ็กต์ Firebase ที่มีอยู่และแอป Firebase ที่เกี่ยวข้อง - ตรวจสอบว่าคุณป้อนชื่อแพ็กเกจ (Android) หรือ Bundle ID (iOS) เดียวกันกับที่ป้อนสำหรับแอป Firebase ค้นหาชื่อแพ็กเกจหรือ Bundle ID ของแอป 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
- ในไฟล์ - gradle.propertiesของโปรเจ็กต์ ให้ระบุตำแหน่งของ SDK ที่แตกไฟล์แล้ว- systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK 
- เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ - 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" 
- ในไฟล์ 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 } 
- เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ - 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}") 
- ซิงค์แอปเพื่อให้ทรัพยากร Dependency ทั้งหมดมีเวอร์ชันที่จำเป็น 
คุณพร้อมแล้ว แอป C++ ได้รับการกำหนดค่าให้ใช้ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google สำหรับ C++
iOS
ขั้นตอนในส่วนนี้เป็นตัวอย่างวิธีเพิ่ม Google Mobile Ads C++ SDK ลงในโปรเจ็กต์ iOS
- รับ CocoaPods เวอร์ชัน 1 ขึ้นไปโดยเรียกใช้คำสั่งต่อไปนี้ - sudo gem install cocoapods --pre
- เพิ่ม Google Mobile Ads พ็อดจาก SDK ที่แยกไฟล์แล้ว - หากคุณยังไม่มี Podfile ให้สร้างโดยเรียกใช้คำสั่งต่อไปนี้ - cd YOUR_APP_DIRECTORY- pod init
- เพิ่มพ็อดสำหรับ Google Mobile Ads C++ SDK ลงใน Podfile ดังนี้ - pod 'Google-Mobile-Ads-SDK'
- ติดตั้งพ็อด แล้วเปิดไฟล์ - .xcworkspaceใน Xcode- pod install- open YOUR_APP.xcworkspace
- เพิ่มเฟรมเวิร์กต่อไปนี้จาก 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() มีดังนี้
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 จะเริ่มบันทึก เหตุการณ์ การวิเคราะห์และ พร็อพเพอร์ตี้ผู้ใช้ จากแอปโดยอัตโนมัติ คุณสามารถดูข้อมูลนี้ได้โดยไม่ต้องเพิ่มโค้ดใดๆ ลงในแอป หรือติดตั้งใช้งานโฆษณา คุณดูข้อมูลวิเคราะห์นี้ได้ที่ตำแหน่งต่อไปนี้
- ในการ์ดเมตริกผู้ใช้ของบัญชี AdMob (แดชบอร์ดหน้าแรกหรือแอป) คุณจะดูเมตริก ผู้ใช้ที่คัดสรรแล้วซึ่งได้มาจาก ข้อมูลวิเคราะห์ที่รวบรวมมา เช่น ระยะเวลาเซสชันโดยเฉลี่ย ARPU และการเก็บรักษา 
- ในแดชบอร์ดข้อมูลวิเคราะห์ของ คอนโซล Firebase คุณจะดูสถิติแบบรวมและสรุป เมตริกสําคัญได้ หากเพิ่ม Firebase SDK สำหรับ Google Analytics คุณจะทําเครื่องหมาย Conversion สําหรับแคมเปญโฆษณา และสร้างกลุ่มเป้าหมายที่กําหนดเอง ในคอนโซล Firebase ได้ด้วย 
โปรดทราบว่าหากต้องการแสดงเมตริก
ARPU และ
ARPPU ได้ดียิ่งขึ้น คุณ
อาจต้องรวมข้อมูลจากเหตุการณ์ที่กําหนดเองของ Analytics ที่ชื่อ
ecommerce_purchase
ในการคํานวณรายได้สําหรับเมตริกเหล่านี้
(ดูวิธี)
(ไม่บังคับ) ใช้ฟีเจอร์เพิ่มเติมของ Google Analytics และ Firebase
ใช้ประโยชน์จากโอกาสและฟีเจอร์เพิ่มเติมเพื่อปรับปรุงการสร้างรายได้จากแอปและการมีส่วนร่วมของผู้ใช้ ดังนี้
- เพิ่มและใช้ Firebase SDK สำหรับ Google Analytics - ใช้การบันทึกเหตุการณ์ที่กำหนดเอง ในแอป 
- ทําเครื่องหมาย Conversion สําหรับแคมเปญโฆษณาที่กําหนดเอง 
- รวมข้อมูลเหตุการณ์ - ecommerce_purchaseในการคำนวณรายได้สำหรับเมตริก ARPU และ ARPPU
 - ดูข้อมูลเพิ่มเติมได้ที่คู่มือการใช้ Google Analytics และ Firebase กับAdMobแอป 
- ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase ในแอป - หลังจากเพิ่ม Firebase SDK สำหรับ Google Analytics แล้ว ให้ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase เพื่อเพิ่มประสิทธิภาพโฆษณาในแอป - Remote Config ช่วยให้คุณเปลี่ยนลักษณะการทำงาน และรูปลักษณ์ของแอปได้โดยไม่ต้องเผยแพร่เวอร์ชันอัปเดตของแอป โดยไม่มีค่าใช้จ่ายสำหรับ ผู้ใช้ที่ใช้งานอยู่รายวันแบบไม่จำกัด 
- A/B Testing ช่วยให้คุณทดสอบการเปลี่ยนแปลงที่เกิดขึ้นกับ UI, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอป เพื่อดูว่าการเปลี่ยนแปลงสร้างผลลัพธ์ต่อเมตริกหลัก (เช่น รายได้และการรักษาผู้ใช้) ได้หรือไม่ก่อนที่จะเปิดตัวการเปลี่ยนแปลงในวงกว้าง