-- Google

Google adwords scripts ile reklamlarınızı hareketlendirin!

Daha önce Adwords Script Nedir, Nasıl Kullanılır? yazımda Adwords Scripti tanıtmıştım. Bugün ise adwords script ile reklamlarınızda nasıl bir etkileşim yapacağınızı bir örnekle anlatacağım.

Nasıl ?



Adwords e giriş yaptıktan sonra orta kısımda “Automate” seçeneğini görebilirsiniz, “bulamadım, bende yok” demeyin ilk başlarda gözden kaçıyor ama o buton orada var:) Alternatif olarak sol taraftaki menüde Automate kısmından da ulaşabilirsiniz. Bu butona tıkladıktan sonra Create and manage scripts seçeneğini tıklayın ve scriptslerin olduğu alana ulaşın. Ben daha önceden bir script yaptığım için (Active Ads by Weather) bende 1 satır fazla var siz direkt olarak yeşil renkte olan +Create Scripts butonuna basın ve kod ekranını açın.

Şimdi hava durumunu öncelikle hava durumunu almamız için api key formunu doldurmamız gerekiyor buraya tıklayın ve adresteki formu doldurun. Your Api Key : xxxx şeklinde bir mesaj çıkacak buradaki api key numaranızı bir yere not edin. Şimdi şöyle bir kurgumuz olsun 2 tane ad yaratın biri genel metinlerle diğer 2 tanesi bölgeye özgü metinler olsun. Yani genel olarak mesela “Kışlık Mont ve Kabanlar” olsun. Yağmur yağdığındaki metin ise; “İstanbulda yağmur başladı, mont alma zamanı” olsun.  Genel metinler aktif, yağmur metinleri pause durumda kalsın. Yağmur yağdığı anda normal metinleri durdurup, yağmurlu metinleri yayına alacağız ve kelime bidlerini %25 arttıracağız. Yağmur durunca tam tersine alacağız.

Dönelim adwords script kod ekranına;

var WEATHER_UNDERGROUND_API_KEY = "API KEYINIZ";
var campaignName='KAMPANYA ADI'; // buraya kampanya adınızı yazın.
var campaign = AdWordsApp.campaigns().withCondition("Name='"+ campaignName+ "'").get().next();  // daha önce değiştirip değiştirmediğimizi anlamak için normal bir reklamı tanımlıyoruz.
var flagAd = campaign.ads().withCondition("Headline='Kışlık Mont ve Kabanlar'").get().next().isEnabled();  

function main() {
  var PausedAds = campaign.ads().withCondition("Status = PAUSED").get(); // tum pause haldeki reklamlar
  var EnabledAds = campaign.ads().withCondition("Status = ENABLED").get(); // tum aktif haldeki reklamlar
  var keywords = campaign.keywords().get(); // tum kelimeler
  var bidRate = 0.0;
  var isRainly=false;try {
  var locationName='istanbul'; // istanbulu kontrol edeceğiz
  var weather = getWeather(locationName);
if (weather.icon=='rain') {
  Logger.log('Rain started!');
  bidRate=1.25; // yagmur başladı bidleri %25 arttır
  isRainly=true;
}
else {
  Logger.log('No Rain!');
  bidRate=0.8; // yagmur yoksa bidi %20 düşür
  isRainly=false;
}
} catch (error) {
  Logger.log(format('Error getting weather for {0}: {1}', locationName, error));
}

// yagmur başlamışsa ve normal ad yayında ise;
// veya yagmur yoksa ve normal ad yayında değilse;
if ( (isRainly == true && flagAd == true) || (isRainly == false && flagAd == false) ) {
//set bids
while(keywords.hasNext()) {
  var keyword = keywords.next();
  keyword.setMaxCpc(keyword.getMaxCpc() * bidRate);
}// keyword bidlerini arttır.
while(PausedAds.hasNext()) {
  var pausedAd = PausedAds.next();
  pausedAd.enable();
}//pause metinleri aktif et
while(EnabledAds.hasNext()) {
  var EnabledAd = EnabledAds.next();
  EnabledAd.pause();
} // aktif metinleri pause et
} // end if israinly
else {
  Logger.log('isRainly:'+isRainly+' flagAd:'+flagAd);
}
}

// hava durumu bilgisini al
function getWeather(location) {
  var url = format('http://api.wunderground.com/api/{0}/conditions/q/{1}.json',
  encodeURIComponent(WEATHER_UNDERGROUND_API_KEY),
  encodeURIComponent(location));
  var response = UrlFetchApp.fetch(url);
if (response.getResponseCode() != 200) {
  throw format('Error returned by API: {1}', response.getContentText());
}
  var result = JSON.parse(response.getContentText());
if (!result['current_observation']) {
  throw format('Invalid location: {0}', location);
}
 return result['current_observation'];
}  

// format fonskiyonu loglar için
function format(str, var_args) {
  for (var i = 0; i < arguments.length - 1; i++) {
  var reg = new RegExp('\\{' + i + '\\}', 'gm');
  str = str.replace(reg, arguments[i + 1]);
}
  return str;
}

kodlarını yazalım ve Save butonuna basarak kaydedelim. Preview tuşuna basarak yapacağı etkiyi test edebiliriz. Bu sadece test eder ekrana gelen değişiklikleri uygulamaz. Şimdi save dedikten sonra, script dosyamızın hizasında “Run” butonu yanında “Change schedule” yazısını tıklayalım ve gelen ekranda “Hourly” (saatlik) kısmını seçelim. Bu kısımda  bir email adresi verebilirsiniz herhangi bir hata olduğunda size bildirmesi için. Zamanlamayıda halletikten sonra “Save” butonuna tıklayarak scripti kaydedin.

Tebrikler! Her şey yolunda giderse artık saatte bir kontrol edecek ve yağmur başladığında adler yer değiştirecektir.

Yorumla

Yorum

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.