Expand my Community achievements bar.

Batching support for the latest AEP Mobile SDK and Adobe Edge Network

Avatar

Level 2

Does anyone know if there is a "batching" option available for the AEP Mobile SDK when sending data to the Adobe Edge Network from mobile apps? I know this was (and still is) an option when sending to Adobe Analytics (AA) using the AA extension in Adobe Tags (Launch). The only somewhat official confirmation I've found about batching is an Adobe github comment from 2021 saying: "the events batching and queuing is no longer supported in Analytics Edge, the hits are sent as soon as a network connection is available on the device"

Has anyone seen or heard anything about batching support existing or being added at some point? I'm working for a global organization that is concerned about constant pings from devices to send data, and the effect on battery life, especially for those in places like Africa, so batching could help.

2 Replies

Avatar

Community Advisor and Adobe Champion

Hi, 

 

I don't know if there is an "easy" switch available in the SDK... but I do know that the Edge Network has two separate Endpoints that can be used:

 

Interact Endpoint (Single Event)

https://developer.adobe.com/data-collection-apis/docs/endpoints/interact/

 

and the Collect Endpoint (Batch of Events)

https://developer.adobe.com/data-collection-apis/docs/endpoints/collect/

 

 

We didn't use batching in our old app implementation, so when we upgraded to Data Streams, we kept it the same... though, it's probably something we should investigate when we have the time and resources....

 

 

Anyway, the point is, there is a batch API endpoint, so I would think that there should be a way to make use of this from the apps and batch calls to reduce individual calls.

 

I would start the investigation there.. let us know if you make any progress.

Avatar

Adobe Champion

AEP mobile sdk does not support batching events to the edge n/w, all events sent with Edge.sendEvent are dispatched individually in real time. and does not support batch events.

But note that the SDK does support queuing & offline tracking. When the device is offline, events are backed up in the sdk's persistence layer and queued until a network connection is available, then they are forwarded to the edge n/w. see below:-
https://developer.adobe.com/client-sdks/resources/faq/
 

SumitKumar_0-1764204526904.png

As @Jennifer_Dungan mentioned if you need true batch ingestion (multiple events in one call), you must use the Collect API (which is similar to bulk data ingestion APIs in AA), sending XDM payloads directly as sending a batch of events to a datastream and is intended for cases where events have been queued locally (for eg, mobile apps in your usecase). https://developer.adobe.com/data-collection-apis/docs/endpoints/collect/  

Just a caveat that you are responsible for constructing identityMap, managing ECID/fpid and events and handling on it own as it is outside of SDK and purely a API way of tagging through collect endpoint.

So, in case you are mixing both SDK and batch events, SDK generated events and Collect/batch events can be mixed, but they must share same identities. you need to use compatible identityMap definitions (ECID/fpid, etc.), otherwise AEP will treat them as different users and you will disjoint visits/profiles for SDK vs Collect API. https://experienceleague.adobe.com/en/docs/experience-platform/xdm/field-groups/profile/identitymap