Expand my Community achievements bar.

Hybrid App offline tracking issue

Avatar

Level 2

We work on hybrid app tracking (only it’s javascript part from webview). We utilize AppMeasurement javascript implementation as the app has page reloads (all the app files are stored on user’s device) and we need to track events offline.
 Online tracking works fine. We have issues with offline tracking.

 Settings:
 only ‘s.trackOffline = true’ and ‘Timestamp Optional’ for the report suite.

 Not set:
 s.offlineThrottleDelay
 s.offlineHitLimit
 s.forceOffline
 s.forceOnline 

The issue:

We’re able to see offline events in real-time report as soon as we restore the connection after offline interactions. We can see them in the report later.
 But if there are more than 10 events in offline queue (for instance, we fire 20 events offline) we restore the connection and only 10 (or less) events fire in real time report (and appear in the report later).
This behavior is either in local environment or in the app on the iPad.
We’ve tried to monitor the process in the browser locally:
requests are multiplying approximately every 500 milliseconds in the queue trying to get to the server. And only the last 10 requests for the last 10 events (or even less) get status 200 after restoring the connection. 

What can cause the issue? Have we missed smth or is it expected behavior? Thank you!

9 Replies

Avatar

Community Advisor and Adobe Champion

Hmm that is interesting.. I haven't worked with Offline data so much, since all our content requires the internet at this time.. 

 

However, that doesn't sound right... if you have offline data, then I can't see only the last 10 calls making it through... that seems counter productive to having offline data in the first place...

 

That said, this might be worth a ticket to client care, they should be able to see at a deeper level where the information might be getting lost and offer more suggestions that I can (maybe someone else here has more experience in this area and can chime in).

 

I do ask that whatever you find out, please share back here, so that everyone can benefit from your learnings.

Avatar

Level 2

Thank you, Jennifer. We've already reported this issue to Adobe Customer Care and I hope I'll share the results soon.

Avatar

Community Advisor and Adobe Champion

You may try to set the s.offlineThrottleDelay to control how many hits are sent simultaneously when the device is back online. When unset or 0, all queued hits sent at once could cause network issues and loss of data, and it is bad for performance as well.

Avatar

Level 2

I played with this setting as well as with s.offlineHitLimit. I set different values to them and tested. The issue remains.

Avatar

Community Advisor and Adobe Champion

That's getting difficult. I never tried that offline tracking myself so no first-hand experience, perhaps this can be an interesting exercise to test out.

I am thinking if the issue is with AppMeasurement which is unable to send out buffered hits when the device reconnected; or if AppMeasurement attempted to send offline hits but those hits failed; or hits sent but some timestamp issue causing the data unable to be displayed in AA. Noted that you already monitoring the embedded browser for network activities so you could have the answer already.

Hope Adobe Customer Care can give you the answer.

Avatar

Level 2

Nothing Adobe Customer Care has suggested has been helpful in solving this problem.

Avatar

Level 1

Hi @cathyc18262486 CC @leocwlau @Jennifer_Dungan - our organisation is just about to enable offlineTracking for our mobile app - did you get any further resolution or answers to resolve your issue?  Or has any anyone else solve this issue, had any similar/frustrating/confusing experiences or other battle stories to share regarding Offline Tracking in AA?

 

Avatar

Community Advisor and Adobe Champion

Hey All, 

 

I found this: 
https://experienceleague.adobe.com/en/docs/analytics/implementation/vars/config-vars/offlinehitlimit

 

If this isn't defined, it defaults to 10... that's the likely issue here!

 

I think you need to set this to a higher value... but I believe the more information that is stored, the more resources are required to hold the data... so you will have to make a decision on how much you can retain safely, and how much you are willing to potentially use.

Avatar

Level 1

Yes I did see that, thanks @Jennifer_Dungan .

 

From https://developer.adobe.com/client-sdks/previous-versions/documentation/adobe-analytics/api-referenc... I noticed a couple of functions which will help:

 

To do some analysis on the kind of queue volumes we see it typical app use, there is this function we can test with getQueueSize/getQueueSizeWithCompletionHandler

 

To force the whole queued analytics hits through which may solve OP @cathyc18262486 's problem is the sendQueuedHits function!

"This method forces the library to send all hits in the offline queue, regardless of how many hits are currently queued."