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 (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.
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 trên thiết bị di động của Google. 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 14.1 trở lên
- Nhắm mục tiêu iOS 11.0 trở lên
- Đề xuất: Tạo tài khoản AdMob và đăng ký ứng dụng.
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 một 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.
Trình quản lý gói Swift
SDK quảng cáo trên thiết bị di động của Google hỗ trợ Trình quản lý gói Swift kể từ phiên bản 9.0.0. Làm theo các bước dưới đây để nhập gói Swift.
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 Tệp > Thêm gói....
Khi thông báo nhắc xuất hiện, hãy tìm kiếm kho lưu trữ Swift 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 chính tiếp theo.
Sau khi bạn hoàn tất, Xcode sẽ bắt đầu phân giải các phần phụ thuộc của gói và tải các phần phụ thuộc đó xuống ở chế độ nền. Để biết thêm thông tin chi tiết về cách thêm các phần phụ thuộc của gói, hãy xem bài viết của Apple.
Tải xuống theo cách thủ công
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.xcframework
GoogleAppMeasurementIdentitySupport.xcframework
GoogleMobileAds.xcframework
GoogleUtilities.xcframework
nanopb.xcframework
PromisesObjC.xcframework
UserMessagingPlatform.xcframework
Thêm cờ trình liên kết
-ObjC
vào Cờ trình liên kết khác trong chế độ 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 khoá sau:
Khóa
GADApplicationIdentifier
có giá trị chuỗi là AdMob app ID found in the AdMob UI.Khóa
SKAdNetworkItems
có giá trịSKAdNetworkIdentifier
cho Google (cstr6suwn9.skadnetwork
) và một số người mua bên thứ ba đã cung cấp các giá trị này cho Google.
Hoàn tất đoạn mã
<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>4pfyvq9l8r.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>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>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>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>n6fk4nfna4.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>eh6m2bh4zr.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>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>ecpz2srf59.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>pwa73g5rt2.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.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>3rd42ekr43.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 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 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
khởi chạy xong (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 cho 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 đang sử dụng tính năng dàn xếp, bạn có thể cần đợ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 khởi chạy tất cả bộ chuyển đổi dàn xếp.
Chọn đị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 một số định dạng quảng cáo khác nhau, để bạn có thể chọn một định dạng phù hợp nhất với trải nghiệm người dùng của ứng dụng.
Biểu 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ữ 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.
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ụ.
SDK gốc
Quảng cáo có thể tuỳ chỉnh 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 để bố cục nhất quán hơn với thiết kế ứng dụng.
Được thưởng
Quảng cáo tặng thưởng cho người dùng khi họ xem video ngắn và tương tác với quảng cáo có thể chơi và các bản khảo sát. Phù hợ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 | Triển khai quảng cáo có tặng thưởng (API mới) |