A Summary of Troubleshooting Steps and Common issues faced for PUSH Deliveries

Objective

  1. Pre-requisites for setting up Push
  2. Tracking Push deliveries
  3. Differences between Email and Push deliveries
  4. Troubleshooting Performance
  5. Common Issues and References.

Environment

All v6 Instances

Steps

What are PUSH Deliveries used for?

  • PUSH Deliveries are used for sending Notifications to Mobile Apps for iOS and Android Channel.
  • Deliveries are sent through APNS (iOS) or GCM (Android) Servers through Push Connectors.
  • For iOS, two connectors are available:    
    • The iOS binary connector sends notifications on the legacy binary APNS server.
    • The iOS HTTP/2 connector sends notifications to the HTTP/2 APNS

Prerequisites:

  • Mobile App Channel package to be installed on the Instance.
  • Campaign’s Android and iOS SDK to be properly integrated to Customer’s Mobile Apps.
  • Mobile application on Campaign Instance to be integrated with Customer’s Mobile App through Integration Key.
  • Mobile Application to be linked to Campaign’s service, such as:              
    • For iOS, one DEV and one PRD Application shall be linked
    • For Android, one Application to be linked
  • All Prerequisites and Conditions specified by Apple (Apple Push Notification Service) and Google (Google Cloud Messaging), to be satisfied.
  • For iOS,
    • Binary connector: Campaign to authorize inbound and outbound TCP traffic on port 2195. Mobile Devices must authorize inbound and outbound TCP traffic on port 5223.
    • HTTP/2 connector: Campaign must allow communication to and from the following servers:
      -  api.push.apple.com: port 443
      -  api.development.push.apple.com: port 443
    • For using Rich Notifications, iOS HTTP/2 Connector to be used.
  • For Android,
    • Campaign to authorize connection to GCM on ports, 5228 (the most frequently used), 5229 and 5230.

Response from APNS/GCM Server:

  • Communication with APNS/GCM Servers is a One-way Process.
  • No response from these Servers, whether a Notification has reached Mobile App or not.

Tracking of PUSH Deliveries:

  • Tracking of PUSH Deliveries are configured at App level, and not at Delivery level.
  • Functions used to implement Tracking at App level are:

- iOS:

- v7.0 onwards = application:didReceiveRemoteNotification:fetchCompletionHandler
- v3.0 to v7.0(excluded) = application:didReceiveRemoteNotification

- Android:

- notifyReceive() and notifyOpening()

NMAC opt-out management (mobileAppOptOutMgt) workflow:

  • This workflow is used to mark those App Subscription IDs disabled that have unsubscribed to the Mobile App of the Customer.
  • There is a possibility that the User Unsubscribes from an App, but its Subscription ID is still enabled at our end.

Difference Between Email and PUSH Deliveries:

Email PUSH

Recipients are targeted using Nms: recipient schema

Recipients are targeted using Nms: appSubscriptionRcp schema
Email Deliveries target Email Addresses PUSH Deliveries target App Subscription IDs
MX Servers acknowledge the Email Received No acknowledgement received from APNS/GCM Servers
Email can be sent to anyone with an Email address Notification can only be sent to a Recipient subscribed to iOS/Android Service on AC
Do not need a Connector to send out Deliveries Need to define iOS/Android Connector for sending out Deliveries

Performance Troubleshooting:

  • Use SPLUNK Dashboard for checking the performance of MTA Servers and Database.
  • Use OIT Tool for checking Long Running Queries.
  • Check for iOS Certificate. Errors registered. It is visible in Web Logs.
  • Dedicated MTA for PUSH.
  • Dedicated MTA for Android and iOS Deliveries.
  • Set Message Batch Quantity as 256, in Deliveries.

Common Issues:

  • Notifications not received on Mobile: Unfortunately, there is no acknowledgement from APNS/GCM Servers registered. Delivery of Notification on the Mobile App. Customer has to verify their Implementation at App level.
  • Tracking is not working: Implementation Issue. Customer has to check with their App Developer for this.
  • Certificate has expired: Customer has to share the Certificate for Installation. Either Install the Certificate on Customer’s behalf or share with them the steps for Installation.

Additional information

Dette arbejde har licens under en Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Opslag på Twitter™ og Facebook er ikke omfattet af vilkårene for Creative Commons.

Juridiske meddelelser   |   Politik for beskyttelse af personlige oplysninger online