ลองใช้ SDK ของ iOS และ Android จาก AdMob
คู่มือเริ่มต้นใช้งานฉบับย่อนี้มีไว้สำหรับผู้เผยแพร่โฆษณาและนักพัฒนาแอปที่ต้องการใช้ AdMob เพื่อสร้างรายได้จากแอปที่สร้างด้วย Firebase หากไม่ต้องการรวม Firebase ไว้ในแอป โปรดไปที่ คู่มือ AdMob แบบสแตนด์อโลนแทน
หากอ่านคู่มือนี้เป็นครั้งแรก เราขอแนะนำให้คุณ ดาวน์โหลดและทำตามโดยใช้แอปทดสอบ Google Mobile Ads C++ SDK
ก่อนเริ่มต้น
หากยังไม่มีโปรเจ็กต์ Firebase และแอป Firebase ให้ทำตาม คู่มือเริ่มต้นใช้งาน Firebase: เพิ่ม Firebase ลงในโปรเจ็กต์ C++
ตรวจสอบว่าได้เปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase แล้ว โดยทำดังนี้
หากจะสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ในระหว่างขั้นตอนการสร้างโปรเจ็กต์
หากมีโปรเจ็กต์ Firebase เดิมที่ไม่ได้เปิดใช้ Google Analytics ให้เปิดใช้ Google Analytics ในคอนโซล Firebase โดยไปที่แท็บ การผสานรวม ของการตั้งค่า
> การตั้งค่าโปรเจ็กต์
ขั้นตอนที่ 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 Pod จาก SDK ที่แตกไฟล์แล้ว
หากคุณยังไม่มี Podfile ให้สร้างโดยเรียกใช้คำสั่งต่อไปนี้
cd YOUR_APP_DIRECTORYpod initเพิ่ม Pod สำหรับ Google Mobile Ads C++ SDK ลงใน Podfile
pod 'Google-Mobile-Ads-SDK'ติดตั้ง Pod แล้วเปิดไฟล์
.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 แสดงว่าการดำเนินการเสร็จสมบูรณ์แล้ว
นอกจากนี้ คุณยังลงทะเบียนฟังก์ชันเรียกกลับให้เรียกใช้เมื่อ 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 จะเริ่มบันทึกเหตุการณ์ Analytics และพร็อพเพอร์ตี้ผู้ใช้จากแอปโดยอัตโนมัติ คุณสามารถดูข้อมูลนี้ได้โดยไม่ต้องเพิ่มโค้ดเพิ่มเติมลงในแอปหรือติดตั้งใช้งานโฆษณา ตำแหน่งที่คุณดูข้อมูลวิเคราะห์นี้ได้มีดังนี้
ในการ์ด เมตริกผู้ใช้ ของบัญชี AdMob (แดชบอร์ด หน้าแรก หรือ แอป ) คุณจะดูเมตริก ผู้ใช้ที่คัดสรรแล้วซึ่งได้มาจาก ข้อมูลวิเคราะห์ที่รวบรวมมา เช่น ระยะเวลาเซสชันโดยเฉลี่ย, ARPU และการรักษาผู้ใช้
ในแดชบอร์ด Analytics ของ คอนโซล Firebase คุณจะดูสถิติแบบรวมและข้อมูลสรุปของ เมตริกหลักได้ หากคุณ เพิ่ม Firebase SDK สำหรับ Google Analytics, คุณยัง ทำเครื่องหมาย Conversion สำหรับแคมเปญโฆษณา และ สร้างกลุ่มเป้าหมายที่กำหนดเอง ในคอนโซล Firebase ได้ด้วย
โปรดทราบว่าคุณอาจต้องการรวมข้อมูลจากเหตุการณ์ ที่กำหนดเอง ของ Analytics ที่ชื่อ ecommerce_purchase ไว้ในการคำนวณรายได้สำหรับเมตริก ARPU และ ARPPU (ดูวิธี) เพื่อแสดงเมตริก ARPU และ ARPPU ได้ดียิ่งขึ้น
(ไม่บังคับ) ใช้ฟีเจอร์เพิ่มเติมของ Google Analytics และ Firebase
ใช้ประโยชน์จากโอกาสและฟีเจอร์เพิ่มเติมเพื่อปรับปรุงการสร้างรายได้ของแอปและการมีส่วนร่วมของผู้ใช้
เพิ่มและใช้ Firebase SDK สำหรับ Google Analytics
ติดตั้งใช้งานการบันทึกเหตุการณ์ที่กำหนดเอง ในแอป
ทำเครื่องหมาย Conversion สำหรับ แคมเปญโฆษณาที่กำหนดเอง
รวมข้อมูล
ecommerce_purchaseเหตุการณ์ ไว้ในการคำนวณ รายได้สำหรับ เมตริก ARPU และ ARPPU
ดูข้อมูลเพิ่มเติมได้ที่คู่มือการใช้ และ Firebase กับ AdMob แอปGoogle Analytics
ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase ในแอป
หลังจากเพิ่ม Firebase SDK สำหรับ Google Analytics แล้ว ให้ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase เพื่อเพิ่มประสิทธิภาพโฆษณาในแอป
Remote Config ช่วยให้คุณเปลี่ยนลักษณะการทำงานและรูปลักษณ์ของแอปได้โดยไม่ต้องเผยแพร่อัปเดตแอป โดยไม่มีค่าใช้จ่ายสำหรับผู้ใช้ที่ใช้งานอยู่รายวันจำนวนไม่จำกัด
A/B Testing ช่วยให้คุณทดสอบการเปลี่ยนแปลงที่เกิดขึ้นกับ UI, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอป เพื่อดูว่าการเปลี่ยนแปลงส่งผลต่อ เมตริกหลัก (เช่น รายได้และการรักษาผู้ใช้) หรือไม่ก่อนที่จะเปิดตัว การเปลี่ยนแปลงในวงกว้าง