Google Ads hesaplarında günlük harcama, kampanyanın bütçesi kadar teklif stratejisinin, sezonsallığın ve izleme altyapısının da bir sonucudur. Tek bir hesapta birkaç kampanya yönetirken harcama sapmalarını gözle takip etmek mümkündür. Birden fazla hesap ve onlarca kampanya söz konusu olduğunda ise bir kampanyanın dün 500 TL, bugün 1.400 TL harcadığını fark etmek çoğu zaman günün sonunu, hatta ertesi sabahı bulur. Google Ads script ile kurulan bir harcama anomalisi kontrolü bu açığı kapatır. Bugüne kadarki harcamayı önceki günlerin ortalamasıyla karşılaştırır ve belirlenen eşiği aşan kampanyaları e-posta ile bildirir.

Bu rehberde bu tür bir scriptin hangi mantıkla çalıştığını, hangi parametrelerin nasıl ayarlanması gerektiğini, güncel sorgu dili olan GAQL’e nasıl uyarlanacağını ve alarm geldiğinde hangi sırayla teşhis yapılacağını ele alıyoruz.

Kampanya Harcama Anomalisi Nedir ve Neden Oluşur

Harcama anomalisi, bir kampanyanın günlük maliyetinin geçmiş davranışına göre istatistiksel olarak beklenmedik biçimde yükselmesi veya düşmesidir. Yükselişler bütçe kaybı riski, düşüşler ise kaçan trafik ve satış riski taşır. İkisi de izlenmesi gereken sinyallerdir. Ancak her sapma bir sorun değildir. Kampanya kampanya bazında bakıldığında bir kısmı planlı kampanya hareketlerinden, bir kısmı da gerçek arızalardan kaynaklanır.

Akıllı Teklif Stratejilerinin Etkisi

Hedef ROAS ve Hedef EBM (hedef CPA) gibi akıllı teklif stratejilerinde teklifleri sistem her açık artırma için ayrı hesaplar. Kampanya dönüşüm sinyali güçlendiğinde algoritma teklifleri hızla artırır ve harcama bir günde belirgin biçimde yükselebilir. Tersine, dönüşüm oranı düştüğünde teklifler kısılır ve harcama gerilir. Günlük bütçenin Google tarafından en fazla iki katına kadar aşılabilmesi de bu dalgalanmayı güçlendirir. Bu nedenle manuel teklif kullanan hesaplara kıyasla otomatik teklif kullanan hesaplarda harcama takibi daha sık yapılmalıdır. Aynı durum Performance Max kampanyası nasıl optimize edilir sorusunun merkezindeki varlık grubu ve sinyal değişikliklerinden sonra da geçerlidir.

Teknik ve Operasyonel Nedenler

Harcama sıçramalarının veya çöküşlerinin arkasında algoritma dışında da pek çok neden olabilir. En sık karşılaşılanlar şunlardır:

  • Bütçe, hedef değeri veya teklif stratejisinde yapılan manuel değişiklikler
  • Dönüşüm etiketinin bozulması veya mükerrer sayım, yani yanlış dönüşüm verisi nedeniyle teklif davranışının değişmesi
  • Reklam veya ürün reddi, ödeme sorunu ve hesap kısıtlamaları nedeniyle gösterimlerin aniden düşmesi
  • Kampanya, kupon dönemi veya bayram gibi sezonsal talep dalgaları
  • Rakiplerin teklif artırması ya da açık artırma dinamiklerinin değişmesi
  • Geniş eşleme veya konum hedeflemesi gibi kapsam ayarlarının istemeden genişlemesi

Harcama Uyarı Scripti Nasıl Çalışır

Bu tür bir script, hesaptaki aktif kampanyaları listeler, her kampanya için bugünkü maliyeti ve önceki belirli sayıda günün maliyetini çeker, ortalamaya göre yüzde farkı hesaplar ve eşiği aşanları tek bir e-postada toplar. Mantık basittir ama üç tasarım kararı sonucun güvenilirliğini belirler.

Aynı Saat Dilimiyle Karşılaştırma

En kritik nokta, bugünün henüz tamamlanmamış harcamasını önceki günlerin tam gün harcamasıyla kıyaslamamaktır. Saat 14:00’te çalışan bir script bugünün yarım günlük verisini dünün tam günlük verisiyle karşılaştırırsa her kampanya “düşüş” gösterir. Doğru yaklaşım, geçmiş günler için de yalnızca scriptin çalıştığı saate kadar olan saatlik harcamayı toplamaktır. Böylece bugünün 00:00-22:59 aralığı, önceki günlerin aynı aralığıyla kıyaslanır. Scriptin geç bir saatte, örneğin 23:00’te çalıştırılmasının nedeni de gün içinde yeterli verinin birikmesidir.

Eşik Değerleri ve Parametreler

Scriptin davranışı birkaç parametreyle belirlenir. Aşağıdaki tablo bu parametreleri ve makul başlangıç değerlerini özetler.

Parametre İşlevi Başlangıç önerisi
Yüzde sapma eşiği Ortalamadan kaç yüzde sapmada uyarı gönderileceğini belirler %40
Minimum ortalama harcama Düşük bütçeli kampanyaların gereksiz alarm üretmesini engeller Günlük ortalama bütçenin yaklaşık yarısı
Karşılaştırma süresi Ortalamanın kaç günlük veriden hesaplanacağını belirler 3 ile 7 gün
En erken çalışma saati Bugünkü verinin yeterince birikmesini sağlar 22:00 veya 23:00
Ad filtreleri İzlenecek veya dışarıda bırakılacak kampanyaları ad içeriğine göre seçer Gerektiğinde GDN, PLA, DSA gibi etiketler

Karşılaştırma süresini üç gün tutmak ani değişimleri yakalamayı kolaylaştırır. Ancak hafta içi ve hafta sonu davranışı farklı olan hesaplarda yedi günlük pencere daha dengeli sonuç verir, çünkü pazartesiyi cumartesiyle kıyaslayan bir script sürekli yanlış alarm üretir.

Kurulum Adımları

Kurulum Google Ads arayüzünde kod yazma bilgisi gerektirmeden yapılabilir. Hazır bir script şablonunu kullanıyorsanız izlemeniz gereken sıra şöyledir:

  • Google Ads hesabında Araçlar menüsünden Toplu işlemler ve ardından Komut dosyaları bölümüne girin ve yeni bir script oluşturun.
  • Konfigürasyon bölümündeki e-posta alıcılarını, kampanya adı filtrelerini, yüzde eşiğini, minimum harcama değerini ve karşılaştırma süresini kendi hesabınıza göre doldurun.
  • Konfigürasyon dışındaki fonksiyonlara dokunmayın. Doğrulama, tarih hesaplama ve raporlama bölümleri birbirine bağlıdır ve tek bir değişiklik tüm akışı bozabilir.
  • Scripti yetkilendirip önizleme modunda çalıştırın ve kayıt çıktısında kampanya sayısının beklediğiniz kadar olduğunu doğrulayın.
  • Zamanlamayı günlük olarak, hesabın saat diliminde 22:00 ile 23:00 arasına ayarlayın.

Test aşamasında eşiği geçici olarak çok düşürmek (örneğin %1) uyarı e-postasının biçimini ve alıcı listesini doğrulamak için işe yarar. Canlıya almadan önce eşiği mutlaka gerçek değerine döndürün.

Güncel Sorgu Diline Uyarlama

Eski script örneklerinin büyük bölümü AWQL sorgu dilini ve AdWordsApp nesnesini kullanır. Google Ads scriptleri artık GAQL (Google Ads Query Language) tabanlı çalışır ve rapor çekimi AdsApp.search yöntemiyle yapılır. Eski sorgu yapısını uyarlarken şu karşılıkları dikkate almak gerekir:

  • Kampanya kimliği ve adı için campaign.id ve campaign.name alanları kullanılır.
  • Maliyet, metrics.cost_micros alanından mikro birim olarak gelir. TL cinsine çevirmek için değeri 1.000.000’a bölmek gerekir.
  • Tarih ve saat kırılımı için segments.date ve segments.hour alanları kullanılır.
  • Durum filtresi campaign.status = ‘ENABLED’ biçiminde yazılır. Ad filtresi için LIKE ifadeleri kullanılabilir.

Mikro birim dönüşümünü atlamak, maliyetlerin milyon kat büyük görünmesine ve her kampanyanın alarm vermesine yol açan klasik bir hatadır. Eşik karşılaştırmasında yüzde fark hesabı birim bağımsız olduğundan sorun yalnızca minimum harcama filtresinde ve e-posta içindeki tutarlarda ortaya çıkar. Yine de dönüşümü doğrulamak, ilk çalıştırmada en çok zaman kazandıran kontroldür.

Yanlış Alarmları Azaltmanın Yolları

Çok sık ve çoğu gereksiz gelen uyarılar kısa sürede okunmaz hale gelir. Alarm kalitesini yüksek tutmak için birkaç ayar yapılabilir. Minimum ortalama harcama filtresi, günde birkaç lira harcayan kampanyaların yüzde olarak büyük görünen küçük sapmalarını eler. Kampanya adı filtreleri ise marka, genel ağ veya yeniden pazarlama gibi doğal olarak oynak seyreden kampanyaları ayrı bir eşikle izlemenize olanak tanır. Hesapta iki farklı script kopyası çalıştırıp birine %30, diğerine %60 eşik vermek de pratik bir yöntemdir.

Planlı değişiklikleri de hesaba katmak gerekir. Bütçeyi bilinçli olarak iki katına çıkardığınız günün alarmını beklemek doğaldır. Bu tür günleri bir değişiklik günlüğünde not etmek, alarmların kaynağını sonradan ayırmayı kolaylaştırır. Çalışma deneyimi, harcama yükselişleri ile düşüşlerini ayrı sınıflandırmanın da faydalı olduğunu gösteriyor. Yükselişler çoğu zaman bütçe riski, düşüşler ise erişim veya reddedilme sorunu anlamına gelir ve aksiyon sahipleri farklı olabilir.

Uyarı Geldikten Sonra İzlenecek Teşhis Sırası

E-posta yalnızca “bir şey değişti” bilgisini verir. Nedenini bulmak için kampanya düzeyinde sistematik bir inceleme gerekir. Önerilen sıra, en yaygın ve en kolay doğrulanan nedenlerden başlar.

İlk olarak değişiklik geçmişine bakılır. Son 48 saatte bütçe, teklif stratejisi, hedefleme veya reklam grubu düzeyinde bir işlem yapılmışsa sapmanın büyük olasılıkla kaynağı odur. İkinci olarak dönüşüm verisi incelenir. Harcama artarken dönüşüm sayısı da artıyorsa durum çoğu zaman olumludur, harcama artıp dönüşüm sabit kalıyorsa ya da dönüşüm takibi bozulmuşsa algoritma yanlış sinyalle beslenmiş demektir. Üçüncü adım, kampanyanın saatlik ve cihaz kırılımına bakmaktır. Harcamanın belirli bir saat diliminde yığılması, bir arama terimi veya yerleşim kaynaklı sıçramayı gösterir. Dördüncü adımda arama terimleri raporu ve yerleşim raporu kontrol edilir. Kontrolsüz geniş eşleme veya alakasız yerleşimler bütçeyi hızla tüketebilir. Bu aşamada Google Ads uzmanı bakışıyla arama niyetini ve negatif kelime listesini yeniden gözden geçirmek gerekir.

Son olarak sapma gerçek bir performans iyileşmesinin veya bozulmasının işaretiyse, ayar değişikliği yapmadan önce kontrollü test kurgulamak daha sağlıklıdır. Bu noktada A/B testi disiplini, değişikliğin etkisini mevsimsellikten ayırmanıza yardımcı olur. Dönüşüm hunisindeki iyileştirmelerin harcama verimliliğine etkisini anlamak için dönüşüm oranı optimizasyonu çalışmaları da teşhisin tamamlayıcısıdır.

Harcama İzlemede Sık Yapılan Hatalar

Uygulamada en sık karşılaşılan hatalar şunlardır. Birincisi, scripti gün içinde erken bir saatte çalıştırıp yarım günlük veriyle karar vermektir. İkincisi, tüm kampanya türlerine aynı eşiği uygulamaktır. Arama kampanyalarında %40 anlamlıyken görüntülü reklam kampanyalarında bu eşik sürekli tetiklenebilir. Üçüncüsü, yalnızca harcama artışına odaklanıp düşüşleri görmezden gelmektir. Oysa ödeme sorunu veya reklam reddi gibi nedenler harcamayı sıfıra yaklaştırabilir ve kaybedilen her saat doğrudan gelir kaybıdır. Dördüncüsü, e-posta uyarılarını tek bir kişiye bağlamaktır. İzin günlerinde alarm gözden kaçar. Alıcı listesine hesabı bilen en az iki kişinin eklenmesi daha güvenlidir.

Bir diğer hata da scriptin kota ve süre sınırlarını yok saymaktır. Çok sayıda kampanyası olan hesaplarda sorgu çalışma süresi uzar, e-posta gönderim kotası da günlük bir sınıra tabidir. Alarm sayısı çok yüksekse mesajları kampanya başına değil, tek bir özet e-postada toplamak hem kotayı korur hem de okunabilirliği artırır. Hesabınızın ölçeğine göre profesyonel bir Google Ads danışmanı ile eşik ve sınıflandırma mantığını birlikte kurgulamak, ilk kurulumun doğruluğunu artırır.

Anomali İzlemeyi Sürdürülebilir Kılmak

Harcama anomalisi scripti tek başına bir optimizasyon aracı değil, bir erken uyarı katmanıdır. Değerini, hesabın normal davranışını tanıyan, eşikleri düzenli gözden geçiren ve alarmları değişiklik günlüğüyle eşleştiren bir yönetim rutininin içinde gösterir. Eşikleri üç ayda bir gözden geçirmek, kampanya yapısı değiştiğinde ad filtrelerini güncellemek ve her alarmın sonucunu kısa bir notla kaydetmek, zamanla hangi sapmaların gerçek risk, hangilerinin olağan dalgalanma olduğunu netleştirir. Bu yaklaşım, bütçenin kontrolsüz tüketilmesini engellerken algoritmanın öğrenme sürecine de gereksiz müdahaleyi önler ve harcama verisini tahmin edilebilir bir yönetim göstergesine dönüştürür.