Before any impression, click or transaction reaches your reports, it is synchronised from our tracking to the reporting database. This is necessary because our tracking is designed as a completely separate application so we can guarantee uptime, even when we have to do maintenance to the rest of our system. Some times there is a delay in the synchronisation of tracking events. There are 2 reasons why this can happen:
When we pause the synchronisation during maintenance work
When we experience extreme traffic peaks
Before the maintenance starts we pause the synchronisation so we can safely deploy a new version of our code without loosing a single tracking event. After the new code is deployed and we verified everything works as expected, the synchronisation is started again. However, in the time it was paused a queue of events piled up, waiting to be synchronised. This queue will cause a delay between your reports and the latest tracked events. Usually this queue will be gone within an hour, bringing our reports back to real-time.
Sometimes unexpected traffic peaks can cause a queue of tracking event waiting to be synchronised. The synchronisation automatically scales up when the amount of tracking events increases. However, when the new events increase disproportionately fast, the synchronisation can’t keep up. This can lead to a small delay in the reports.
How a queue is synchronised
During the synchronisation of queued tracking events the clicks and impressions get priority over the transactions. This means that even when the synchronisation is processing the queue rapidly, it seems there is no progress in the transactions report at first. It also means that if you have CPC offers, all click transactions will be synchronised before the other transactions.
Why do clicks and impression get priority?
When tracking scales up, the queue is broken up into multiple queues that are all synchronised in parallel. This imposes the risk that a transaction is synchronised before the click or impression it belongs to, which would make it impossible to attribute the transaction to a publisher. Prioritising all clicks and impressions prevents this from happening.