Ahm*_*ınç 3 admob react-native react-native-firebase ios14
谷歌AdMob最近宣布为iOS 14+做准备。需要AppTrackingTransparency权限。但是,对于通过rnfirebase使用 AdMob 的 React Native 开发人员来说,还没有路线图。我的react-native项目目前依赖于react-native-firebase版本v6.7.1:
"dependencies": {
"@react-native-firebase/admob": "^6.7.1",
"@react-native-firebase/app": "^6.7.1",
...
Run Code Online (Sandbox Code Playgroud)
我只是在我的应用程序中使用InterstitialAdand BannerAd:
import { InterstitialAd, TestIds, AdEventType,
BannerAd, BannerAdSize} from '@react-native-firebase/admob';
Run Code Online (Sandbox Code Playgroud)
升级项目以支持 iOS 14+ 的路线图应该是什么?
为了进行此更新,应遵循多个步骤:
\n首先,您应该将您的react-native-firebase依赖项更新package.json到最新版本,因为有一个预先请求“ Google Mobile Ads SDK 7.64.0或更高版本”:
"@react-native-firebase/admob": "^11.3.2",\n"@react-native-firebase/app": "^11.3.2",\nRun Code Online (Sandbox Code Playgroud)\n然后运行npm install或yarn install命令。
其次,您应该添加一个react-native-permissions依赖项package.json,以便稍后您将使用此依赖项来检查和请求AppTrackingTransparency权限:
"react-native-permissions": "^3.0.2",\nRun Code Online (Sandbox Code Playgroud)\n然后运行npm install或yarn install命令。
然后,您应该将Admob 的准备 iOS 14+ 文档中解释的新必需的NSUserTrackingUsageDescription键和值以及信息添加到您的SKAdNetworkItemsInfo.plist文件中:
<key>NSUserTrackingUsageDescription</key>\n<string>This identifier will be used to deliver personalized ads to you.</string>\n<key>SKAdNetworkItems</key>\n<array>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>cstr6suwn9.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>4fzdc2evr5.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>2fnua5tdw4.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>ydx93a7ass.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>5a6flpkh64.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>p78axxw29g.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>v72qych5uu.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>c6k4g5qg8m.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>s39g8k73mm.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>3qy4746246.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>3sh42y64q3.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>f38h382jlk.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>hs6bdukanm.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>prcb7njmu6.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>wzmmz9fp6w.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>yclnxrl5pm.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>4468km3ulz.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>t38b2kh725.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>7ug5zh24hu.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>9rd848q2bz.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>n6fk4nfna4.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>kbd757ywx3.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>9t245vhmpl.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>2u9pt9hc89.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>8s468mfl3y.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>av6w8kgt66.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>klf5c3l5u5.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>ppxm28t8ap.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>424m5254lk.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>uw77j35x4d.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>e5fvkxwrpn.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>zq492l623r.skadnetwork</string>\n </dict>\n <dict>\n <key>SKAdNetworkIdentifier</key>\n <string>3qcr597p9d.skadnetwork</string>\n </dict>\n</array>\nRun Code Online (Sandbox Code Playgroud)\n然后,您应该更新您的PodFile通过添加以下行来更新您的:
permissions_path = \'../node_modules/react-native-permissions/ios\'\n\npod \'Permission-AppTrackingTransparency\', :path => "#{permissions_path}/AppTrackingTransparency"\nRun Code Online (Sandbox Code Playgroud)\n然后在您的项目目录下运行pod install或pod install --repo-update命令(您可以在执行此操作之前删除旧的目录和文件)。iosPodsPodfile.lock
最后,您应该添加检查和请求APP_TRACKING_TRANSPARENCY在 AdMob 广告请求之前向您的反应原生代码添加检查和请求权限:
import {check, request, PERMISSIONS, RESULTS} from \'react-native-permissions\';\n\n//......\n\ncheck(PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY)\n .then((result) => {\n switch (result) {\n case RESULTS.UNAVAILABLE:\n console.log(\'This feature is not available (on this device / in this context)\');\n break;\n case RESULTS.DENIED:\n console.log(\'The permission has not been requested / is denied but requestable\');\n request(PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY).then((reqResult) => {\n switch (reqResult) {\n case RESULTS.GRANTED:\n console.log(\'The permission request is granted\');\n // now you can make ad requests\n break;\n case RESULTS.BLOCKED:\n console.log(\'The permission request is denied and not requestable anymore\');\n break;\n }\n });\n break;\n case RESULTS.LIMITED:\n console.log(\'The permission is limited: some actions are possible\');\n break;\n case RESULTS.GRANTED:\n console.log(\'The permission is granted\');\n // now you can make ad requests\n break;\n case RESULTS.BLOCKED:\n console.log(\'The permission is denied and not requestable anymore\');\n break;\n }\n })\n .catch((error) => {\n // \xe2\x80\xa6\n });\nRun Code Online (Sandbox Code Playgroud)\n如果您从或方法调用中获得RESULTS.GRANTED结果,则可以发出广告请求。checkrequest
最后注意:在运行之前不要忘记执行clean所有这些更改后的 Xcode 项目。
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |