Создать объявление и назначить объявление и место размещения - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть кампания в менеджере кампаний.В рамках кампании предусмотрено 1 место размещения и 1 объявление (как 160x600, так и активное)

. Я хочу создать объявление, назначить объявление, а затем назначить место размещения с помощью Google Apps Script в Google Sheets.

Я создал рекламный ресурс, используя ссылку на API в скрипте Google Apps.Я могу получить его, чтобы создать объявление, если оно установлено как «неактивное».Тем не менее, ни одно из назначений не выполнено.

Когда я пытаюсь создать Объявление с установленным значением "Активно", я получаю сообщение об ошибке:

"Вызов APIto dfareporting.ads.insert не удалось с ошибкой: 12032: объявление не может быть активным, если оно не назначено хотя бы одному месту размещения. "

Случайно я иногда получаю это также:

"Вызов API для dfareporting.ads.insert завершился ошибкой: 12058: По крайней мере одно активное объявление должно быть назначено для любого активного объявления. Кроме того, для объявления должно быть" Включить в ротацию ", установленное в"Да" в свойствах вашей рекламы. "

Код ниже:

funtion foo() { 
   var startTime = Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone(), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'');
  var endDate = new Date (new Date(startTime).getYear()+1, new Date(startTime).getMonth(), new Date(startTime).getDate());
  var endTime = Utilities.formatDate(new Date(endDate), ss.getSpreadsheetTimeZone(), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'');

      var adResource = {
        "kind": "dfareporting#ad",
        "active": "true",
        "archived": "false",
        "campaignId": "23237909",
        "name": "testApiAd",
        "creativeRotation": {
          "creativeAssignments": {
            "active": "true",
            "creativeId": "121312158",//.toString(),
            "clickThroughUrl": {
              "defaultLandingPage": "true",
              //"type": "CREATIVE_ROTATION_TYPE_RANDOM",
              //"weightCalculationStrategy": "WEIGHT_STRATEGY_EQUAL"
            }
          }
        },
        "deliverySchedule": {
          "impressionRatio": "1",
          "priority": "AD_PRIORITY_15",
          "hardCutoff": "false"
        },
        "endTime": endTime,
        "startTime": startTime,
        "type": "AD_SERVING_STANDARD_AD",
        "placementAssignments": {
          "active": "true",
          "placementId": "256185010",//.toString(),
          //"sslRequired": "true"
        }
      }

      var newAd = DoubleClickCampaigns.Ads.insert(adResource, profileID);
  return newAd;
}

Есть ли что-то, что я 'я не понимаю?Или полностью отсутствует?Согласно API Reference, он должен работать, но я не могу понять, почему это не так.

Любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 21 сентября 2019

Проблема

В объявлениях с флагом active, установленным на true, должен быть установлен хотя бы один placementAssignments.

Решение

Взгляните на type свойства placementAssignments (а также creativeAssignments) - это должен быть список (что означает, что значение должно бытьэкземпляр Array), в то время как вы определяете его как object.Просто создайте элементы размещения и креативные элементы из Array:

"placementAssignments": [{
  "active": "true",
  "placementId": "256185010",//.toString(),
  //"sslRequired": "true"
}]

"creativeRotation": {
  "creativeAssignments": [{
    "active": "true",
    "creativeId": "121312158",//.toString(),
    "clickThroughUrl": {
      "defaultLandingPage": "true",
      //"type": "CREATIVE_ROTATION_TYPE_RANDOM",
      //"weightCalculationStrategy": "WEIGHT_STRATEGY_EQUAL"
    }
  }]
 }

Ссылка

  1. ad ресурс обзор ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...