คู่มือการเริ่มต้นฉบับย่อนี้มีไว้สำหรับผู้เผยแพร่โฆษณาและนักพัฒนาซอฟต์แวร์ที่ต้องการใช้ AdMob เพื่อสร้างรายได้จากแอปที่สร้างด้วย Firebase
หากคุณยังไม่มี เรียนรู้เกี่ยวกับ ประโยชน์ ทั้งหมดของการใช้ 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 ที่ไม่ซ้ำกัน ซึ่งคุณจะต้องใช้ภายหลังในคู่มือนี้
ระบบจะขอให้คุณเพิ่ม SDK โฆษณาบนมือถือลงในแอปของคุณ ค้นหาคำแนะนำโดยละเอียดสำหรับงานนี้ในภายหลังในคู่มือนี้
เชื่อมโยงแอป AdMob แต่ละแอปกับแอป Firebase ที่เกี่ยวข้อง
ขั้นตอนนี้เป็นทางเลือก แต่ขอแนะนำอย่างยิ่ง เรียนรู้เพิ่มเติมเกี่ยวกับ ประโยชน์ ของการเปิดใช้เมตริกผู้ใช้และการลิงก์แอป AdMob กับ Firebase
สำหรับแพลตฟอร์มแต่ละรุ่น ให้ทำตามขั้นตอนสองขั้นตอนต่อไปนี้ในแดชบอร์ด แอป ของบัญชี AdMob ของคุณ:
เปิด ใช้เมตริกผู้ใช้ เพื่อให้ AdMob ประมวลผลและแสดงข้อมูลการวิเคราะห์ที่ดูแลจัดการในบัญชี AdMob ของคุณ นอกจากนี้ยังเป็นการตั้งค่าที่จำเป็นสำหรับคุณในการลิงก์แอป AdMob กับ Firebase
ลิงก์แอป AdMob กับโปรเจ็กต์ Firebase ที่มีอยู่และแอป Firebase ที่เกี่ยวข้อง
ตรวจสอบว่าคุณป้อนชื่อแพ็กเกจ (Android) หรือ Bundle ID (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: เพิ่ม SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google
เนื่องจาก C++ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google อยู่ในเนมสเปซ 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
) ให้เพิ่มเนื้อหาต่อไปนี้ ซึ่งรวมถึงการอ้างอิงไลบรารีสำหรับ 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}")
ซิงค์แอปของคุณเพื่อให้แน่ใจว่าการขึ้นต่อกันทั้งหมดมีเวอร์ชันที่จำเป็น
คุณทุกชุด! แอป C++ ของคุณได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK
iOS
ขั้นตอนในส่วนนี้เป็นตัวอย่างวิธีการเพิ่ม Google Mobile Ads C++ SDK ให้กับโปรเจ็กต์ iOS ของคุณ
รับ CocoaPods เวอร์ชัน 1 หรือใหม่กว่าโดยเรียกใช้:
sudo gem install cocoapods --pre
เพิ่มพ็อดโฆษณา Google Mobile จาก 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++ ของคุณได้รับการกำหนดค่าให้ใช้ Google Mobile Ads C++ SDK
ขั้นตอนที่ 4: เริ่มต้น SDK โฆษณาบนมือถือของ Google
ก่อนโหลดโฆษณา ให้เริ่มต้น 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
แบนเนอร์
โฆษณาสี่เหลี่ยมที่ปรากฏที่ด้านบนหรือด้านล่างของหน้าจออุปกรณ์
โฆษณาแบนเนอร์จะอยู่บนหน้าจอในขณะที่ผู้ใช้โต้ตอบกับแอป และสามารถรีเฟรชได้โดยอัตโนมัติหลังจากช่วงระยะเวลาหนึ่ง หากคุณยังใหม่ต่อการโฆษณาบนมือถือ สิ่งเหล่านี้เป็นจุดเริ่มต้นที่ดี
ใช้โฆษณาแบนเนอร์โฆษณาคั่นระหว่างหน้า
โฆษณาแบบเต็มหน้าจอที่ครอบคลุมอินเทอร์เฟซของแอปจนผู้ใช้ปิดลง
โฆษณาคั่นระหว่างหน้าควรใช้อย่างดีที่สุดเมื่อหยุดตามปกติในกระบวนการทำงานของแอป เช่น ระหว่างระดับของเกมหรือหลังจากงานเสร็จสิ้น
ใช้โฆษณาคั่นระหว่างหน้าได้รับรางวัล
โฆษณาที่ให้รางวัลแก่ผู้ใช้สำหรับการดูวิดีโอสั้นและโต้ตอบกับโฆษณาและแบบสำรวจที่เล่นได้
โฆษณาที่มีการให้รางวัล (หรือ "ตามรางวัล") สามารถช่วยสร้างรายได้จากผู้ใช้ที่เล่นฟรี
หัวข้ออื่นๆ ที่น่าสนใจ
ดูตัวชี้วัดผู้ใช้และข้อมูลการวิเคราะห์
หลังจากการเริ่มต้น SDK โฆษณาบนมือถือจะเริ่มบันทึก เหตุการณ์ การวิเคราะห์และ คุณสมบัติผู้ใช้ จากแอปของคุณโดยอัตโนมัติ คุณสามารถดูข้อมูลนี้โดยไม่ต้องเพิ่มโค้ดเพิ่มเติมใดๆ ในแอปของคุณหรือติดตั้งโฆษณาใดๆ ที่นี่คุณสามารถดูข้อมูลการวิเคราะห์นี้ได้:
ในการ์ด เมตริกผู้ใช้ ของบัญชี AdMob ของคุณ (แดชบอร์ด หน้าแรก หรือ แอป ) คุณสามารถดู เมตริกผู้ใช้ ที่ได้รับการดูแลซึ่งได้มาจากข้อมูลการวิเคราะห์ที่รวบรวมไว้ เช่น ระยะเวลาเซสชัน เฉลี่ย ARPU และการเก็บรักษา
ใน แดชบอร์ด Analytics ของคอนโซล Firebase คุณสามารถดูสถิติรวมและ ข้อมูลสรุปของเมตริกหลัก หากคุณ เพิ่ม Firebase SDK สำหรับ Google Analytics คุณยังสามารถ ทำเครื่องหมาย Conversion สำหรับแคมเปญโฆษณา และ สร้างผู้ชมที่กำหนดเอง ในคอนโซล Firebase
โปรดทราบว่าเพื่อให้แสดงเมตริก ARPU และ ARPPU ได้ดีขึ้น คุณอาจต้องการรวมข้อมูลจากเหตุการณ์ ที่กำหนดเอง ของการวิเคราะห์ที่เรียกว่า ecommerce_purchase
ในการคำนวณรายได้สำหรับเมตริกเหล่านี้ ( เรียนรู้วิธี )
(ไม่บังคับ) ใช้คุณลักษณะเพิ่มเติมของ Google Analytics และ Firebase
ใช้ประโยชน์จากโอกาสและคุณสมบัติเพิ่มเติมเพื่อปรับปรุงการสร้างรายได้จากแอปและการมีส่วนร่วมของผู้ใช้:
เพิ่มและใช้ Firebase SDK สำหรับ Google Analytics
ใช้การ บันทึกเหตุการณ์ที่กำหนดเอง ในแอปของคุณ
ทำเครื่องหมาย Conversion สำหรับ แคมเปญโฆษณาที่กำหนดเอง
รวมข้อมูลเหตุการณ์
ecommerce_purchase
ในการคำนวณรายได้สำหรับเมตริก ARPU และ ARPPU
ใช้ผลิตภัณฑ์ Firebase อื่นๆ ในแอปของคุณ
หลังจากที่คุณเพิ่ม Firebase SDK สำหรับ Google Analytics แล้ว ให้ใช้ผลิตภัณฑ์ Firebase อื่นๆ เพื่อเพิ่มประสิทธิภาพโฆษณาในแอปของคุณ
การกำหนดค่าระยะไกล ทำให้คุณสามารถเปลี่ยนลักษณะการทำงานและรูปลักษณ์ของแอปได้โดยไม่ต้องเผยแพร่การอัปเดตแอป โดยไม่มีค่าใช้จ่ายสำหรับผู้ใช้ที่ใช้งานรายวันแบบไม่จำกัด
การทดสอบ A/B ให้อำนาจคุณในการทดสอบการเปลี่ยนแปลงใน UI, คุณลักษณะ หรือแคมเปญการมีส่วนร่วมของแอป เพื่อเรียนรู้ว่าการเปลี่ยนแปลงเหล่านี้ส่งผลต่อเมตริกหลักของคุณหรือไม่ (เช่น รายได้และการรักษา) ก่อนที่จะเผยแพร่การเปลี่ยนแปลงในวงกว้าง
ในการเริ่มต้น โปรดไปที่คำแนะนำในการ ใช้ Google Analytics และ Firebase กับแอป AdMob