Google AdMob最近宣布了iOS 14+的制备。有一个AppTrackingTransparency许可的要求。然而,没有针对通过AdMob使用火碱的本地开发人员的路线图。我的react-原生项目目前依赖于react本机-firebase版本v6.7.1:
"dependencies": {
"@react-native-firebase/admob": "^6.7.1",
"@react-native-firebase/app": "^6.7.1",
...我只需在我的应用程序中使用InterstitialAd和BannerAd:
import { InterstitialAd, TestIds, AdEventType,
BannerAd, BannerAdSize} from '@react-native-firebase/admob';要升级我的项目以支持iOS 14+,我的路线图应该是什么?
发布于 2021-04-25 14:44:50
为了进行这一更新,应该遵循多个步骤:
更新-本机-火基依赖项
首先,您应该将package.json中的依赖项更新为最新版本,因为有一个预请求“GoogleMobileADSSDK7.64.0或更高版本”:
"@react-native-firebase/admob": "^11.3.2",
"@react-native-firebase/app": "^11.3.2",然后运行npm install或yarn install命令。
添加响应-本机权限依赖项
其次,应该将反应-本机权限依赖项添加到package.json中,以便以后使用该依赖项检查和请求AppTrackingTransparency权限:
"react-native-permissions": "^3.0.2",然后运行npm install或yarn install命令。
更新Info.plist
然后,您应该将新需要的NSUserTrackingUsageDescription键&value和SKAdNetworkItems信息添加到Admob对iOS 14+文档的准备文件中,这些信息在Admob对iOS 14+文档的准备上得到了解释:
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</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>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>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>3sh42y64q3.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>prcb7njmu6.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>4468km3ulz.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>9rd848q2bz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n6fk4nfna4.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>2u9pt9hc89.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8s468mfl3y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>av6w8kgt66.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>424m5254lk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>e5fvkxwrpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zq492l623r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>更新Podfile
然后,应该通过添加以下行来更新PodFile:
permissions_path = '../node_modules/react-native-permissions/ios'
pod 'Permission-AppTrackingTransparency', :path => "#{permissions_path}/AppTrackingTransparency"然后在项目的pod install目录上运行pod install --repo-update或pod install --repo-update命令(您可以在此操作之前删除旧的Pods目录和Podfile.lock文件)。
在您的react本机代码中添加AppTrackingTransparency权限
最后,您应该在您的APP_TRACKING_TRANSPARENCY广告请求之前的某个地方向您的react本机代码添加check & request AdMob权限:
import {check, request, PERMISSIONS, RESULTS} from 'react-native-permissions';
//......
check(PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY)
.then((result) => {
switch (result) {
case RESULTS.UNAVAILABLE:
console.log('This feature is not available (on this device / in this context)');
break;
case RESULTS.DENIED:
console.log('The permission has not been requested / is denied but requestable');
request(PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY).then((reqResult) => {
switch (reqResult) {
case RESULTS.GRANTED:
console.log('The permission request is granted');
// now you can make ad requests
break;
case RESULTS.BLOCKED:
console.log('The permission request is denied and not requestable anymore');
break;
}
});
break;
case RESULTS.LIMITED:
console.log('The permission is limited: some actions are possible');
break;
case RESULTS.GRANTED:
console.log('The permission is granted');
// now you can make ad requests
break;
case RESULTS.BLOCKED:
console.log('The permission is denied and not requestable anymore');
break;
}
})
.catch((error) => {
// …
});然后,如果从RESULTS.GRANTED或request方法调用中获得request结果,则可以发出广告请求。
最后注意事项:在运行所有这些更改之后,不要忘记对Xcode项目进行clean。
https://stackoverflow.com/questions/67254603
复制相似问题