When using any SDK, and call get treatment method, the call returns a correct treatment value, however, the impression is not getting sent to Split server and does not show up in Results page.
There are few possible root causes:
When using Redis and Split Synchronizer:
- Synchronizer not able to read the Impression key in redis, check for any errors in Synchronizer debug log or Synchronizer admin console (http://[Synchronizer host]:3010//admin/dashboard) to determine root cause.
- Synchronizer is not keeping up with the Impressions flowing from SDK, check the KB article for solution.
When SDK connect directly to Split Cloud:
- All SDKs have a thread that runs frequently and check the SDK cache for unpublished events and impressions. The frequency time is controlled by impressionsRefreshRate parameter for Impressions, and eventsPushRate for Events. If the SDK code exited while there is still unpublished cache, they will not be posted to Split Cloud.
- The Key Id (Customer, account, etc) used for the Impression has character length higher than 256 bytes.
- Make sure to call the Destroy() for the client object before existing the code. Please refer to each SDK language section in our SDK documentation link for the method syntax. While the Destroy method will flush all the unpublished Impressions and Events, it is also recommended to add a delay or wait command for enough time to have the internal Impression posting thread runs.
- Make sure the Key Id string used in get treatment method is less than 256 characters.