Troubleshooting
If you experience difficulties with the SDK, here are some tips and common errors you may find as well as ways to test the use of the SDK by your app. If you have further requests and issues, contact your Customer Success Manager.
FollowAnalytics Device Observer
The FollowAnalytics platform enables you to view your analytics and test your push notifications with the Device Observer. This feature is designed for helping your integration and your QA and highly recommend you use it whenever you are having trouble with the SDK. You can find more on the Device Observer here.
How to test your setup
The SDK has a Validator that will ensure that everything is properly configured. When your app is running in isVerbose to false
, a popup is shown at launch time with the details of what is properly configured, and what is not. This makes it easier for you to validate that the various steps were performed¬ properly.
The validator is triggered when the configuration is setup with isVerbose configuration as true
. It will display as an in-app message at each launch of the app (see screenshot below).
Troubleshooting push notifications
Push notification checklist
Before you start testing for push notifications be sure to have setup all the requirements. Here is a short checklist you can go over:
- Add your apple p8 certificate or p12 certificate to the administration page of your app in the platform
- Add push notifications capabilities
- Add the request for notification authorization in the app
- Launch the app and accept the authorization for push notifications when the dialog is displayed
You will now be able to receive push notifications.
FollowAnalytics enables you to send a test push notification from the Device Observer. Access the Device Observer by doing the following:
- Log on to the platform
- Go to Administration > Test Devices
- Select or register on your device
Now you are on the Device Observer page. From there you can click to button called "Send push notification". A standard push notification will be sent to the device you are observing. If the platform was unable to send the push notification, two errors could be displayed:
-
Opt-out Error: This message means that the device does not have the required token to receive push notification. On iOS, you need to request a token from Apple. This token will then be sent to FollowAnalytics servers. This procedure may take time.
-
unknown device: This means that the device is not recognized by the server. This might be because your device was not yet registered. In this case, wait and try again later.
If the problem persists, contact your Customer Success Manager.
Checking your setup for notifications
You can also check the correct implementation push notifications capabilities and methods, by using Knuff. Knuff will allow you to push notifications directly to your device by using the push notification certificate and the apple cloud messaging services token, circumventing FollowAnalytics servers.
This will help you understand if any issues you experience with push notifications are due to your setup or the connection with the FollowAnalytics push servers.
Integrating in projects with other SDKs and compatibility
The FollowAnalytics SDK proxies the application's delegate. If you are changing the default app delegate, make sure to do so before initializing the FollowAnalytics SDK. Otherwise you may experience crashes.
Other SDKs, like Firebase, may also swizzle your applications' methods by default. For example, in order to have both FollowAnalytics and Firebase SDK working properly in your app, make sure you set the FirebaseAppDelegateProxyEnabled
to NO
in you app's Info.plist
.
The FollowAnalytics SDK is regularly tested alongside most major SDKs on the market. We will keep you informed of compatibility issues such as the one described above. If you experience any other issues of compatibility, please contact your customer success manager.
My data does not appear on the dashboard
When your app runs with isVerbose
as true
mode or in a simulator, the data is automatically sent as development logs. Development logs are not sent to the server and will not show on the FollowAnalytics Clients Platform.
Development logs can be checked using the method given in the FAQ section (see related entry in FAQ for more information on debug & release modes).
You can also use the device observer for checking your tags. Select your device, then use your app. You will see that the logs from your phone will appear live from the screen. From there you can see if the your tag is sent to the server.
SDK size and impact on app performance
The FollowAnalytics SDK has been developed to have no visible impact on the app. The battery won't be impacted, and the network will only be used to send light JSON files to the servers.
The impact on the app size is also very limited.
- on Android, the
jar
version of the SDK is 225KB, while theaar
is 201KB. - on iOS, even though the archive you download is above 16MB, the impact once compiled in your app is between 600KB and 800KB.
If you are experiencing issues concerning the size of the SDK and clear performance setbacks, please contact your customer success manager.
Crash reports
To see if the SDK, properly sends crash reports you can test this by simulating a crash of your app. To do this, create an empty array and try to access its item at index 0
. This will crash your app. When reloading the app, you will see a Crash report sent to FollowAnalytics servers.
NSArray *array = [NSArray new];
id obj2 = [array objectAtIndex:0]; // this line crashes
let array = [String]()
print(array[0]) // this line crashes
To verify that the crash configuration is working properly, launch your app without the debugger. i.e. manually on the device or from the simulator, without using the "run" button in Xcode.
You can then check if the Crash report is sent to the server by looking at the Device Observer.
Locating the device ID
Every log sent by the SDK has the device ID in the payload. So, your deviceID will be displayed in your console when isVerbose
is set to true
. You will also be able to see it by using the Device Observer the device id.
To display your device ID somewhere in you app, you can implement the getDeviceId
method:
[FollowAnalytics getDeviceId]
FollowAnalytics.getDeviceId()
Retrieving the device ID via email form the platform
If you cannot use the email link to retrieve the device ID by sending an email from the platform, you most likely will not have setup your URL Scheme. You can do this by following the steps in the integration section.