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 xem phiên bản 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ế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 đến 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. Hãy 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. Hãy 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 cho quảng cáo trên thiết bị di động của Google bằng cách chuyển đến File > Add Packages... (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ữ 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 cho 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 thẻ Lên phiên bản lớn tiếp theo.
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 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ự tải xuố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 2 khoá:
Khoá
GADApplicationIdentifier
có giá trị chuỗi củaAdMob app ID found in the AdMob UI.Khoá
SKAdNetworkItems
có các giá trịSKAdNetworkIdentifier
cho Google (cstr6suwn9.skadnetwork
) và những người mua bên thứ ba chọn lọc đã cung cấp các giá trị này cho Google.
Đoạn mã hoàn chỉnh
<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, thì hãy làm việc này 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
.
Phương thức 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
chạy xong (hoặc sau 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 bắt đầu 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 đang sử dụng tính năng dàn xếp, bạn nê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 rằng tất cả các bộ chuyển đổi dàn xếp đều được khởi chạy.
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 động, đồ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 để 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.
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 của thiết bị. Quảng cáo biểu ngữ luôn hiển thị 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ụ.
Mã gốc
Quảng cáo có thể tuỳ chỉnh và 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 kiểu thiết kế ứng dụng của bạn.
Đượ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 cũng như 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) |