พิจารณาใช้ SDK ของ iOS และ Android จาก AdMob
คู่มือเริ่มต้นฉบับย่อนี้มีไว้สำหรับผู้เผยแพร่โฆษณาและนักพัฒนาแอปที่ต้องการใช้ AdMob เพื่อสร้างรายได้จากแอปที่สร้างด้วย Firebase หากไม่วางแผนที่จะรวม Firebase ไว้ในแอป ให้ไปที่ คำแนะนำAdMob แบบสแตนด์อโลนแทน
หากยังไม่ได้ดำเนินการ โปรดดูประโยชน์ทั้งหมดของการใช้ 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
ลงทะเบียนแอปแต่ละแพลตฟอร์มของแอปเป็นAdMob
ลงชื่อเข้าใช้หรือ ลงชื่อสมัครใช้บัญชี AdMob
ลงทะเบียนแอปแต่ละแพลตฟอร์มกับ AdMob ขั้นตอนนี้จะสร้างAdMobแอปที่มีAdMob รหัสแอป ที่ไม่ซ้ำกันซึ่งคุณจะต้องใช้ในภายหลังในคู่มือนี้
ระบบจะขอให้คุณเพิ่ม Mobile Ads 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 ที่มีค่าสตริงของ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++ SDKandroid.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++ ได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK
iOS
ขั้นตอนในส่วนนี้เป็นตัวอย่างวิธีเพิ่ม Google Mobile Ads C++ SDK ลงในโปรเจ็กต์ iOS
ดาวน์โหลด CocoaPods เวอร์ชัน 1 ขึ้นไปโดยเรียกใช้คำสั่งต่อไปนี้
sudo gem install cocoapods --preเพิ่มพ็อด Google Mobile Ads จาก SDK ที่ไม่ได้ซิป
สร้าง Podfile หากยังไม่มี
cd YOUR_APP_DIRECTORYpod initเพิ่มพ็อดสำหรับ Google Mobile Ads C++ SDK ลงใน Podfile ดังนี้
pod 'Google-Mobile-Ads-SDK'ติดตั้งพ็อด แล้วเปิดไฟล์
.xcworkspaceใน Xcodepod installopen YOUR_APP.xcworkspaceเพิ่มเฟรมเวิร์กต่อไปนี้จาก Firebase C++ SDK ลงในโปรเจ็กต์
xcframeworks/firebase.xcframeworkxcframeworks/firebase_gma.xcframework
คุณพร้อมแล้ว แอป C++ ได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK
ขั้นตอนที่ 4: เริ่มต้นใช้งาน Google Mobile Ads SDK
ก่อนโหลดโฆษณา ให้เริ่มต้น 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 เสร็จสมบูรณ์ได้ด้วย ใน
บางกรณี การเรียกกลับจะทำงานในเธรดอื่น ดังนั้นโปรดตรวจสอบว่า
โค้ดของคุณปลอดภัยต่อเธรด ข้อมูลโค้ดนี้ใช้ตัวชี้ฟังก์ชันสำหรับ
การเรียกกลับ
// 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เอกสารประกอบ
แบนเนอร์
โฆษณารูปสี่เหลี่ยมผืนผ้าที่ปรากฏที่ด้านบนหรือด้านล่างของหน้าจออุปกรณ์
โฆษณาแบนเนอร์จะอยู่บนหน้าจอในขณะที่ผู้ใช้โต้ตอบกับแอป และสามารถ รีเฟรชโดยอัตโนมัติหลังจากเวลาผ่านไปช่วงหนึ่ง หากคุณเพิ่งเริ่มใช้การโฆษณาบนอุปกรณ์เคลื่อนที่ การโฆษณาในแอปก็เป็นจุดเริ่มต้นที่ดี
ใช้โฆษณาแบนเนอร์โฆษณาคั่นระหว่างหน้า
โฆษณาแบบเต็มหน้าจอที่ครอบคลุมอินเทอร์เฟซของแอปจนกว่าผู้ใช้จะปิด
โฆษณาคั่นระหว่างหน้าเหมาะที่จะใช้ในช่วงหยุดพักตามปกติในขั้นตอนการทำงานของแอป เช่น ระหว่างด่านของเกม หรือหลังจากที่ทำภารกิจเสร็จสิ้น
ใช้โฆษณาคั่นระหว่างหน้าให้รางวัล
โฆษณาที่ให้รางวัลแก่ผู้ใช้หลังจากชมวิดีโอสั้นๆ จบแล้วมีการโต้ตอบกับโฆษณาที่เล่นได้และแบบสำรวจที่เตรียมไว้
โฆษณาที่มีการให้รางวัล (หรือ "โฆษณาที่อิงตามรางวัล") สามารถช่วยสร้างรายได้จากผู้ใช้ที่เล่นฟรี
ติดตั้งใช้งานโฆษณาที่มีการให้รางวัล
หัวข้ออื่นๆ ที่น่าสนใจ
สํารวจวิธีเพิ่มเติมในการวัดเมตริกและผสานรวมฟีเจอร์ Firebase กับ AdMob
ดูเมตริกผู้ใช้และข้อมูลวิเคราะห์
หลังจากเริ่มต้นแล้ว Mobile Ads SDK จะเริ่มบันทึก เหตุการณ์การวิเคราะห์และ พร็อพเพอร์ตี้ผู้ใช้ จากแอปโดยอัตโนมัติ คุณสามารถดูข้อมูลนี้ได้โดยไม่ต้องเพิ่มโค้ดใดๆ ลงในแอป หรือติดตั้งใช้งานโฆษณา คุณดูข้อมูลวิเคราะห์นี้ได้ที่
ในการ์ดเมตริกผู้ใช้ของบัญชี AdMob (แดชบอร์ดหน้าแรกหรือแอป) คุณจะดูเมตริก ผู้ใช้ที่คัดสรรแล้วซึ่งได้มาจาก ข้อมูลวิเคราะห์ที่รวบรวม เช่น ระยะเวลาเซสชันโดยเฉลี่ย ARPU และการคงผู้ใช้ไว้
ในแดชบอร์ดข้อมูลวิเคราะห์ของ คอนโซล Firebase คุณจะดูสถิติแบบรวมและสรุป เมตริกสําคัญได้ หากเพิ่ม Firebase SDK สำหรับ Google Analytics คุณจะทําเครื่องหมาย Conversion สําหรับแคมเปญโฆษณา และสร้างกลุ่มเป้าหมายที่กําหนดเอง ในคอนโซล Firebase ได้ด้วย
โปรดทราบว่าคุณอาจต้องรวมข้อมูลจากเหตุการณ์ที่กําหนดเองของ Analytics ที่ชื่อว่า
ecommerce_purchase
ในการคํานวณรายได้สําหรับเมตริกเหล่านี้ (ดูวิธี) เพื่อให้แสดงเมตริก
ARPU และ
ARPPU ได้ดียิ่งขึ้น
(ไม่บังคับ) ใช้ฟีเจอร์เพิ่มเติมของ 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, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอปเพื่อดูว่าการเปลี่ยนแปลงเหล่านั้นส่งผลต่อเมตริกหลัก (เช่น รายได้และการรักษาผู้ใช้) หรือไม่ ก่อนที่จะเปิดตัวการเปลี่ยนแปลงในวงกว้าง