Скрипт Merchant Google Ads – збільшити частоту оновлення фіда покупок

  • By Yurii
  • 01 Jan, 0001
Скрипт Merchant Google Ads – збільшити частоту оновлення фіда покупок

Привіт, чи змінюються ціни на ваші товари більше одного разу на день? Або продукти легко закінчуються протягом дня?

Якщо так, то погані новини: ви втрачаєте гроші щодня!

Інтерфейс Google Merchant Center підтримує лише один раз на день оновлення даних про продукт у вашому каналі покупок.

Max feed apdate frequency

Через це обмеження швидкості отримання ваші торгові кампанії можуть відображати застарілі оголошення зі списком продуктів у пошуковій системі Google.

Що ще гірше, ваш ідеальний клієнт може натиснути на ваш продукт, потрапити на ваш веб-сайт, лише щоб виявити, що ціна не така, як рекламується, а потім ПИЙТИ, НЕ КУПИВШИ!

Ось мій сценарій для автоматичного оновлення даних у ваших торгових оголошеннях щогодини.

(Не хвилюйтеся, якщо ви ніколи раніше не запускали сценарій. Вам не потрібні навички програмування. Це так само просто, як скопіювати та вставити.)

ІНСТРУКЦІЇ:

  1. Перегляньте код сценарію нижче. Встановіть скрипт у свій обліковий запис.
  2. Не хвилюйтеся, якщо ви ніколи раніше цього не робили. Вам не потрібні навички кодування. Це так само просто, як скопіювати та вставити. Просто дотримуйтеся цих інструкцій щодо налаштування та планування сценаріїв Google Ads .
  3. Створіть нову таблицю Google (порада для користувачів Chrome: просто введіть «sheets.new» в адресному рядку)
  4. Додайте свій ідентифікатор Google Merchant Center (рядок 17)
  5. Додайте повну URL-адресу електронної таблиці до сценарію (рядок 19)
  6. Увімкніть Shopping API: перейдіть у верхній правий кут сценарію, там є кнопка «Розширені API». Натисніть цю кнопку та ввімкніть Shopping Content API.
  • Попередній перегляд
  • Розклад щогодини

Власне код скрипта для Google ads

/**
*
* Fetch Google Shopping Feeds Every Hour of the day
**
* @author: Nils Rooijmans
*
* Інструкція:
* Додайте ваш Google Merchant Center ID (Рядок 17)
* Створіть нову таблицю в Гугл документах (порада для користувачів Chrome: просто введіть «sheets.new» в адресному рядку)
* Зкопіюйте посилання на новостворену пусту таблицю і додайте в скрипт (Рядок 19)
* Увімкніть Shopping API: перейдіть у верхній правий кут сценарію, там є кнопка «Розширені API». Натисніть цю кнопку та ввімкніть Shopping Content API
* Schedule script to run hourly
*
* Contact nils@nilsrooijmans.com for questions and the MCC version of the script 
*/
 
var MERCHANT_ID = 12345678; // replace '12345678' with your Google Merchant Center ID
 
var SPREADSHEET_URL = ""; // insert spreadsheet url 
 
function main() {
 
  Logger.log("Fetching enabled feeds for GMC id: "+MERCHANT_ID)
  var fetchedFeeds = fetchEnabledProductFeeds(MERCHANT_ID);
   
  if (fetchedFeeds.length > 0) {
    reportResults(fetchedFeeds);
  } else {
    Logger.log("### zero feeds fetched");
  }
}
 
 
function reportResults(fetchedFeeds) {
 
  //prepare the Spreadsheet
  var ss = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var sheet = ss.getActiveSheet();
  sheet.clear();
   
  var header = [
    "Date, Time",
    "Merchant Id",
    "Feed Name", 
    "Feed ID", 
    "Status"
  ];
   
  if (sheet.getRange('A1').isBlank()) {
    sheet.appendRow(header); 
    Logger.log("Added header to sheet");
  }
 
  var lastRow = sheet.getLastRow();
 
  // write status to sheet
  var range = sheet.getRange(lastRow+1, 1, fetchedFeeds.length, header.length);
  range.setValues(fetchedFeeds);
  Logger.log("Added results to sheet : "+SPREADSHEET_URL)
}
 
 
function fetchEnabledProductFeeds(merchantId) {
   
  var fetchedFeeds = [];
   
  var date = new Date();
  var now = Utilities.formatDate(date, AdsApp.currentAccount().getTimeZone(), "yyyy MMM dd HH:mm");
  Logger.log("The current time (timezone of the account) is: "+ now);
   
  try {
    var productFeeds = ShoppingContent.Datafeeds.list(merchantId);
  } catch(e) {
    Logger.log("### ERROR Fecthing data from merchant: '"+merchantId+"' --> "+e);
    fetchedFeeds.push([now, merchantId, , , "### ERROR Fecthing datafeed: "+e]);    
    return fetchedFeeds;
  }
   
  if (productFeeds.resources) {
    Logger.log("Number of feeds in the account: "+productFeeds.resources.length);
    for (var i = 0; i < productFeeds.resources.length; i++) {
       
      if(productFeeds.resources[i].fetchSchedule && productFeeds.resources[i].fetchSchedule.paused==false) {
        try {
          var dataFeedId = productFeeds.resources[i].id;          
          var response = ShoppingContent.Datafeeds.fetchnow(merchantId, dataFeedId);
          //Logger.log ("Response: "+response);
          Logger.log("Fetched productfeed: '"+productFeeds.resources[i].name+"' with id: '"+dataFeedId+"'");
          fetchedFeeds.push([now, merchantId, productFeeds.resources[i].name, dataFeedId, "Fetch OK"]);
        } catch(e) {
          Logger.log("### ERROR Fecthing datafeed: '"+productFeeds.resources[i].name+"' with id: '"+dataFeedId+"' with fetchUrl: '"+productFeeds.resources[i].fetchSchedule.fetchUrl+"' --> "+e);
          fetchedFeeds.push([now, merchantId, productFeeds.resources[i].name, dataFeedId, "### ERROR Fecthing datafeed: "+e]);
        }
      }
    }
  } else {
    Logger.log("### UNKOWN ERROR Fecthing data from merchant: '"+merchantId+"'"); 
  }
  return fetchedFeeds;
}

Можливо шостий пункт інструкції потребує додаткового пояснення. Потрібно викликати діалогове вікно і відмітити галочкою пункт Shopping Content після чого зберегти.

Max feed apdate frequency

Якщо ви вже маєте досвід запуску скриптів, то тут вичерпна інструкція.

За знання дякуємо Nils Rooijmans.

Пакети просування бізнесу

Пакети просування бізнесу

Виберіть послугу, з якої ми почнемо комплексне просування вашого бізнесу

Всі послуги
Пакети просування бізнесу