If your campaigns show influenced opens and not direct opens, it is possible that something is misbehaving in your integration.
The problem can come from different places depending on your platform:
iOS: Possible SDK Conflict
On iOS, the issue may be caused by a conflict with another SDK that automatically integrates with your application delegate (such as but not limited to Firebase).
Android: Possible Integration Issue
On Android, it can mean that Batch isn't integrated into all activities. If you're using a Custom Receiver (or Interceptor) and displaying your own notifications, you might not have copied the data Batch needs in the intent.
See the Batch.Push.appendBatchData() and related methods are described in the custom receiver documentation. If you use a custom receiver, you should also reconsider it and see if the interceptor meets your needs. It greatly reduces the likeliness of this kind of error.
Direct opens also might not be detected if the splash screen is ending too soon. We recommend that you use the feature Excluding activities to exclude the splash screen from Batch's lifecycle handling.
Testing Your Integration
Once you've made the fixes, you can test your integration by taking the following steps:
Run the Xcode or Android Project on a device in debug mode.
Send a notification while outside of the app (in background mode, do not kill the app).
Open the notification.
Check your Xcode logs or your logcat. You should see the following logs: "App was opened from a Batch push".