Troubleshooting
Basic push issues
I don't receive any Push Notifications
Issues that cause not receiving Push Notifications are very commons. Here are the most recurrent causes:
- Make sure your Device ID (IDFV) exist in our database. You can check your device ID by looking at the last open date of your app. If it doesn't, your IDFV might have changed.
You can check your last open date from our dashboard: Targeting > Search or Help > Test tools.
If you have uninstalled and reinstalled your app, it is possible your IDFV or your Token has changed.
- Check if your Device is eligible to Push Notifications.
You can check the following fields in our database by either using our Test Tools or by exporting your device profile.
Token: if there is no Token attached to your device profile, you probably will not be able to get Push Notifications.
Opt-In Status: You can check the field system_push_optin
. If its
value is N
, check if the push are correctly activated for the app.
Feedback field: If the value of the field feedback
equals 3 or more,
we consider this device profile as uninstalled and we will not target
him anymore.
- Check the uploaded push certificate for your app.
You can check the uploaded certificate from our dashboard: Settings > Manage Applications.
In order to have a valid certificate, you should see a green checkmark.
- If the certificate status is Invalid password, it means that the password registered on the dashboard is not the good one. You have to change it.
- If the certificate status is Connection rejected by iOS gateway, it means that the uploaded certificate is not valid, you have to re-generate it.
- The certificate status could also be Multiple Certificate, it means that the uploaded certificate contains two certificates instead of one. Here is a link explaining the steps to follow: Multiple Certificates. If this status appears, please verify that the expiration date is not passed, otherwise, you will have to generate a new certificate and upload it on the Accengage dashboard.
- Check your
- Check that the development certificate box is checked if the certificate is used for dev environment.
If you are not using a dev environment, this box should not be checked.
- Also check that the certificate bundle id matches with the app bundle id on which you make your tests.
- Verify that the uploaded certificate is well a push production certificate.
- Then, verify that the certificate provisioning profile is well linked to the app provisioning profile.
- Check the sending summary You can check the sending summary of the message, it shows the number of notifications we delivered to Apple.
If the sending log shows zero, please check that your segment is
actually targeting devices. For your information we target all the
device profiles having a token and having the feedback
field value < 3. If the sending log is different from zero, the message has well been sent. As a consequence, please check point 4.
- Check the sending environment Make sure the environment in which you perform your tests on Accengage interface is the good one (Dev or Live).
- Check the marketing pressure When you send push and no push is received, check the marketing pressure.
You can check the marketing pressure from our dashboard: Settings > Settings and look at the section Marketing pressure and display delay.
In some cases, the sending limit may have already been reached.
- Check the push parameters
In the messages parameters, we have an option to display or not the push notification "If app is already in the foreground". Please make sure you allow this display if testing while the app is opened.
- Check the provisionning profile
The provisionning profile must contain the APNS information. If the provisionning profile has been created before the push certificate, you have to re-create the profile.
- Check your internet connection If you are using a Wifi connection, it may happen that the Networks blocks some communication. This can block the Push Notifications reception.
Advanced push issues
Push with attachment doesn't work
- Try to resend your Push Notifications once. Sometimes, it happen that attachments fail to download.
- In case of sound attachment, unfold your Push Notifications to check if the audio player is visible.
- Check if your attachment is valid. Check it doesn't exceeds size limit. Check also the file format is supported. See file limitations in this sections.
- Verify your integration of Push Notifications with media attachment. Be careful you check the exactly the same options.
- Verify your device is able to receive Push Notifications with media attachments (iOS 10+).
- If your attachment uses http, ensure your app allows http protocol.
Carousel template doesn't work
- Ensure you are able to receive a Push Notification with an image as attachment. This is mandatory to be able to use the Carousel template.
- Verify your integration of Carousel Template. Be careful you check the exactly the same options.
Media Attachment good practices
Useful documentation
Here are the available documentations about iOS 10 :
- our User Guide
- our Media attachments documentation
- Apple UNNNotificationsServiceExtension Documentation
File formats
-
The file template should be as light as possible in order to optimize reception. Here are our recommendation for a maximum reach :
- Less than 1MB for an image.
- Less than 1.5MB for a video.
- Less than 1MB for an audio format as well.
-
Formats managed by our Dashboard are :
- .jpg, .jpeg, .png, and .gif for templates images.
- .MP3, .MP4, .AIF, and .WAV for audio templates.
- .MPG, .MP2, .MP4, .AVI, .M4A, .M75, .M15 and .VFW for video templates.
Here are media samples we use during our testing phases:
Push Notification actions don't work
- Most of the time, it is due to a bad SDK Integration. Verify the SDK is properly integrated. For example verify that Accengage starts synchronously from the main thread.
- Check if you didn't prevented notification tracking. It would also disable web redirections and any tracking.
- Check if another SDK doesn't perform swizzling on UIApplicationDelegate or UNUserNotificationCenterDelegate methods. If yes, please disable Accengage's automatic integration by following this documentation.
- Go in the Settings of you application on our interface. Verify matching between the templates you use in your application and those that are configured in the interface. Check especially the good spelling of different elements in Categories or Custom Params...
Deep linking issues
Ensure you well configured URL Scheme by following this documentation. You should create and whitelist your URL Scheme.
Test it from Safari by accessing your\app_url_scheme://_. It should redirect to your application main page.
You need to handle the URL scheme interpretation in your application on your own by using app delegate’s application(_:open:options:) method. Indeed, when we send a push with an action as URL schema, we transfer this information to the system. Then, your system transfers the information to your application.
ACCInfos usage and log issues
Install ACCInfos application
You can install ACCInfos app by using this link or quite simply by scanning the following QR:
How to use ACCInfos app ?
- Ensure you allowed our application ACCInfos to exchange informations with your application. Documentation here
- Open the ACCInfos application
- Turn it into background
- Open your application and reach the code where the Accengage SDK starts
- Go back to ACCInfos application
If your device informations appear, you should also be able to receive SDK Logs.
If you need to send us your logs, just let ACCInfos application run in background and reproduce your issue. To send your logs to Accengage support team, please press the button "Send logs".
This process is totally secured, its goal is to allow our info App to connect to our SDK and track the device informations related to Accengage.
I have no information in ACCInfos
- Ensure you allowed communication between your application and ACCInfos. Documentation here. It is mandatory from iOS 9.
- Ensure you reached to SDK start by navigating in your application. Some actions may be needed.
- Check your integration. Integration documentation is here
Note that your device token cannot be generated until your Push Notification Registration isn't successful.
Certificate issues
.p12 is the certificate file format you need to build and publish your app on the Apple App Store. It is the filename extension for PKCS #12 archive file format. The .p12 certificate file format is also mandatory to enable Accengage to send Push Notifications.
Multiple certificate issues
To avoid multiple certificate issues, you need to correctly generate your .p12 file.
Below the two main errors if you have a multiple certificate:
- Export two certificates in the same .p12 file.
- Export your certificate AND the private / public key in the same .p12 file.
In order to correctly generate your certificate, please select only your certificate :
Generate a .p12 certificate
- Generate a Push Notification certificate Here is our guide explaining how to create a push certificate (it needs to be done on a Mac computer).
- Upload your push certificate on Accengage
It needs to be uploaded on the Accengage dashboard in the Application settings: Settings > Manage Applications > Edit
The local admin rights are required to access this section. If you don't have it please adress your internal Admin or your Project Manager.
I can't add a password to my certificate
To begin with, ensure you already requested your appropriate certificate on the Apple developers interface.
See our documentation to request the certificate.
Once you created your certificate you may download it as .cer file.
Double click the downloaded file to add it to your Keychain.
You may access to the Keychain Access tool in the Keychain Access application on your Mac.
Right click on the certificate in the Keychain access and export it as a .p12 file.
Finally, save the .p12 certificate and enter your password in the prompt meant for that purpose :
InApp issues
In-App messages are not displayed
It could happen that sometimes In-App messages are not displayed on your device. It could be caused for several reasons:
- Verify that the .xib files of the Accengage SDK are well added to the project and to the targets. It is the template files which are called when you want to display a banner or an interstitial.
- Verify that there is no lock which is integrated on the page in which you want to display the In-App .
- Verify your ** In-App settings** on the Accengage dashboard:
- check the capping, perhaps it has been reached already
- check that no other In-App are activated in the same time and with the same priority,
- check that your ** In-App landing page** is well registered on the dashboard,
- Verify if a marketing pressure has been activated for the In-App message.
- Verify your connection. Indeed, if your landing page is too heavy, it will take time to be uploaded on your device and a black screen will appear.
Analytics issues
My statistics are low
Causes of low statistics are multiple. Here are the most common ones.
- Check if you use an external library that also uses method Swizzling (typically Firebase). If both Accengage and such a library are implemented, you will have to disable method Swizzling on each side. On Accengage's side, please disable automatic integration and implement all required callbacks. On Firebase's side, please consult this documentation. If you don't have any reason to disable automatic integration please keep it enabled.
- Ensure you didn't disabled Push Tracking, by modifying Accengage's push suspended property.
- Ensure that you didn't disabled data Opt-In while managing GDPR feature. That causes SDK suspension and none data will be able to reach our servers.
- Ensure your SDK is started from the main thread and synchronously.
- You are in a restricted network that doesn't allow all requests.
Other issues
How to recover my Device Id (IDFV)
You can either recover your IDFV by using ACCInfos application or programmatically as explained here.
Deep linking in a map application
If you want to use a deeplink referring to a pre-selected path in a mapping application, here are the different URL to use:
- Maps (only available on a geofence trigger): http://maps.apple.com/?saddr=#{deviceLat},#{deviceLong}&daddr=#{targetLat},#{targetLong}
- Google maps (for ones who have the application):
- Address: comgooglemaps://?daddr=Accengage,+31+rue+du+quatre+septembre,+Paris
- GPS coordinates: comgooglemaps://?daddr=latitude,longitude
You will have to choose the action URL scheme for In-App or browser for push.
Note that when you use spaces in your URL, you have to replace them by "+".
You can also refer to the Official Apple documentation explaining the native deeplinks in more details.
IDFA-using apps recommendations
On April 11th 2014, Apple updated its guidelines about the submission of applications that use IDFA.
If you enabled tracking within our SDK, you need to quote the related category while submitting the app to the Store.
On the drop down that will appear, you need to check the following options:
Devices model technical naming convention
In the device database, the Device model
field is automatically
tracking the technical Id of the device model on iOS. It looks like 6.2,
7.2...
In order to make the matching with the names of these device models here is a listing with the references https://www.theiphonewiki.com/wiki/Models%C2%A0"
How the development tokens are generated for an Accengage production app ?
You will find below the explanation about the development token that may be generated on a production application. These can generate issues of push reception.
When an application has a development provisioning profile and production partners ID, a development token (instead of a production token) will be generated by Apple.
As you have integrated the production partners ID, the device profile will be created in the Accengage production database where only production token are supposed to be generated.
At each sending push, tokens are analyzed by Apple.
- Tokens which are not related to the certificate are rejected by Apple. Thus they get a feedback (or bounce).
- In addition, these development tokens will disturb the push reception for the following users. Indeed, a development token will block the following users in the database.
To overcome this behaviour, you have to ensure that all the applications for which you integrate our production partners ID have a production provisioning profile.
Moreover, when we notice development tokens during a sending, we have an automatic process to purge the database the night after, and we remove the development tokens which are present in the database.
Please note that even if a purge is made and a user re-opens his/her application (with a development provisioning), a new development token will be automatically re-created for his/her profile.