คู่มือเริ่มต้นฉบับย่อนี้มีไว้สำหรับผู้เผยแพร่โฆษณาและนักพัฒนาแอปที่ต้องการใช้ 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 (iOS) เดียวกันกับที่ป้อนสำหรับแอป Firebase ค้นหาชื่อแพ็กเกจหรือรหัส Bundle ของแอป 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++ ได้รับการกำหนดค่าให้ใช้ 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'
ติดตั้ง Pod แล้วเปิดไฟล์
.xcworkspace
ใน Xcodepod 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()
มีดังนี้
// 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เอกสารประกอบ
แบนเนอร์
โฆษณาสี่เหลี่ยมผืนผ้าที่ปรากฏที่ด้านบนหรือด้านล่างของหน้าจออุปกรณ์
โฆษณาแบนเนอร์จะแสดงบนหน้าจอในขณะที่ผู้ใช้โต้ตอบกับแอป และสามารถ รีเฟรชโดยอัตโนมัติหลังจากเวลาผ่านไปช่วงหนึ่ง หากคุณเพิ่งเริ่มใช้โฆษณาบนอุปกรณ์เคลื่อนที่ โฆษณาเหล่านี้ก็เป็นจุดเริ่มต้นที่ดี
ใช้โฆษณาแบนเนอร์โฆษณาคั่นระหว่างหน้า
โฆษณาแบบเต็มหน้าจอที่ครอบคลุมอินเทอร์เฟซของแอปจนกว่าผู้ใช้จะปิด
โฆษณาคั่นระหว่างหน้าควรใช้ในช่วงหยุดพักตามปกติในขั้นตอนการทำงานของแอป เช่น ระหว่างด่านในเกมหรือหลังจากทำงานเสร็จ
ติดตั้งใช้งานโฆษณาคั่นระหว่างหน้าให้รางวัล
โฆษณาที่ให้รางวัลแก่ผู้ใช้หลังจากชมวิดีโอสั้นๆ จบแล้วมีการโต้ตอบกับโฆษณาที่เล่นได้และแบบสำรวจที่เตรียมไว้
โฆษณาที่มีการให้รางวัล (หรือ "โฆษณาที่อิงตามรางวัล") สามารถช่วยสร้างรายได้จากผู้ใช้ที่เล่นเกมฟรี
ติดตั้งใช้งานโฆษณาที่มีการให้รางวัล
หัวข้ออื่นๆ ที่น่าสนใจ
ดูเมตริกผู้ใช้และข้อมูลวิเคราะห์
หลังจากเริ่มต้นแล้ว 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, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอป เพื่อดูว่าการเปลี่ยนแปลงสร้างผลลัพธ์ต่อเมตริกที่สำคัญ (เช่น รายได้และการรักษาผู้ใช้) ได้หรือไม่ก่อนเปิดตัวการเปลี่ยนแปลงในวงกว้าง