对接测试

在您发布app之前,我们强烈建议您参照以下测试步骤以确保它们能正常运行。

测试前置确认清单

确认1:检查以下MoPub SDK Changelog选择较新的SDK版本:

确认2:使用MoPub中介集成工具确保:

  1. 您使用官方支持的网络广告格式。
  2. 查看目前可支持到的广告网络SDK最高版本。请使用经过认证的网络SDK版本+相对应最新版的广告网络适配器(adapter)版本,例如:网络SDK版本为 3.3.7,请使用最新的3.3.7.x的适配器。可查阅以下Github里各网络适配器的更新日志(changelogs)得知进版状况。
  3. 已参阅Learn More依据各网络要求,实作额外的代码与设置。
  4. 查看What's New状态是否列有KNOWN ISSUE。

checklist-mit-1

确认3:已按照Line Item - Network里的说明设置后台:

  1. 已在广告单元上创建该广告网络的Network Line Item,并填入该广告网络ID。 checklist-ui-1

  2. Network Line Item 已’启用’(Active),且您测试所在的国家(您的网路IP)有包含在Line Item的受众设置范畴中。 (建议使用美国IP做测试)。
  3. 如果您建立的广告网络类型为自定义网络(Custom Native Network),请确保所输入的网络ID和适配器参数(Custom Event Class, Custom Event Data)皆正确。注意:Android和iOS通常会使用不一样的Custom Event Class名称。

确认4:检查代码:

  1. 如果您是手动导入广告网络SDK和适配器,请确保他们在您专案中路径正确。细节请参照:
  2. 确保有呼叫SDK初始化(例如:MoPub.initializeSdk),並傳入Ad Unit ID。而且在您加载广告前,请务必确认已收到SDK初始化成功的回调才去触发加载请求(例如:onInitializationFinished()回调)。细节请参照:

    您可以传入该App底下创建的任一广告单元ID来初始化,并非一定要特定的广告单元ID。

  3. 确保有开启MoPub SDK日志。例如:
     SdkConfiguration sdkConfiguration = new SdkConfiguration.Builder("广告单元ID")
                                                     .withLogLevel(LogLevel.DEBUG
                                                     .build();
    
     sdkConfig.loggingLevel = MPLogLevelInfo;
    
     LogLevel = MoPubBase.LogLevel.MPLogLevelDebug
    

从MoPub SDK 5.5.0版本开始,所有日志消息前面都有调用MoPub记录器的方法的完整路径。这样可以更轻松地知道每个日志条目确切相关的类别和方法,以帮助您更快地排除问题。强烈建议您升级到此版本以上。

如何测试

测试MoPub Marketplace

  1. 选用以下对应表中的MoPub广告单元ID,於您的App中加载广告。

    Android

    Format Size Ad unit ID
    小橫幅 Banner 320x50 b195f8dd8ded45fe847ad89ed1d016da
    大橫幅 Banner(Mrect) 300x250 252412d5e9364a05ab77d9396346d73d
    插屏 Interstitial 320x480 24534e1901884e398f1253216226017e
    激励视频 Rewarded Video 320x480 920b6145fb1546cf8b5cf2ac34638bb7
    互动式激励 Rewraded Playable(MRAID) 320x480 15173ac6d3e54c9389b9a5ddca69b34b
    原生 Native n/a 11a17b188668469fb0412708c3d16813
    原生视频 Native video n/a b2b67c2a8c0944eda272ed8e4ddf7ed4

    Android - real MPX

    Format Size Ad unit ID
    小橫幅 Banner 320x50 b195f8dd8ded45fe847ad89ed1d016da
    大橫幅 Banner(Mrect) 300x250 252412d5e9364a05ab77d9396346d73d
    插屏 Interstitial 320x480 24534e1901884e398f1253216226017e
    激励视频 Rewarded Video 320x480 920b6145fb1546cf8b5cf2ac34638bb7
    互动式激励 Rewraded Playable(MRAID) 320x480 15173ac6d3e54c9389b9a5ddca69b34b
    原生 Native n/a 11a17b188668469fb0412708c3d16813
    原生视频 Native video n/a b2b67c2a8c0944eda272ed8e4ddf7ed4

    iOS

    Format Size Ad unit ID
    小橫幅 Banner 320x50 0ac59b0996d947309c33f59d6676399f
    大橫幅 Banner(Mrect) 300x250 2aae44d2ab91424d9850870af33e5af7
    插屏 Interstitial 320x480 4f117153f5c24fa6a3a92b818a5eb630
    激励视频 Rewarded Video 320x480 8f000bd5e00246de9c789eed39ff6096
    互动式激励 Rewraded Playable(MRAID) 320x480 98c29e015e7346bd9c380b1467b33850
    原生 Native n/a 76a3fefaced247959582d2d2df6f4757
    原生视频 Native video n/a b2b67c2a8c0944eda272ed8e4ddf7ed4
  2. 如果您已经开通Marketplace (MPX),则可以使用您自己的广告单元ID。于后台创建一条Marketplace Line Items来测试您的App。您可以关闭其他Line Item或调整Priority来优先投放MPX,并记得将MPX底价调至最低以提高填充率。 test-mpx-1

  3. 建议VPN至美国IP进行测试,以提高MPX填充率。

测试广告网络

  1. 使用以下预建的各网络广告测试ID。选择您想要测试的网络,从JSON表中得到对应的广告单元测试ID。
  2. 如果您想測試自己创的网络Network Line Items,则可以直接測試您自己的广告单元ID。由于没有广告网络会100%填充。建议后台Lineitem也先填入网络提供的测试广告ID来确保能持续拿到广告。请参阅各网络的测试指导,例如:[Facebook Audience Network Testing][FAN Testing]。您可以关闭其他Line Item或调整Priority来优先投放您欲测试的网络。test-network-1

  3. 建议VPN至美国IP进行测试,以提高网络填充率。

重要提示:测试完成后,请务必将广告测试ID替换回成您自己MoPub后台的广告单元ID。

解读设备日志(Device Logs)来验证广告行为是否正常

  1. 于您的设备日志中筛选出MoPub的SDK和adapter日志
  2. 加载广告时,确认是否能看到日志打印广告请求,例如: Loading url: http://ads.mopub.com/m/ad?...id=广告单元ID…
  3. 展示广告时,确认是否能看到日志打印曝光追踪已成功发出,例如: Successfully hit tracking endpoint: http://ads.mopub.com/m/imp?...
  4. 点击广告时,确认是否能成功跳转,并看到点击追踪成功发出,例如: Successfully hit tracking endpoint: http://ads.mopub.com/m/aclk?...
  5. 想了解更多日志的定义,请参阅说明:
  6. 如果看到任何错误日志,请参阅下方障碍排除。

障碍排除

查看Known Issue

查看MoPub中介集成工具里的What’s New分页是否有有相似的’Known Issue’。采取相关的建议,或是通知您的帐户经理。

检查MoPub SDK和适配器的更新日志

参照MoPub SDK Changelog是否问题已在新版获得改善:

参照各网络适配器的Changelog是否问题已在新版获得改善:

常见日志问题

设备日志(在Android中也称为logcat)记录应用程序中发生的情况,包括SDK的操作和进程。它们可以由Android Studio或Xcode等开发人员工具提取。如果您不确定如何提取设备日志,团队中的开发人员应该能够为您提供帮助。请确保您已经开启MoPub SDK日志(参考前章节)。您可以透过关键字”MoPub”筛选MoPub SDK所打印的日志。然而,有时候问题发生在网络或其他第三方SDK,所以建议您搜集完整的日志以帮助排查问题。

有关更多信息,请参阅我们的设备日志文档:

通常代表适配器丢失或位置错误。如果您是手动导入适配器,请检查适配器放置路径是否正确,且您创建Ad Unit时有选择正确的平台(Android/iOS)。

确保您加载广告时填入的MoPub Ad Unit ID与后台中的Ad Unit ID完全相同。使用错误的字串将导致此错误。

此日志表示您的广告单元没有填充。

它并不表示您的对接存在问题。必须和其他错误日志同时查看来厘清原因。可能是其他错误,例如:Could not find custom event class 造成。由于没有广告网络会100%填充,如果没有看到其他错误日志,很可能只是正常未填充。

如果持续未填充,很有可能是底价过高,或是您测试的所在地区填充率本来就很低,也可能是您的VPN服务器运作有问题。请检查您的网路环境并VPN至美国IP来做测试。如果您对特定网络的填充有任何疑虑,请与您的广告网络窗口联系。

仔细检后台网络设置中输入的ID(例如:App ID, Network ID, Zone ID)是否正确并输入到对应的栏位。

对于横幅广告,mopub超时限制为10秒,对于插屏及激励广告,则为30秒。在我们尝试请求广告网络后,如果广告网络在该超时时间内没有响应,您将看到此错误。请检查您的网路环境和VPN是否正常。否则,这有可能一个广告网络端的问题; 建议请联系您的网络合作伙伴。

在开始展示Marketplace广告之前,您需要获得MoPub Marketplace的批准。要确定您的帐户是否已获批准,请檢查MoPub用户界面的“Marketplace”頁面是否有任何提示訊息。

重现和隔离问题

情況一:尝试用干净的MoPub Demo App集成来重现问题

  1. 编译或下载 MoPub Demo App

    请注意:Demo App未预先集合任何第三方网络。在开始使用在您自己的瀑布上进行测试之前,请确保另外集成您App所使用的网络SDK和Adapter。

  2. 将您遇到问题的广告单元ID用在MoPub Demo App中来加载广告。
  3. 如果不能在Demo App中重现,通常代表的是您App里有潜在的对接问题。请检查日志信息裡的提示,以及詳閱MoPub对接文件。

情况二:尝试在您的App里使用测试ID来重现问题

  1. 前章节提到,选择相对应的测试广告单元ID用在您的App中。
  2. 如果不能重现,检查是否您MoPub后台设置或是网络端后台的设置有误。

进阶排查

透过Charles Proxy工具验证广告请求、曝光、点击:

Charles Proxy是一个HTTP/HTTPS检视器。你可以透过它来观察你的客户端设备与MoPub伺服器或第三方伺服器之间的通讯状况,包含广告的请求、返回、曝光追踪、点击追踪。

如果成功捕获到MoPub的广告请求,将在Charles日志中看到以下内容:

  • MoPub广告请求:

http://ads.mopub.com/m/ad

  • MoPub廣告源尝试跟踪器:

http://ads.mopub.com/m/attempt

  • MoPub曝光跟踪器:

http://ads.mopub.com/m/imp

http://mpx.mopub.com/imp(仅适用于Marketplace廣告)

  • MoPub点击跟踪器:

http://ads.mopub.com/m/aclk

http://mpx.mopub.com/aclk(仅适用于Marketplace廣告)

详细参阅Charles设置手册来进行抓包和验证。

[FAN Testing] https://developers.facebook.com/docs/audience-network/testing/

Last updated February 16, 2019

TWITTER, MOPUB, and the Bird logo are trademarks of Twitter, Inc. or its affiliates. All third party logos and trademarks included are the property of their respective owners.

© 2018 MoPub Inc.