Để phân phối quảng cáo và kiếm doanh thu, hãy tích hợp Google Mobile Ads SDK for React Native vào ứng dụng React Native của bạn. Hướng dẫn này trình bày cách cài đặt và khởi chạy Google Mobile Ads SDK for React Native, cũng như cách chọn định dạng quảng cáo.
Điều kiện tiên quyết
Trước khi tiếp tục, hãy chuẩn bị những thông tin sau:
- React Native 0.85.0 trở lên.
- Tài khoản AdMob và mã ứng dụng. Để lấy mã ứng dụng, hãy xem bài viết Thiết lập ứng dụng trong AdMob.
Các mục sau đây trên Android:
- Android API cấp 24 trở lên.
- Phiên bản mới nhất của Android Studio.
- Trình bổ trợ Android cho Gradle (AGP) phiên bản 8.0 trở lên.
Các mục sau đây trên iOS:
- iOS phiên bản 13.0 trở lên.
- Xcode phiên bản 16.0 trở lên và đã bật các công cụ dòng lệnh.
- CocoaPods
Cài đặt Google Mobile Ads SDK for React Native
Để cài đặt Google Mobile Ads SDK for React Native, hãy làm như sau:
- Tải thư mục
gma-sdk-react-nativexuống từ Google Drive. Trích xuất tệp lưu trữ zip trong một thư mục riêng biệt bên ngoài thư mục dự án đang hoạt động của bạn. Quá trình này có thể tránh xung đột với các tệp cấu hình của dự án.
Trong thư mục gốc của dự án, hãy tạo một thư mục
local_packages/.Trong thư mục này, hãy sao chép tệp
mobile-ads-0.1.0.tgz:mkdir -p local_packages cp EXTRACT_DIR/gma-sdk-react-native/google-mobile-ads/mobile-ads-0.1.0.tgz local_packages/Thay thế EXTRACT_DIR bằng đường dẫn đến thư mục mà bạn đã giải nén tệp lưu trữ.
Cài đặt gói bằng trình quản lý gói mà bạn muốn:
npm
npm install ./local_packages/mobile-ads-0.1.0.tgzchỉ len
yarn add ./local_packages/mobile-ads-0.1.0.tgz
Định cấu hình ứng dụng
Để định cấu hình ứng dụng có các phần phụ thuộc nền tảng, hãy thêm
Mã ứng dụng AdMob vào tệp app.json của thư mục gốc của dự án.
Để thử nghiệm, hãy sử dụng mã ứng dụng AdMob mẫu trong ví dụ sau:
{
"name": "APP_NAME",
"displayName": "APP_NAME",
"googleMobileAds": {
"android_app_id": "ca-app-pub-3940256099942544~3347511713",
"ios_app_id": "ca-app-pub-3940256099942544~1458002511"
}
}
Trong thời gian xây dựng, Google Mobile Ads SDK for React Native sẽ thêm thuộc tính android_app_id vào tệp AndroidManifest.xml và thuộc tính ios_app_id trong tệp Info.plist đã tạo dưới dạng khoá GADApplicationIdentifier.
Đối với các lựa chọn dành riêng cho nền tảng hoặc cấu hình thủ công, hãy chọn một trong các nền tảng sau:
Android
Nếu bạn quản lý nhiều cấu hình bản dựng hoặc đang tích hợp React Native vào một ứng dụng Android hiện có, hãy thêm mã ứng dụng AdMob vào phần tử <application> của tệp AndroidManifest.xml trong dự án thay vì tệp app.json:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="SAMPLE_APP_ID"
tools:replace="android:value"/>
</application>
</manifest>
Gradle tự động phân giải các phần phụ thuộc Android trong thời gian xây dựng.
iOS
Hãy hoàn tất các bước sau:
Cài đặt các phần phụ thuộc CocoaPods từ thư mục
ios/của dự án:pod install --repo-updateNgoài ra, hãy cài đặt các phần phụ thuộc CocoaPods từ thư mục gốc của dự án:
npx pod-installTính năng tự động liên kết của CocoaPods định cấu hình tập lệnh giai đoạn bản dựng Xcode để thêm thuộc tính
ios_app_idtừ tệpapp.jsontrong tệpInfo.plistđã tạo.Trong tệp
Info.plistcủa ứng dụng, hãy thêm khoáSKAdNetworkItemsvào phần tử<dict>cho Googlecstr6suwn9.skadnetworkvà một số người mua bên thứ ba.Ví dụ sau đây cho thấy một tệp
Info.plisthoàn chỉnh chứa mảngSKAdNetworkItemsbắt buộc:Ví dụ đầy đủ
<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>wg4vff78zm.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>
Khởi động Google Mobile Ads SDK for React Native
Trước khi tải quảng cáo, hãy gọi phương thức initialize để
khởi chạy Google Mobile Ads SDK for React Native. Gọi phương thức initialize một lần khi khởi chạy ứng dụng, chẳng hạn như trong thành phần App.tsx gốc.
Ví dụ sau đây khởi động Google Mobile Ads SDK for React Native:
import {InitializationStatus, initialize} from '@google/mobile-ads';
import {useEffect, useState} from 'react';
import {Text, View} from 'react-native';
/**
* Root application component demonstrating Google Mobile Ads SDK initialization.
*/
export function App() {
const [isInitialized, setIsInitialized] = useState<boolean>(false);
useEffect(() => {
// Initialize the Google Mobile Ads SDK.
initialize({}, (status: InitializationStatus) => {
console.log('Mobile Ads SDK initialized successfully:', status);
setIsInitialized(true);
});
}, []);
return (
<View>
<Text>
{isInitialized ? 'Mobile Ads SDK Ready' : 'Initializing SDK...'}
</Text>
</View>
);
}
Chọn một định dạng quảng cáo
Sau khi khởi chạy Google Mobile Ads SDK for React Native, bạn có thể triển khai quảng cáo. AdMob cung cấp các định dạng quảng cáo sau:
| Định dạng | Mô tả | Tài liệu |
|---|---|---|
| Quảng cáo khi mở ứng dụng | Xuất hiện khi người dùng mở hoặc quay lại ứng dụng của bạn, phủ lên màn hình tải hoặc màn hình chờ. | Thiết lập quảng cáo khi mở ứng dụng |
| Quảng cáo xen kẽ | Quảng cáo toàn màn hình che phủ giao diện của ứng dụng lưu trữ. Những quảng cáo này xuất hiện tại các điểm chuyển tiếp tự nhiên trong quy trình hoạt động của ứng dụng, chẳng hạn như giữa các hoạt động hoặc trong thời gian tạm dừng giữa các cấp độ của trò chơi. | Thiết lập quảng cáo xen kẽ |
| Được thưởng | Quảng cáo toàn màn hình tặng thưởng cho người dùng khi họ xem quảng cáo dạng video hoặc tương tác với quảng cáo có thể chơi. | Thiết lập quảng cáo có tặng thưởng |
| Quảng cáo xen kẽ có tặng thưởng | Một định dạng quảng cáo có tặng thưởng cho phép bạn tặng thưở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. | Thiết lập quảng cáo xen kẽ có tặng thưởng |