Bắt đầu sử dụng AdMob trong dự án C++

Hướng dẫn bắt đầu nhanh này dành cho những nhà xuất bản và nhà phát triển muốn sử dụng AdMob để kiếm tiền từ ứng dụng được tạo bằng Firebase. Nếu bạn không định đưa Firebase vào ứng dụng của mình, hãy xem hướng dẫn về AdMob độc lập.

Hãy tìm hiểu về tất cả các lợi ích khi sử dụng kết hợp AdMob, Firebase và Google Analytics (nếu bạn chưa biết).

Nếu đây là lần đầu tiên bạn xem hướng dẫn này, bạn nên tải xuống và làm theo bằng cách sử dụng ứng dụng thử nghiệm SDK C++ cho Quảng cáo trên thiết bị di động của Google.

Trước khi bắt đầu

  • Nếu bạn chưa có dự án Firebase và ứng dụng Firebase, hãy làm theo Hướng dẫn bắt đầu sử dụng Firebase: Thêm Firebase vào dự án C++.

  • Đảm bảo bạn đã bật Google Analytics trong dự án Firebase của mình:

    • Nếu bạn đang tạo một dự án Firebase mới, hãy bật Google Analytics trong quy trình tạo dự án.

    • Nếu đang có một dự án Firebase chưa bật Google Analytics, bạn có thể bật Google Analytics trên thẻ Tích hợp trong mục > Cài đặt dự án.

Bước 1: Thiết lập ứng dụng trong tài khoản AdMob

  1. Đăng ký từng biến thể nền tảng của ứng dụng dưới dạng một ứng dụng AdMob.

    1. Đăng nhập vào hoặc đăng ký tài khoản AdMob.

    2. Đăng ký từng biến thể nền tảng của ứng dụng với AdMob Bước này sẽ tạo một ứng dụng AdMob có một Mã ứng dụng AdMob riêng biệt mà bạn sẽ cần dùng trong phần sau của hướng dẫn này.

    Bạn sẽ được yêu cầu thêm SDK quảng cáo trên thiết bị di động vào ứng dụng của mình. Hãy xem hướng dẫn chi tiết về tác vụ này ở phần sau của hướng dẫn này.

  2. Liên kết từng ứng dụng AdMob của bạn với ứng dụng Firebase tương ứng.

    Đây là bước không bắt buộc nhưng bạn nên thực hiện. Tìm hiểu thêm về những lợi ích khi bật chỉ số người dùng và liên kết ứng dụng AdMob với Firebase.

    Đối với mỗi biến thể nền tảng, hãy hoàn thành 2 bước sau trên trang tổng quan Ứng dụng của tài khoản AdMob:

    1. Bật Chỉ số người dùng để cho phép AdMob xử lý và hiển thị dữ liệu phân tích chọn lọc trong tài khoản AdMob của bạn. Đây cũng là chế độ cài đặt bắt buộc để bạn có thể liên kết ứng dụng AdMob với Firebase.

    2. Liên kết ứng dụng AdMob với dự án Firebase hiện có và ứng dụng Firebase tương ứng.

      Hãy đảm bảo rằng bạn nhập cùng một tên gói (Android) hoặc mã gói (iOS) như đã nhập cho ứng dụng Firebase của mình. Hãy tìm tên gói hoặc mã gói của ứng dụng Firebase trong thẻ Ứng dụng của bạn trong > Cài đặt dự án.

Bước 2: Thêm mã ứng dụng AdMob vào ứng dụng của bạn

Android

Thêm Mã ứng dụng AdMob vào tệp AndroidManifest.xml của ứng dụng bằng cách thêm thẻ <meta-data> như minh hoạ dưới đây.

<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

Trong tệp Info.plist của ứng dụng, hãy thêm khoá GADApplicationIdentifier có giá trị chuỗi là Mã ứng dụng AdMob của bạn.

Bạn có thể thực hiện thay đổi này theo phương thức lập trình:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

Bạn cũng có thể chỉnh sửa tài sản đó trong trình chỉnh sửa danh sách thuộc tính:

Trình chỉnh sửa danh sách thuộc tính

Bước 3: Thêm SDK quảng cáo trên thiết bị di động của Google

Vì SDK C++ của Quảng cáo trên thiết bị di động của Google nằm trong không gian tên firebase::gma, hãy tải Firebase C++ SDK xuống, sau đó giải nén SDK vào thư mục bạn chọn.

SDK C++ của Firebase không dành riêng cho nền tảng, nhưng yêu cầu cấu hình thư viện dành riêng cho nền tảng.

Android

  1. Trong tệp gradle.properties của dự án, hãy chỉ định vị trí của SDK đã giải nén:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. Vào tệp settings.gradle của dự án, hãy thêm nội dung sau:

    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"
  3. Đối với tệp Gradle của mô-đun (cấp ứng dụng) (thường là app/build.gradle), hãy thêm nội dung sau, bao gồm phần phụ thuộc thư viện cho SDK C++ của Quảng cáo trên thiết bị di động của Google.

    android.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
    }
  4. Vào tệp CMakeLists.txt của dự án, hãy thêm nội dung sau.

    # 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}")
  5. Đồng bộ hoá ứng dụng của bạn để đảm bảo rằng tất cả các phần phụ thuộc đều có phiên bản cần thiết.

Bạn đã hoàn tất! Ứng dụng C++ của bạn được định cấu hình để sử dụng SDK C++ dành cho quảng cáo trên thiết bị di động của Google.

iOS

Các bước trong phần này là ví dụ về cách thêm SDK C++ cho quảng cáo trên thiết bị di động của Google vào dự án iOS của bạn.

  1. Tải CocoaPods phiên bản 1 trở lên bằng cách chạy:

    sudo gem install cocoapods --pre
  2. Thêm nhóm Quảng cáo trên thiết bị di động của Google từ SDK đã giải nén.

    1. Tạo Podfile nếu bạn chưa có:

      cd YOUR_APP_DIRECTORY
      pod init
    2. Đối với Podfile của bạn, hãy thêm nhóm cho SDK C++ của quảng cáo trên thiết bị di động của Google:

      pod 'Google-Mobile-Ads-SDK'
    3. Cài đặt nhóm, sau đó mở tệp .xcworkspace trong Xcode.

      pod install
      open YOUR_APP.xcworkspace
    4. Thêm các khung sau từ SDK C++ của Firebase vào dự án:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

Bạn đã hoàn tất! Ứng dụng C++ của bạn được định cấu hình để sử dụng SDK C++ dành cho quảng cáo trên thiết bị di động của Google.

Bước 4: Chạy SDK Quảng cáo của Google trên thiết bị di động

Trước khi tải quảng cáo, hãy khởi chạy SDK quảng cáo trên thiết bị di động bằng cách gọi firebase::gma::Initialize().

Lệnh gọi này trả về một firebase::Future hoàn tất sau khi quá trình khởi chạy kết thúc (hoặc sau khi hết thời gian chờ 30 giây). Chỉ gọi phương thức này một lần và càng sớm càng tốt, tốt nhất là khi khởi chạy ứng dụng.

Dưới đây là ví dụ về cách gọi 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.
}

Sử dụng Future để theo dõi trạng thái hoàn thành của lệnh gọi phương thức

Future cung cấp cho bạn cách xác định trạng thái hoàn thành của các lệnh gọi phương thức không đồng bộ.

Ví dụ: khi ứng dụng của bạn gọi firebase::gma::Initialize(), một firebase::Future mới sẽ được tạo và trả về. Sau đó, ứng dụng có thể thăm dò status() của Future để xác định thời điểm quá trình khởi chạy hoàn tất. Sau khi hoàn tất, ứng dụng của bạn có thể gọi result() để lấy AdapterInitializationStatus kết quả.

Các phương thức trả về Future sẽ có phương thức "kết quả cuối cùng" tương ứng mà các ứng dụng có thể dùng để truy xuất Future gần đây nhất cho một hành động nhất định. Ví dụ: firebase::gma::Initialize() có một phương thức tương ứng có tên là firebase::gma::InitializeLastResult(). Phương thức này trả về Future mà ứng dụng của bạn có thể sử dụng để kiểm tra trạng thái của lệnh gọi gần đây nhất đến firebase::gma::Initialize().

Nếu trạng thái của Future là hoàn tất và mã lỗi là firebase::gma::kAdErrorCodeNone, thì thao tác đã hoàn tất thành công.

Bạn cũng có thể đăng ký các lệnh gọi lại để gọi khi Future hoàn tất. Trong một số trường hợp, lệnh gọi lại sẽ chạy trong một luồng khác, vì vậy, hãy đảm bảo mã của bạn an toàn cho luồng. Đoạn mã này sử dụng con trỏ hàm cho lệnh gọi lại:

// 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.
  }
}

Bước 5: Chọn định dạng quảng cáo để triển khai trong ứng dụng

AdMob cung cấp một số định dạng quảng cáo, vì vậy, bạn có thể chọn định dạng phù hợp nhất với trải nghiệm người dùng của ứng dụng. Hãy nhấp vào nút của một định dạng quảng cáo để xem hướng dẫn triển khai chi tiết trong tài liệu AdMob.

Quảng cáo hình chữ nhật xuất hiện ở đầu hoặc cuối màn hình thiết bị

Quảng cáo biểu ngữ vẫn nằm trên màn hình trong khi người dùng tương tác với ứng dụng và có thể tự động làm mới sau một khoảng thời gian nhất định. Nếu bạn mới sử dụng quảng cáo trên thiết bị di động thì đây là loại quảng cáo rất phù hợp để bắt đầu.

Triển khai quảng cáo biểu ngữ

Quảng cáo xen kẽ

Quảng cáo toàn màn hình che phủ giao diện của một ứng dụng cho đến khi người dùng đóng lại

Bạn nên sử dụng quảng cáo xen kẽ tại các điểm dừng tự nhiên trong luồng thực thi của ứng dụng, chẳng hạn như giữa các cấp độ của trò chơi hoặc ngay sau khi hoàn thành một nhiệm vụ.

Triển khai quảng cáo xen kẽ

Có tặng thưởng

Quảng cáo tặng thưởng cho người dùng khi họ xem video ngắn cũng như tương tác với quảng cáo có thể chơi và bản khảo sát

Quảng cáo có tặng thưởng (hoặc "dựa trên phần thưởng") có thể giúp kiếm tiền từ người dùng chơi miễn phí.

Triển khai quảng cáo có tặng thưởng

Chủ đề quan tâm khác

Xem dữ liệu phân tích và chỉ số người dùng

Sau khi khởi chạy, SDK quảng cáo trên thiết bị di động sẽ tự động bắt đầu ghi nhật ký các sự kiện phân tích và thuộc tính người dùng từ ứng dụng của bạn. Bạn có thể xem dữ liệu này mà không cần thêm mã nào khác vào ứng dụng hoặc triển khai bất kỳ quảng cáo nào. Bạn có thể xem dữ liệu phân tích này theo cách sau:

Xin lưu ý rằng để thể hiện rõ hơn các chỉ số Doanh thu trung bình trên mỗi người dùng (ARPU)Doanh thu trung bình trên mỗi người dùng thanh toán (ARPPU), bạn nên đưa dữ liệu từ một sự kiện tuỳ chỉnh của Analytics có tên là ecommerce_purchase vào quá trình tính toán doanh thu cho các chỉ số này (tìm hiểu cách thực hiện).

(Không bắt buộc) Sử dụng các tính năng khác của Google Analytics và Firebase

Hãy tận dụng các cơ hội và tính năng khác để cải thiện khả năng kiếm tiền từ ứng dụng và mức độ tương tác của người dùng:

  • Thêm và sử dụng Firebase SDK cho Google Analytics

    Để tìm hiểu thêm, hãy xem hướng dẫn sử dụng Google Analytics và Firebase thông qua các ứng dụng AdMob.

  • Sử dụng các sản phẩm Firebase khác trong ứng dụng của bạn

    Sau khi bạn thêm Firebase SDK cho Google Analytics, hãy sử dụng các sản phẩm khác của Firebase để tối ưu hoá quảng cáo trong ứng dụng của bạn.

    • Cấu hình từ xa cho phép bạn thay đổi hành vi và giao diện của ứng dụng mà không cần phát hành bản cập nhật ứng dụng, hoàn toàn miễn phí cho người dùng hoạt động hằng ngày không giới hạn.

    • Thử nghiệm A/B cho phép bạn thử nghiệm các thay đổi đối với giao diện người dùng, tính năng hoặc chiến dịch thúc đẩy mức độ tương tác của ứng dụng để tìm hiểu xem những thay đổi đó có tác động đến các chỉ số chính (như doanh thu và tỷ lệ giữ chân) hay không trước khi triển khai rộng rãi các thay đổi đó.