Rakip sitelerini izlemek dışarıdan basit görünür: sayfayı indir, metni karşılaştır, değişince haber ver. İlk prototip bir öğleden sonrada yazılır. Sorunlar ikinci haftada başlar.
Aşağıda bu işi üretime taşırken karşılaşılan asıl zorluklar var. Hepsi çözülebilir ama hiçbiri bedava değildir.
Sayfa artık sunucuda değil, tarayıcıda oluşuyor
Modern kampanya sayfalarının büyük kısmı istemci tarafında oluşur. Ham HTML'i indirdiğinde çoğu zaman boş bir iskelet ve bir JavaScript paketi bulursun. Bonus oranı ya da indirim yüzdesi o iskelette yoktur, sonradan gelen bir API cevabıyla yerleşir.
Bunun bedeli tarayıcı çalıştırmaktır. Her tarama için gerçek bir tarayıcı açmak, basit bir HTTP isteğine göre kat kat daha fazla bellek ve süre harcar. Yüz sayfayı saatlik taramak isteyen bir sistemde bu fark doğrudan altyapı faturasına yansır.
Pratik yaklaşım karma olmaktır: önce hafif istek dene, içerik eksikse tarayıcıya düş. Hangi alan adının hangi yolu gerektirdiğini öğrenip saklamak, zamanla maliyeti belirgin biçimde düşürür.
Bot engelleri istikrarsızdır, hata değildir
Ticari siteler otomatik trafiği sınırlar. Karşına hız sınırı, tarayıcı doğrulaması, coğrafi kısıt ya da oturum duvarı çıkar. Önemli olan şu: bu engeller sabit değildir. Dün çalışan bir tarama bugün boş dönebilir.
Bu yüzden izleme sistemi başarısızlığı normal bir durum olarak ele almalı. Yeniden deneme, aralık genişletme, önceki başarılı çekimi koruma ve düşen tarama oranını görünür kılan bir sağlık paneli gerekir.
En kötü senaryo çökmek değildir. En kötü senaryo sessizce boş içerik toplayıp 'kampanya kaldırıldı' yanılgısı üretmektir. Boş içerik ile gerçekten kaldırılmış içeriği ayırt edemeyen bir sistem, yanlış alarmın kaynağı olur.
DOM gürültülüdür, asıl iş anlamlı değişimi ayıklamaktır
Bir kampanya sayfası her açılışta biraz farklı gelir. Oturum kimlikleri, zaman damgaları, geri sayım sayaçları, rastgele sıralanan öneriler ve reklam kimlikleri değişir. Ham metin karşılaştırması yaparsan neredeyse her taramada değişim raporlarsın.
İşe yarayan yaklaşım, karşılaştırmayı ham metinde değil çıkarılmış alanlarda yapmaktır. Sayfadan teklif tipi, oran, limit ve süre alanlarını çıkar, karşılaştırmayı bu alanlar üzerinde yap. Böylece görsel yenilemesi sinyal üretmez, oran değişikliği üretir.
Bu ayrımın ürün tarafındaki karşılığını ayrı bir yazıda anlattık: 'Sayfa değişti' neden yetmez?
Aynı adres herkese aynı sayfayı göstermez
Rakip siteleri sık sık A/B testi çalıştırır, coğrafyaya ve cihaza göre farklı vitrin gösterir. İki farklı sunucudan aynı adresi çektiğinde iki farklı kampanya görebilirsin. Bunu bilmeden karşılaştırma yaparsan var olmayan bir hamle raporlarsın.
Çözüm tarama koşullarını kaydetmektir: hangi bölgeden, hangi cihaz profiliyle, hangi dil ayarıyla çekildi. Koşul kaydedilmezse iki tespit karşılaştırılamaz.
Çıkarma katmanı dilden ve para biriminden bağımsız olmalı
Kampanya metinleri yerelleştirilmiştir. Aynı teklif bir pazarda bir kalıpla, diğerinde bambaşka bir cümleyle yazılır. Sayı biçimleri de değişir: binlik ayırıcı, ondalık işareti ve para birimi sembolü pazardan pazara farklıdır.
Yalnızca kalıp eşleştirmeyle kurulmuş bir çıkarma katmanı ilk pazarda çalışır, ikincisinde sessizce yanlış değer üretir. Yanlış değer boş değerden daha tehlikelidir çünkü sistem başarılı görünür.
Bu yüzden çıkarılan her alana bir güven derecesi iliştir ve düşük güvenli tespitleri ayrı bir kuyruğa al. Bu kuyruk elle gözden geçirildiğinde hem hata yakalanır hem de çıkarma kuralları zamanla düzelir.
Kanıt saklamak beklediğinden pahalıdır
Her tespitin zaman damgalı görüntüsünü saklamak istiyorsan depolama hızla büyür. Yüz rakip, günde birkaç tarama ve tam sayfa görüntüler birkaç ay içinde ciddi bir arşiv üretir.
Burada iki karar işe yarar. Birincisi, her taramayı değil yalnızca değişim tespit edilen taramayı arşivlemek. İkincisi, görüntüyü çıkarılmış alanlarla birlikte saklamak. Böylece arşivde arama yapmak için görselleri tek tek açman gerekmez.
Bir de saklama süresi kararı vardır. Sınırsız saklamak gerekmez. Çoğu ekip için son on iki ay tam çözünürlükte, öncesi yalnızca çıkarılmış alanlarla tutulabilir. Bu karar erken alınmazsa depolama maliyeti sessizce büyür.
Sıklık bir mühendislik kararı değil, ürün kararıdır
Her sayfayı saatlik taramak teknik olarak mümkündür ama çoğu zaman gereksizdir. Sıklığı sayfanın davranışına göre seç: kampanya vitrinleri sık, kurumsal sayfalar seyrek değişir. Değişim geçmişine bakıp sıklığı otomatik ayarlamak, sabit sıklıktan hem daha ucuz hem daha isabetlidir.
Sürecin ürün tarafındaki kurulumu için: Rakip kampanya takibi nasıl yapılır?
İzleme sistemi bir veri ürünüdür, betik değil
Bu maddelerin toplamı şunu söyler: rakip izleme bir betik değil, bakımı olan bir veri ürünüdür. Kaynak sayfalar habersiz değişir, çıkarma kuralları eskir, engeller sertleşir. Sahipsiz bırakılan bir izleme sistemi birkaç ay içinde sessizce yanlış veri üretmeye başlar.
Bu yüzden ilk günden itibaren iki şey kur: tarama başarı oranını gösteren bir panel ve çıkarılan alanların dağılımını gösteren basit bir kontrol. İkincisi, alan dağılımı ani değiştiğinde sayfa yapısının değiştiğini haber verir.
Adversee ile
Adversee bu katmanların tamamını hazır çalışır halde verir: karma çekim, hata toleransı, alan bazlı karşılaştırma ve zaman damgalı arşiv. Kendi tarayıcı filonu işletmek yerine sonucu kullanırsın.
Rakip hamlelerini otomatik izlemeye başla.