คู่มือเริ่มต้นฉบับย่อนี้มีไว้สำหรับผู้เผยแพร่โฆษณาและนักพัฒนาซอฟต์แวร์ที่ต้องการใช้ 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
ลงทะเบียนแต่ละแพลตฟอร์มของแอปของคุณเป็นแอป AdMob
ลงชื่อเข้าใช้ หรือ ลงชื่อสมัคร ใช้บัญชี AdMob
ลงทะเบียนแต่ละแพลตฟอร์มของแอปของคุณกับ AdMob ขั้นตอนนี้สร้างแอป AdMob ด้วย รหัสแอป AdMob ที่ไม่ซ้ำ ซึ่งคุณจะต้องใช้ในภายหลังในคู่มือนี้
ระบบจะขอให้คุณเพิ่ม Mobile Ads SDK ลงในแอปของคุณ ค้นหาคำแนะนำโดยละเอียดสำหรับงานนี้ในภายหลังในคู่มือนี้
เชื่อมโยงแอป AdMob แต่ละแอปของคุณกับแอป Firebase ที่เกี่ยวข้อง
ขั้นตอนนี้เป็นทางเลือกแต่ขอแนะนำอย่างยิ่ง เรียนรู้เพิ่มเติมเกี่ยวกับ ประโยชน์ ของการเปิดใช้งานเมตริกผู้ใช้และการเชื่อมโยงแอป AdMob กับ Firebase
สำหรับแต่ละรูปแบบแพลตฟอร์ม ให้ดำเนินการสองขั้นตอนต่อไปนี้ในแดชบอร์ด Apps ของบัญชี AdMob ของคุณ:
เปิดใช้ เมตริกผู้ใช้ เพื่อให้ AdMob ประมวลผลและแสดงข้อมูลวิเคราะห์ที่คัดสรรแล้วในบัญชี AdMob ของคุณ นอกจากนี้ยังเป็นการตั้งค่าที่จำเป็นสำหรับคุณในการเชื่อมโยงแอป AdMob กับ Firebase
ลิงก์แอป AdMob กับโปรเจ็กต์ Firebase ที่มีอยู่และแอป Firebase ที่เกี่ยวข้อง
ตรวจสอบว่าคุณป้อนชื่อแพ็กเกจ (Android) หรือ Bundle ID (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>
iOS
ในไฟล์ Info.plist
ของแอป ให้เพิ่มคีย์ GADApplicationIdentifier
ด้วยค่าสตริงของ AdMob App ID ของคุณ
คุณสามารถทำการเปลี่ยนแปลงนี้โดยทางโปรแกรม:
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 --> <key>GADApplicationIdentifier</key> <string>ADMOB_APP_ID</string>
หรือแก้ไขในตัวแก้ไขรายการคุณสมบัติ:
ขั้นตอนที่ 3: เพิ่ม SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google
เนื่องจาก SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google C++ อยู่ในเนมสเปซ firebase::gma
ให้ดาวน์โหลด Firebase C++ SDK แล้วแตกไฟล์ไปยังไดเร็กทอรีที่คุณเลือก
Firebase C++ SDK ไม่ใช่เฉพาะแพลตฟอร์ม แต่จำเป็นต้องมีการกำหนดค่าไลบรารีเฉพาะแพลตฟอร์ม
แอนดรอยด์
ในไฟล์
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
) ให้เพิ่มเนื้อหาต่อไปนี้ ซึ่งรวมถึงการขึ้นต่อกันของไลบรารีสำหรับ SDK โฆษณา C++ ของ Google Mobileandroid.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}")
ซิงค์แอปของคุณเพื่อให้แน่ใจว่าการอ้างอิงทั้งหมดมีเวอร์ชันที่จำเป็น
คุณทุกชุด! แอป 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
ใน Podfile ของคุณ ให้เพิ่มพ็อดสำหรับ Google Mobile Ads C++ SDK:
pod 'Google-Mobile-Ads-SDK'
ติดตั้งพ็อด จากนั้นเปิดไฟล์
.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. }
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
แบนเนอร์
โฆษณารูปสี่เหลี่ยมผืนผ้าที่ปรากฏที่ด้านบนหรือด้านล่างของหน้าจออุปกรณ์
โฆษณาแบนเนอร์จะอยู่บนหน้าจอขณะที่ผู้ใช้โต้ตอบกับแอป และสามารถรีเฟรชโดยอัตโนมัติหลังจากผ่านไประยะหนึ่ง หากคุณยังใหม่กับการโฆษณาบนมือถือ โฆษณาเหล่านี้เป็นจุดเริ่มต้นที่ดี
ใช้แบนเนอร์โฆษณาโฆษณาคั่นระหว่างหน้า
โฆษณาแบบเต็มหน้าจอที่ครอบคลุมอินเทอร์เฟซของแอปจนกว่าผู้ใช้จะปิด
โฆษณาคั่นระหว่างหน้าจะใช้งานได้ดีที่สุดเมื่อหยุดชั่วคราวตามธรรมชาติของการดำเนินการของแอป เช่น ระหว่างด่านต่างๆ ของเกม หรือหลังจากงานเสร็จสิ้น
ใช้โฆษณาคั่นระหว่างหน้าได้รับรางวัล
โฆษณาที่ให้รางวัลแก่ผู้ใช้สำหรับการดูวิดีโอสั้นและโต้ตอบกับโฆษณาและแบบสำรวจที่เล่นได้
โฆษณาที่มีการให้รางวัล (หรือ "ตามรางวัล") สามารถช่วยสร้างรายได้จากผู้ใช้ที่เล่นฟรี
หัวข้ออื่นๆ ที่น่าสนใจ
ดูเมตริกผู้ใช้และข้อมูลการวิเคราะห์
หลังจากเริ่มต้น SDK โฆษณาบนอุปกรณ์เคลื่อนที่จะเริ่มบันทึก เหตุการณ์ การวิเคราะห์และ พร็อพเพอร์ตี้ผู้ใช้ โดยอัตโนมัติจากแอปของคุณ คุณสามารถดูข้อมูลนี้ได้โดยไม่ต้องเพิ่มโค้ดเพิ่มเติมในแอปของคุณหรือติดตั้งโฆษณาใดๆ ที่นี่คุณสามารถดูข้อมูลการวิเคราะห์นี้:
ในการ์ด เมตริกผู้ใช้ ของบัญชี AdMob (หน้าแดชบอร์ด หน้าแรก หรือ แอป ) คุณสามารถดู เมตริกผู้ใช้ ที่ได้รับการจัดการซึ่งมาจากข้อมูลการวิเคราะห์ที่รวบรวม เช่น ระยะเวลาเซสชันเฉลี่ย ARPU และการรักษาผู้ใช้
ใน แดชบอร์ด Analytics ของคอนโซล Firebase คุณสามารถดูสถิติรวมและข้อมูล สรุปของเมตริกหลัก หากคุณ เพิ่ม Firebase SDK สำหรับ Google Analytics คุณยังสามารถ ทำเครื่องหมาย Conversion สำหรับแคมเปญโฆษณา และ สร้างกลุ่มเป้าหมายที่กำหนดเอง ในคอนโซล Firebase
โปรดทราบว่าเพื่อแสดงเมตริก ARPU และ ARPPU ได้ดียิ่งขึ้น คุณอาจต้องการรวมข้อมูลจากเหตุการณ์ ที่กำหนดเอง สำหรับการวิเคราะห์ชื่อ ecommerce_purchase
ในการคำนวณรายได้สำหรับเมตริกเหล่านี้ ( เรียนรู้วิธี )
(ไม่บังคับ) ใช้คุณสมบัติเพิ่มเติมของ Google Analytics และ Firebase
ใช้ประโยชน์จากโอกาสและคุณสมบัติเพิ่มเติมเพื่อปรับปรุงการสร้างรายได้จากแอปและการมีส่วนร่วมของผู้ใช้:
เพิ่มและใช้ Firebase SDK สำหรับ Google Analytics
ใช้ การบันทึกเหตุการณ์ที่กำหนดเอง ในแอปของคุณ
ทำเครื่องหมายคอนเวอร์ชันสำหรับ แคมเปญโฆษณาที่กำหนดเอง
รวมข้อมูลเหตุการณ์
ecommerce_purchase
ในการคำนวณรายได้สำหรับเมตริก ARPU และ ARPPU
หากต้องการเรียนรู้เพิ่มเติม โปรดไปที่คู่มือการ ใช้ Google Analytics และ Firebase กับแอป AdMob
ใช้ผลิตภัณฑ์ Firebase อื่นๆ ในแอปของคุณ
หลังจากที่คุณเพิ่ม Firebase SDK สำหรับ Google Analytics แล้ว ให้ใช้ผลิตภัณฑ์ Firebase อื่นๆ เพื่อเพิ่มประสิทธิภาพโฆษณาในแอปของคุณ
การกำหนดค่าระยะไกล ช่วยให้คุณเปลี่ยนลักษณะการทำงานและรูปลักษณ์ของแอปโดยไม่ต้องเผยแพร่การอัปเดตแอป โดยไม่มีค่าใช้จ่าย สำหรับผู้ใช้ที่ใช้งานรายวันแบบไม่จำกัด
การทดสอบ A/B ช่วยให้คุณทดสอบการเปลี่ยนแปลงใน UI, คุณลักษณะ หรือแคมเปญการมีส่วนร่วมของแอป เพื่อเรียนรู้ว่าการเปลี่ยนแปลงส่งผลกระทบต่อเมตริกหลักของคุณหรือไม่ (เช่น รายได้และการรักษาลูกค้า) ก่อนที่จะนำการเปลี่ยนแปลงไปใช้ในวงกว้าง