Snížili jsme dobu synchronizací o 70% aneb Optimalizace synchronizací pomocí delta synců

PPC Bee spravuje reklamní kampaně různých velikostí. Od kampaní s několika sestavami, až po kampaně s miliony klíčových slov a statisíci reklamními texty. Kampaně takové velikosti přináší mnoho technologických výzev, mezi něž patří mimo jiné i zajištění přijatelné rychlosti generování a synchronizace.

I přes průběžné snahy o zrychlování synchronizací jsme neviděli takové výsledky, jaké bychom si představovali — vygenerovat a synchronizovat některé kampaně trvalo i několik hodin. Převážně jsme naráželi na nepřekonatelné limity, které jsou stanoveny množstvím dat a API reklamních systémů ve spojení s paradigmatem synchronizace. Pro výrazné zrychlení jsme tak museli změnit celkový přístup k řešení synchronizací.

Původní paradigma bylo založeno na kompletním porovnávání dvou modelů — vygenerovaný “požadovaný” stav v PPC Bee a aktuální “zastaralý” stav v systémech. Výsledkem tohoto porovnání byla množina API volání, která tyto dva modely uvedla do stejného stavu (např. úprava nadpisu v reklamním textu nebo přidání klíčového slova do reklamní sestavy). Tento bezpečný přístup vyčerpávající komparace měl zásadní nevýhodu, a to tvorbu kompletních modelů bez ohledu na počet změn, které je nutné opravdu provést.

Nový přístup “Delta syncs” cílí na již zmíněnou nevýhodu původního přístupu. Do komparace nevkládáme celé modely, ale pouze ty části (reklamní sestavy) u kterých víme, že jejich protipóly v reklamních systémech bude nutné aktualizovat (změněné části = delty). Tuto informaci zjistíme a uložíme k jednotlivým prvkům kampaně již při generování. Tím pádem porovnáváme jen a pouze to, co je opravdu nutné aktualizovat, což pro většinu kampaní znamená obrovské zrychlení. Nasazení Delt pro všechny automatizované synchronizace proběhlo 15. října a průměrná délka synchronizací se snížila přibližně o 70%.

Původní způsob synchronizace lze stále spustit manuálně tlačítkem “Synchronizovat” — tím pádem nepřijdete ani o možnost kompletního porovnání bez ohledu na změny v datech nebo generátorech — to se může hodit například při nechtěných manuálních změnách v reklamních systémech (např. omylem smažete inzeráty přímo v Google Ads apod.). Na ostatní synchronizace jsou používány Delty, které nejenže snižují průměrnou délku synchronizace, ale také nám uvolňují prostředky na serverech, které můžeme využít pro další zajímavé featury.