คู่มือเริ่มต้นใช้งานนี้มีไว้สําหรับผู้เผยแพร่โฆษณาและนักพัฒนาแอปที่ต้องการใช้ 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) หรือรหัสกลุ่ม (iOS) เดียวกันกับที่ป้อนสำหรับแอป Firebase ค้นหาชื่อแพ็กเกจหรือรหัสกลุ่มของแอป Firebase ในการ์ดแอปของคุณของ
การตั้งค่าโปรเจ็กต์ >
ขั้นตอนที่ 2: เพิ่มรหัสแอป AdMob ลงในแอป
Android
เพิ่มAdMob App ID ลงในไฟล์ 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
เนื่องจาก 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
เพิ่มพ็อดสําหรับ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google C++ ลงใน Podfile
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()
มีดังนี้
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 จะเริ่มบันทึกเหตุการณ์และพร็อพเพอร์ตี้ผู้ใช้จากแอปโดยอัตโนมัติ คุณสามารถดูข้อมูลนี้โดยไม่ต้องเพิ่มโค้ดลงในแอปหรือติดตั้งใช้งานโฆษณา คุณดูข้อมูลวิเคราะห์นี้ได้ที่
ในการ์ดเมตริกผู้ใช้ของบัญชี AdMob (แดชบอร์ดหน้าแรกหรือแอป) คุณสามารถดูเมตริกผู้ใช้ที่ได้รับการดูแลจัดการซึ่งมาจากข้อมูลวิเคราะห์ที่รวบรวม เช่น ระยะเวลาเซสชันโดยเฉลี่ย ARPU และการเก็บรักษา
ในแดชบอร์ด Analytics ของคอนโซล 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, ฟีเจอร์ หรือแคมเปญการมีส่วนร่วมของแอปได้ เพื่อดูว่าการเปลี่ยนแปลงดังกล่าวส่งผลต่อเมตริกหลัก (เช่น รายได้และการคงผู้ใช้ไว้) หรือไม่ ก่อนเปิดตัวการเปลี่ยนแปลงในวงกว้าง