Bắt đầu

Hướng dẫn này dành cho những nhà xuất bản muốn kiếm tiền từ ứng dụng iOS bằng cách sử dụng AdMob và không sử dụng Firebase. Nếu bạn dự định đưa Firebase vào ứng dụng (hoặc bạn đang cân nhắc việc đó), hãy xem phiên bản AdMob với Firebase của hướng dẫn này.

Tích hợp SDK quảng cáo trên thiết bị di động của Google vào một ứng dụng là bước đầu tiên để hiển thị quảng cáo và kiếm doanh thu. Sau khi đã tích hợp SDK, bạn có thể tiếp tục triển khai một hoặc nhiều định dạng quảng cáo được hỗ trợ.

Điều kiện tiên quyết

  • Sử dụng Xcode 12 trở lên
  • Nhắm mục tiêu phiên bản iOS 10.0 trở lên

Nhập SDK quảng cáo trên thiết bị di động

CocoaPods (ưu tiên)

Cách đơn giản nhất để nhập SDK vào dự án iOS là sử dụng CocoaPods. Mở Podfile của dự án và thêm dòng này vào mục tiêu của ứng dụng:

pod 'Google-Mobile-Ads-SDK'

Sau đó, từ dòng lệnh, hãy chạy:

pod install --repo-update

Nếu bạn mới sử dụng CocoaPods, hãy xem tài liệu chính thức để biết thông tin về cách tạo và sử dụng Podfiles.

Tải xuống theo cách thủ công

  1. Tải Khung SDK xuống và giải nén trực tiếp, sau đó nhập các khung sau vào dự án Xcode của bạn:

    • GoogleAppMeasurement.framework
    • GoogleMobileAds.framework
    • GoogleUtilities.xcframework
    • nanopb.xcframework
    • PromisesObjC.xcframework
    • UserMessagingPlatform.framework
  2. Thêm -ObjC cờ trình liên kết vào Cờ trình liên kết khác trong tùy chọn cài đặt bản dựng của dự án:

Cập nhật tệp Info.plist

Cập nhật tệp Info.plist của ứng dụng để thêm hai khóa sau:

  1. Khóa GADApplicationIdentifier có giá trị chuỗi của mã ứng dụng AdMob (được xác định trong giao diện người dùng AdMob).
  2. Khóa SKAdNetworkItems có giá trị SKAdNetworkIdentifier cho Google (cstr6suwn9.skadnetwork) và chọn thêm những người mua đã cung cấp các giá trị này cho Google.
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4fzdc2evr5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>2fnua5tdw4.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>ydx93a7ass.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>5a6flpkh64.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>p78axxw29g.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>v72qych5uu.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>c6k4g5qg8m.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>s39g8k73mm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qy4746246.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3sh42y64q3.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>f38h382jlk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>hs6bdukanm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>prcb7njmu6.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>v4nxqhlyqp.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>wzmmz9fp6w.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>yclnxrl5pm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>t38b2kh725.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>7ug5zh24hu.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>9rd848q2bz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>n6fk4nfna4.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>kbd757ywx3.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>9t245vhmpl.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4468km3ulz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>2u9pt9hc89.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>8s468mfl3y.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>av6w8kgt66.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>klf5c3l5u5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>ppxm28t8ap.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>424m5254lk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>uw77j35x4d.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>578prtvx9j.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4dzt52r2t5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>e5fvkxwrpn.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>8c4e2ghe7u.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>zq492l623r.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qcr597p9d.skadnetwork</string>
    </dict>
  </array>

Nếu bạn chưa tạo tài khoản AdMobđăng ký ứng dụng, hãy làm việc đó ngay.

Khởi chạy SDK quảng cáo trên thiết bị di động

Trước khi tải quảng cáo, hãy gọi phương thức startWithCompletionHandler: trên GADMobileAds.sharedInstance. Lệnh gọi này sẽ khởi chạy SDK và gọi lại một trình xử lý hoàn thành sau khi việc khởi chạy hoàn tất (hoặc sau khi hết thời gian chờ 30 giây). Bạn chỉ cần thực hiện việc này một lần, tốt nhất là khi khởi chạy ứng dụng. Bạn nên gọi startWithCompletionHandler: càng sớm càng tốt.

Dưới đây là ví dụ về cách gọi phương thức startWithCompletionHandler: trong AppDelegate:

AppDelegate.m mẫu (phần trích dẫn)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }

}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [[GADMobileAds sharedInstance] startWithCompletionHandler:nil];
  return YES;
}

@end

Nếu bạn đang sử dụng tính năng dàn xếp, hãy đợi cho đến khi trình xử lý hoàn thành được gọi trước khi tải quảng cáo, vì điều này sẽ đảm bảo rằng tất cả các bộ chuyển đổi dàn xếp đều được khởi chạy.

Chọn một định dạng quảng cáo

SDK quảng cáo trên thiết bị di động hiện đã được nhập và khởi chạy, đồng thời bạn đã sẵn sàng triển khai quảng cáo. AdMob cung cấp nhiều định dạng quảng cáo khác nhau để 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.

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ữ lưu lại 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 xen kẽ là 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ẽ

Quảng cáo gốc

Quảng cáo có thể tùy chỉnh là quảng cáo phù hợp với giao diện ứng dụng của bạn. Bạn quyết định cách thức và vị trí đặt quảng cáo, do đó bố cục quảng cáo sẽ phù hợp hơn với thiết kế ứng dụng của bạn.

Triển khai Native Ads

Quảng cáo có tặng thưởng

Loại quảng cáo này tặng thưởng cho người dùng khi họ xem những đoạn video ngắn và tương tác với bản khảo sát hoặc quảng cáo có thể chơi. Phù hợp để kiếm tiền từ người dùng miễn phí.

Triển khai quảng cáo có tặng thưởng Triển khai quảng cáo có tặng thưởng (API mới)