推送故障排除指南

您是否在向“所有用户”,“目标用户”或“测试设备”发送推送通知时遇到问题? 本文档将尝试帮助您解决推送通知中的一些常见问题。

1. 诊断当前状态

要开始找到正确的解决方案的过程,您需要回答以下有关发送失败的问题:

检查是否推送发送失败是发生在:

  1. 总是/有时
  2. 到所有/特定设备
  3. 至全部/iOS/Android系统
  4. 到所有版本/特定版本特定操作系统 (例如,iOS 8 +,Android 2.3.4)

从这里,您可以缩小问题的可能原因。

2. 控制面板错误代码

您可以在“测试设备”和“推送通知报告”中看到错误的原因。

  1. 转到应用程序设置->测试设备。 然后点击已运行推送应用程序的设备旁边的“发送”按钮。 如果推送成功,您将在屏幕上看到“成功”消息闪烁。 您还将在设备上看到推送通知。 如果不成功,您将在屏幕上看到一条错误消息。

  2. 如果推送发送的发送率小于100%,则可以通过将鼠标悬停在“发送率”旁边的“?”上来查看被退回的推送数量和原因。

3. 错误代码以及解决办法

iOS

**错误代码****解决方法**
8该应用程序已从此设备上卸载。 尝试在设备上安装游戏,并确保已在设备上启用了推送通知。
UnexpectedError由于APNS服务器中发生错误导致发送失败。
CERT_EXPIRED推送证书已过期。请在应用设置->推送页面更新证书。

如何配置推送证书

CERT_NOT_PRESENT推送证书不存在。请检查应用设置->推送页面。

如何配置推送证书

SSLError无效的证书。请使用正式环境下的证书文件。 请不要加密文件

如何配置推送证书

NoPushToken(仅测试设备页面)该设备没有推送Token,请确保已安装推送集成应用程序。

测试模式&开发者终端

检查列表

  • 您可以在设备的[设置> YOUR_APP_NAME]菜单中看到“通知”吗?
  • 如果看不到,请选中入门指南中介绍的“注册远程通知”部分。
  • 创建配置时是否包括推送服务?
  • 您是否添加了用于分别为iOS 7,iOS 8+注册远程通知的代码?
  • 请参阅入门指南中的“注册远程通知”部分。
  • 是否producation的证书吗? Tapjoy当前不接受development推送证书。
  • 您是否使用临时配置来构建应用并将代码签名身份设置为“分发”? 如果您使用的是开发版本,则将无法使用producation推送证书将推送发送到该版本。

Android

**错误代码****解决方法**
NotRegistered DEVICE_UNREGISTERED应用程序已从此设备上卸载。 尝试在设备上安装游戏,并确保已在设备上启用了推送通知。
MismatchSenderId BAD_REGISTRATION‘GCM Sender ID’ 和Tapjoy控制面板上API key不匹配

如何获取GCM sender ID 和 api key

UnexpectedErrorSERVICE_UNAVAILABLE

由于GCM服务器错误导致的发送失败。
NoPushToken(仅测试设备页面)该设备没有推送Token,请确保已安装推送集成应用程序。 请检查在应用设置->测试设备页面是否填写了正确的GAID。

Debug Mode & Developer Console

InvalidRegistration无效的Token格式。请联系您的客户经理。
CERT_NOT_PRESENTPush Certificate does not exist.请检查应用设置->推送页面。

如何获取GCM sender ID 和 api key

检查列表

  • 您有多个推送提供商吗? (第三方或您自己的推送服务器)
  • 请参阅多个推送提供商。
  • 您是否在Google开发者控制台中为您的项目启用了GCM?
  • 您在Google开发人员控制台中是否为api密钥允许任何IP地址?

控制面板故障排除

  • 如果您无法在Tapjoy控制面板中保存api_key和发件人ID,请验证api密钥是否已启用。
  • 您还可以运行以下脚本来验证api_key已在GCM中正确注册。 api_key=curl –header "Authorization: key=$api_key" \ –header Content-Type:"application/json" \ https://gcm-http.googleapis.com/gcm/send \ -d "{"registration_ids":["ABC"]}"
  • 401响应表示您的服务器密钥无效。
  • 有关此问题的更多详细信息,请参见Google文档:https://developers.google.com/cloud-messaging/http

4. FCM API Key安全限制

最近,Google在GCM端不接受无限制api密钥。 如果您在尝试在ltv控制面板上保存api密钥和发件人ID时收到错误消息,则必须在Firebase控制台上导入google项目。

  • 访问Firebase控制台,然后单击“导入GOOGLE PROJECT”。
  • 选择您的Google项目并导入。
  • 单击设置图标,然后选择“项目设置”菜单。
  • 选择“Could Messaging”标签,并使用在此页面中API密钥和发件人ID进行ltv控制面板推送。
  • 如果您有未列出的问题,请通过联系支持将有关问题的详细信息发送给我们。