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 thông qua AdMob và không sử dụng Firebase. Nếu bạn dự định đưa Firebase vào ứng dụng của mình (hoặc bạn đang cân nhắc việc đó), hãy đọc bài viết AdMob với Firebase trong tài liệu hướng dẫn này.
Bước đầu tiên để hiển thị quảng cáo và tạo doanh thu là tích hợp SDK Quảng cáo của Google trên thiết bị di động. Sau khi tích hợp SDK, bạn có thể tiến hành 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 16.0 trở lên
- Nhắm đến iOS 12.0 trở lên
- Đề xuất: Tạo tài khoản AdMob và đăng ký một ứng dụng.
Nhập SDK quảng cáo trên thiết bị di động
Sử dụng một trong các phương thức sau để nhập SDK Quảng cáo của Google trên thiết bị di động.
Trình quản lý gói Swift
Để thêm một phần phụ thuộc gói vào dự án, hãy làm theo các bước sau:
Trong Xcode, hãy cài đặt Gói Swift quảng cáo trên thiết bị di động của Google bằng cách chuyển đến File (Tệp) > Add Package Dependencies (Thêm phần phụ thuộc của gói)....
Khi thông báo nhắc xuất hiện, hãy tìm kiếm kho lưu trữ GitHub cho Gói Swift quảng cáo trên thiết bị di động của Google:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Chọn phiên bản của Gói Swift quảng cáo trên thiết bị di động của Google mà bạn muốn sử dụng. Đối với các dự án mới, bạn nên sử dụng Phiên bản lớn tiếp theo.
CocoaPods
Trước khi tiếp tục, hãy xem bài viết Sử dụng CocoaPods để biết thông tin về cách tạo và sử dụng Podfiles.
Để sử dụng CocoaPods, hãy làm theo các bước sau:
Mở Podfile của dự án rồi thêm dòng này vào cấu hình bản dựng
target
của ứng dụng:pod 'Google-Mobile-Ads-SDK'
Trong một cửa sổ dòng lệnh, hãy chạy:
pod install --repo-update
Tải xuống theo cách thủ công
Tải SDK Quảng cáo của Google trên thiết bị di động và
Embed & Sign
các khung sau vào dự án Xcode của bạn:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
Trong phần cài đặt bản dựng của dự án:
- Thêm đường dẫn
/usr/lib/swift
vào Runpath Search Paths (Đường dẫn tìm kiếm Runpath). - Thêm cờ trình liên kết
-ObjC
vào Cờ trình liên kết khác.
- Thêm đường 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 khoá sau:
Khoá
GADApplicationIdentifier
có giá trị chuỗi là mã ứng dụng AdMob có trong giao diện người dùng AdMob.Khoá
SKAdNetworkItems
có giá trịSKAdNetworkIdentifier
cho Google (cstr6suwn9.skadnetwork
) và chọn người mua bên thứ ba đã cung cấp các giá trị này cho Google.
Đoạn mã hoàn chỉnh
<key>GADApplicationIdentifier</key> <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511 --> <string>SAMPLE_APP_ID</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>p78axxw29g.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v72qych5uu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ludvb6z3bs.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>cp8zw746q7.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3sh42y64q3.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>f38h382jlk.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>hs6bdukanm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.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>su67r6k2v3.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>gta9lk7p23.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>vutu7akeur.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>y5ghdn5j9k.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n38lu8286q.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>47vhws6wlr.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>a2p9lx4jpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>22mmun2rn5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>44jx6755aq.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>k674qkevps.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>klf5c3l5u5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ppxm28t8ap.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbmxgpxpgc.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>tl55sbb4fm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c3frkrj4fj.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>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>97r2b46745.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
Thay thế SAMPLE_APP_ID bằng mã ứng dụng AdMob của bạn. Trong khi kiểm thử, hãy sử dụng mã ứng dụng mẫu xuất hiện trong ví dụ trước.
Nếu bạn chưa tạo tài khoản AdMob và đăng ký ứng dụng, hãy làm điều đó 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 start()
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 quá trình khởi chạy hoàn tất (hoặc sau khi hết thời gian chờ 30 giây). Hãy gọi cho start()
càng sớm càng tốt.
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
Chọn một định dạng quảng cáo
Giờ thì bạn đã nhập xong SDK quảng cáo trên thiết bị di động và sẵn sàng triển khai một quảng cáo. AdMob cung cấp nhiều định dạng quảng cáo để bạn có thể chọn định dạng phù hợp nhất với trải nghiệm người dùng trong ứng dụng của mình.
Biểu ngữ
Đơn vị quảng cáo biểu ngữ hiển thị những quảng cáo hình chữ nhật chiếm một phần bố cục của ứng dụng. Những đơn vị quảng cáo này có thể tự động làm mới sau một khoảng thời gian nhất định. Điều này có nghĩa là người dùng sẽ thấy một quảng cáo mới theo định kỳ, ngay cả khi họ vẫn đang xem cùng một màn hình trong ứng dụng của bạn. Đây cũng là định dạng quảng cáo dễ triển khai nhất.
Quảng cáo xen kẽ
Đơn vị quảng cáo xen kẽ hiển thị quảng cáo toàn trang trong ứng dụng của bạn. Hãy đặt các quảng cáo này tại các điểm ngắt và điểm chuyển tiếp tự nhiên trong giao diện ứng dụng của bạn, chẳng hạn như sau khi người dùng hoàn thành một cấp độ trong một ứng dụng trò chơi.
Mã gốc
Quảng cáo gốc là quảng cáo mà bạn có thể tuỳ chỉnh cách các thành phần (như dòng tiêu đề và lời kêu gọi hành động) hiển thị trong ứng dụng của bạn. Bằng cách tự tạo kiểu cho quảng cáo, bạn có thể tạo bố cục quảng cáo tự nhiên, không phô trương và có thể làm phong phú trải nghiệm người dùng.
Được thưởng
Đơn vị quảng cáo có tặng thưởng cho phép người dùng chơi trò chơi, thực hiện bài khảo sát hoặc xem video để nhận phần thưởng trong ứng dụng, chẳng hạn như xu, thêm mạng hoặc điểm. Bạn có thể đặt các phần thưởng khác nhau cho các đơn vị quảng cáo khác nhau, cũng như chỉ định giá trị phần thưởng và vật phẩm mà người dùng nhận được.
Triển khai quảng cáo có tặng thưởng
Quảng cáo xen kẽ có tặng thưởng
Quảng cáo xen kẽ có tặng thưởng là một loại định dạng quảng cáo có tặng thưởng mới, cho phép bạn tặng thưởng (chẳng hạn như tiền xu hoặc thêm mạng) cho những quảng cáo tự động xuất hiện tại các điểm chuyển tiếp tự nhiên của ứng dụng.
Không giống như quảng cáo có tặng thưởng, người dùng không bắt buộc phải chọn xem quảng cáo xen kẽ có tặng thưởng.
Thay vì sử dụng thông báo nhắc chọn xem trong quảng cáo có tặng thưởng, quảng cáo xen kẽ có tặng thưởng phải có một màn hình giới thiệu về phần thưởng và cho phép người dùng chọn không xem nếu muốn.
Triển khai quảng cáo xen kẽ có tặng thưởng
Quảng cáo khi mở ứng dụng
Quảng cáo khi mở ứng dụng là một định dạng quảng cáo xuất hiện khi người dùng mở hoặc quay lại ứng dụng của bạn. Quảng cáo này phủ lên màn hình tải.
Triển khai quảng cáo khi mở ứng dụng