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