SDK 集成问题排除
我如何测试集成是否成功?
您可以通过以下方式之一检查集成是否成功:
- 使用演示广告单元加载广告,并检查广告是否对点击作出响应。
- 使用 SDK 的内置分析器或本地控制台工具。
- 对于原生广告,您还可以启用错误集成指示器并检查它是否变成红色。
有关测试集成的更多信息,请参阅 Yandex Mobile Ads SDK 部分:
可能的集成错误
与 Unity 集成时,遇到错误 resource android:attr/lStar not found
在与 React Native (Android) 集成时,我遇到了错误 Could not find any matches for com.facebook.react:react-android
要解决此问题,请在应用的 android/build.gradle
文件中的 allprojects
下添加以下代码:
allprojects {
repositories {
// ...
}
// 这解决了与 react-native 依赖项解析相关的问题。
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute module("com.facebook.react:react-android") using module("com.facebook.react:react-native:+")
}
}
}
查找类路径时发生 Fatal Error
这可能是由 ProGuard 在构建时执行操作和重新排列引起的。如果在 proguard config
文件中启用了 -keepclasseswithmembernames
设置,则会出现此错误。请注释掉此代码或删除该行。
在构建时发生指示无法访问资源的错误
Provided block ID doesn't exist
即使在 Yandex Advertising Network 界面中创建了广告单元,但在广告请求后出现消息 Provided block ID doesn't exist
。
请确保应用请求中指定的广告单元是来自 Yandex Advertising Network 界面的有效广告单元。
是什么原因导致 NoAdsAvailable
错误?
此错误表示系统无法选择广告。在测试新的不匹配设备期间可能会发生这种情况,因为我们的系统需要时间来收集有关这些设备的信息以及等待 Crypta 来获取信息。完成此过程后,广告选择开始。此错误也可能因以下原因而发生:
- 为广告单元设置的 CPM 底价过高。
- 广告单元已存档。
- 您使用的聚合不支持在俄罗斯投放广告。
- Yandex Advertising Network 界面中应用的 BundleID 与请求广告的 BundleID 不匹配。
如果错误仍然存在,请联系支持部门。
联系支持部门
广告请求无响应,出现 Banner Rendering Failed with Timeout
错误
如果请求处理时间过长,则可能会发生此错误。请联系支持部门提供错误日志。
联系支持部门
为什么横幅加载成功后就看不见了?
您可能已经将 android:visibility="gone"
应用于可见性设置。请手动或通过代码设置 android:visibility="visible"
。
可以限制激励视频的持续时间吗?
是的,您可以。请联系支持部门或您的专属经理。
联系支持部门
我可以在原生广告中裁剪图片吗?
您可以将主图片裁剪不超过 25%,并且只能相对于图片的中心进行裁剪。图标不能放大或裁剪,但可以在不改变宽高比的情况下缩小。详情请参阅 原生广告。
如何在原生广告单元中嵌入视频广告和展示广告?
什么会导致填充率过低?
由于 CPM 底价、类别或品牌屏蔽或技术问题,广告单元的填充率可能较低。要提高填充率,请确定导致问题的原因并采取措施加以解决。
有关提高广告效果的详细信息,请参阅 帮助。
如何记录嗅探器会话 (Сharles)?
Charles 是一个在您的计算机上运行的代理服务器,允许您记录所连接设备的 HTTP 和 HTTPS 流量。记录的会话可帮助支持团队快速排除与加载和展示广告相关的问题,因为它们包含了所请求的广告单元的数据、广告版位参数、已投放横幅的相关信息以及设备的技术规格。
安装 Charles
- 从 官方网站 下载 Charles 并将其安装到您的计算机上。
- 如果应用在您首次启动时自动配置网络设置,请点击击 Grant Privileges。
- 该应用提供 30 天的免费试用。如果您有许可证密钥,请在 Charles 菜单中选择 Help → Register Charles 并注册该应用。
有关使用该应用的详细信息,请参阅 Charles 文档。
配置代理
要记录移动设备的流量:
- 在 Charles 菜单中,选择 Proxy → SSL Proxying Settings。
- 启用 Enable SSL Proxying 选项。
- 点击 Include Location 下的 Add,并在 Host 字段中输入一个星号。保存更改。
- 在 Charles 菜单中,选择 Help → SSL Proxying → Install Root Certificate on a Mobile Device or Remote Browser。此时,Charles 应显示与您计算机的 IP 地址和默认端口 8888 相对应的代理服务器的 IP 地址和端口。
- 重新启动 Charles。
- 将您的移动设备连接到与计算机相同的 Wi-Fi 网络。前往网络设置,选择手动代理设置,然后输入代理服务器的 IP 地址和端口。
安装证书
要记录 HTTPS 流量,请在您的移动设备上安装 Charles 根 SSL 证书。请参阅 Charles 文档 了解更多信息。
-
使用默认浏览器,前往 http://chls.pro/ssl 下载证书。
备注
如果无法下载证书,则可能是您计算机上的防火墙阻止了传入连接。请在防火墙设置中允许 Charles 接受传入连接,然后再次尝试下载。
-
如果证书安装没有自动开始,请在设备设置中找到证书安装部分并安装 Charles 证书。将“凭证用途”设置为“VPN 和应用”。如果需要设置 PIN 码,请在相应的字段中输入您选择的 PIN 码。
-
对于 Android 10 及更高版本,配置请求广告的应用 (APK):
-
在
res/xml
文件夹中,创建包含以下文本的network_security_config.xml
文件:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> <!-- Trust preinstalled CAs --> <certificates src="system" ></certificates> <!-- Trust user added CAs --> <certificates src="user" ></certificates> </trust-anchors> </base-config> </network-security-config>
-
在
AndroidManifest.xml
文件中为application
部分添加属性:<manifest> ... <application android:networkSecurityConfig="@xml/network_security_config"> ... </application> </manifest>
-
-
使用 Safari,前往 http://chls.pro/ssl 下载证书。
备注
如果无法下载证书,则可能是您计算机上的防火墙阻止了传入连接。请在防火墙设置中允许 Charles 接受传入连接,然后再次尝试下载。
-
如果证书安装没有自动开始,请前往设备设置中的 Profile 部分,选择 Charles 证书并安装。
-
在设备设置中,前往 General → About → Certificates Trust Settings 并启用对 Charles 证书的信任。
记录会话
要开始或停止记录流量,请在 Charles 工具栏上点击 / 。当记录正在进行时,该按钮如下所示:。
刷新请求广告的应用中的屏幕。确保广告下载 URL 出现在会话中:mobile.yandexadexchange.net/v4/ad
。在 Charles 菜单中,选择 File → Save Session As... 并使用 .chls
扩展名保存文件。
提示
完成调试后,从设备中删除证书并禁用代理。