คู่มือเริ่มใช้งานฉบับย่อนี้มีไว้สำหรับผู้เผยแพร่โฆษณาและนักพัฒนาซอฟต์แวร์ที่ต้องการใช้ AdMob เพื่อสร้างรายได้จากแอปที่สร้างด้วย Firebase หากคุณไม่มีแผนที่จะรวม Firebase ไว้ในแอป ให้ไปที่คู่มือ AdMob แบบสแตนด์อโลนแทน
ดูประโยชน์ทั้งหมดของการใช้ AdMob, Firebase และ Google Analytics ร่วมกัน หากยังไม่ได้ดู
หากนี่เป็นครั้งแรกที่คุณศึกษาคู่มือนี้ เราขอแนะนำให้คุณดาวน์โหลดและติดตามโดยใช้แอปทดสอบ C++ SDK ของ Google Mobile Ads
ก่อนเริ่มต้น
หากยังไม่มีโปรเจ็กต์ Firebase และแอป Firebase ให้ทำตาม คู่มือเริ่มต้นใช้งาน Firebase เพิ่ม Firebase ลงในโปรเจ็กต์ C++
ตรวจสอบว่าเปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase แล้ว โดยทำดังนี้
หากคุณกำลังสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ในระหว่างกระบวนการสร้างโปรเจ็กต์
หากมีโปรเจ็กต์ Firebase เดิมที่ไม่ได้เปิดใช้ Google Analytics คุณเปิดใช้ Google Analytics ได้จากแท็บการผสานรวมของ
> การตั้งค่าโปรเจ็กต์
ขั้นตอนที่ 1: ตั้งค่าแอปในบัญชี AdMob
ลงทะเบียนแอปแต่ละแพลตฟอร์มเป็นแอป AdMob
ลงชื่อเข้าใช้หรือลงชื่อสมัครใช้บัญชี AdMob
ลงทะเบียนแอปแต่ละเวอร์ชันในแพลตฟอร์มแต่ละเวอร์ชันกับ AdMob ขั้นตอนนี้จะสร้างแอป AdMob ที่มีรหัสแอป AdMob ที่ไม่ซ้ำกันซึ่งคุณจะต้องใช้ภายหลังในคู่มือนี้
ระบบจะขอให้คุณเพิ่ม SDK โฆษณาในอุปกรณ์เคลื่อนที่ลงในแอป ดูวิธีการโดยละเอียดสำหรับงานนี้ได้ภายหลังในคู่มือนี้
ลิงก์แอป AdMob แต่ละแอปของคุณกับแอป Firebase ที่เกี่ยวข้อง
ขั้นตอนนี้เป็นขั้นตอนที่ไม่บังคับ แต่ขอแนะนำอย่างยิ่ง ดูข้อมูลเพิ่มเติมเกี่ยวกับประโยชน์ของการเปิดใช้เมตริกผู้ใช้และลิงก์แอป AdMob กับ Firebase
สําหรับแต่ละแพลตฟอร์ม ให้ทํา 2 ขั้นตอนต่อไปนี้ในแดชบอร์ดแอปของบัญชี AdMob
เปิดใช้ เมตริกผู้ใช้ เพื่อให้ AdMob ประมวลผลและแสดงข้อมูลการวิเคราะห์ที่ได้รับการดูแลจัดการในบัญชี AdMob ของคุณ นอกจากนี้ ยังเป็นการตั้งค่าที่จำเป็นสำหรับการลิงก์ แอป AdMob กับ Firebase ด้วย
ลิงก์แอป AdMob กับโปรเจ็กต์ Firebase ที่มีอยู่และแอป Firebase ที่เกี่ยวข้อง
ตรวจสอบว่าคุณป้อนชื่อแพ็กเกจ (Android) หรือรหัสชุด (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
ที่มีค่าสตริงเป็น App ID ของ AdMob
คุณทำการเปลี่ยนแปลงนี้แบบเป็นโปรแกรมได้โดยทำดังนี้
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 --> <key>GADApplicationIdentifier</key> <string>ADMOB_APP_ID</string>
หรือจะแก้ไขในเครื่องมือแก้ไขรายการพร็อพเพอร์ตี้ก็ได้ ดังนี้
ขั้นตอนที่ 3: เพิ่ม SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google
เนื่องจาก C++ SDK ของ Google Mobile Ads อยู่ในเนมสเปซ firebase::gma
โปรดดาวน์โหลด Firebase C++ SDK แล้วแตกไฟล์ไปยังไดเรกทอรีที่คุณต้องการ
Firebase C++ SDK ไม่ได้เจาะจงแพลตฟอร์ม แต่ต้องมีการกำหนดค่าไลบรารีเฉพาะแพลตฟอร์ม
Android
ระบุตำแหน่งของ SDK ที่แตกแล้วในไฟล์
gradle.properties
ของโปรเจ็กต์ ดังนี้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 ของไลบรารีสำหรับ C++ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Googleandroid.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++ ของคุณได้รับการกำหนดค่าให้ใช้ C++ SDK สำหรับโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google
iOS
ขั้นตอนในส่วนนี้เป็นตัวอย่างของวิธีเพิ่ม C++ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google ลงในโปรเจ็กต์ iOS
รับ CocoaPods เวอร์ชัน 1 ขึ้นไปโดยการเรียกใช้:
sudo gem install cocoapods --pre
เพิ่มพ็อดโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google จาก SDK ที่แตกแล้ว
สร้าง Podfile หากคุณยังไม่มี:
cd YOUR_APP_DIRECTORY
pod init
ไปที่ Podfile ให้เพิ่มพ็อดสำหรับ SDK ของ C++ โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google ดังนี้
pod 'Google-Mobile-Ads-SDK'
ติดตั้งพ็อด แล้วเปิดไฟล์
.xcworkspace
ใน Xcodepod install
open YOUR_APP.xcworkspace
เพิ่มเฟรมเวิร์กต่อไปนี้จาก Firebase C++ SDK ลงในโปรเจ็กต์
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
เรียบร้อยแล้ว แอป C++ ของคุณได้รับการกำหนดค่าให้ใช้ C++ SDK สำหรับโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google
ขั้นตอนที่ 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
แสดงว่าการดำเนินการเสร็จสมบูรณ์แล้ว
นอกจากนี้ คุณยังลงทะเบียน Callback ที่จะเรียกใช้เมื่อ Future
เสร็จสมบูรณ์ได้ด้วย ในบางกรณี Callback จะทำงานในเทรดอื่น ดังนั้นโปรดตรวจสอบว่าโค้ดของคุณความปลอดภัยของเทรด ข้อมูลโค้ดนี้ใช้ตัวชี้ฟังก์ชันสำหรับการเรียกกลับ
// 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 จะเริ่มบันทึกเหตุการณ์และพร็อพเพอร์ตี้ผู้ใช้ของ Analytics จากแอปของคุณโดยอัตโนมัติ คุณสามารถดูข้อมูลนี้ได้โดยไม่ต้องเพิ่มโค้ดใดๆ ลงในแอปหรือติดตั้งใช้งานโฆษณาใดๆ คุณดูข้อมูลวิเคราะห์นี้ได้โดยทำดังนี้
ในการ์ดเมตริกผู้ใช้ของบัญชี AdMob (หน้าแรกหรือแดชบอร์ดแอป) คุณสามารถดูเมตริกผู้ใช้ที่คัดสรรมาจาก ข้อมูลวิเคราะห์ที่รวบรวมได้ เช่น ระยะเวลาเซสชันเฉลี่ย, ARPU และการคงผู้ใช้ไว้
คุณดูสถิติรวมและสรุปเมตริกที่สำคัญได้ในหน้าแดชบอร์ด Analytics ของคอนโซล 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 อื่นๆ เพื่อเพิ่มประสิทธิภาพโฆษณาในแอป
การกำหนดค่าระยะไกลช่วยให้คุณเปลี่ยนลักษณะการทำงานและรูปลักษณ์ของแอปได้โดยไม่ต้องเผยแพร่การอัปเดตแอปสำหรับผู้ใช้ที่ใช้งานอยู่รายวันโดยไม่มีค่าใช้จ่าย
การทดสอบ A/B ให้คุณทดสอบการเปลี่ยนแปลงใน UI, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอปเพื่อดูว่าการเปลี่ยนแปลงเหล่านั้นส่งผลต่อเมตริกหลัก (เช่น รายได้และการรักษาผู้ใช้) หรือไม่ ก่อนที่จะนำการเปลี่ยนแปลงออกในวงกว้าง