We’ve Cut the Synchronization Time by 70%, or How to Optimize Synchronizations with Delta Sync

PPC Bee manages advertising campaigns of different sizes — from campaigns with several ad groups to campaigns that use millions of keywords and hundreds of thousands of ad texts. Campaigns of this magnitude bring about many technological challenges, one of them being the necessity to make sure that generation and synchronization are being done at an acceptable speed.

Despite regularly trying to make synchronizing faster, we never achieved the results we wanted to achieve — some campaigns took up to a couple of hours to generate and synchronize. Primarily, we struggled with insurmountable limits, imposed by the amount of data and API advertising systems in conjunction with the synchronization paradigm. Therefore, we had to change our entire approach in order to solve the synchronization issue.

The original paradigm was based on a complete comparison of two models — the “required” generated status in PPC Bee, and the current “outdated” status in the systems. This comparison yielded a set of API calls which unified the status of the two models (e.g. editing an ad text headline or adding a keyword into an ad group). This safe approach of making exhaustive comparisons had one serious disadvantage — the creation of complete models, regardless of the number of changes which needed to be actually made.

The new “Delta Sync” approach targets precisely this drawback. We don’t compare entire models, only those parts (ad groups) where we know that their ad group counterparts will have to be updated (edited parts = deltas). We find the relevant piece of information and save it with the individual campaign elements as early as during generation. That means we compare only those things that really need to be updated, hugely increasing the speed of most campaigns. Deltas have been used for all automated synchronizations as of October 15th, and the average synchronization time was cut by about 70%.

The original synchronization method can still be used manually, by clicking the “synchronize” button — this also preserves the option of making a complete comparison, regardless of any changes in data or generators. This can come in handy, for example when manual changes in advertising systems are made by accident (e.g. you delete your ads directly in Google Ads by mistake, etc.). Deltas are used for the rest of the synchronizations which not only decreases the average synchronization time, but also frees up capacities on the server, allowing them to be utilized for other interesting features.