Дополнительные компоненты с максимальной производительностью

Цели конверсии

При создании кампании с максимальной эффективностью автоматически создается ряд целей конверсий , соответствующих значениям CustomerConversionGoal в аккаунте. Вы можете настроить их специально для каждой кампании с максимальной эффективностью, обновив их.

Для этого сначала вам нужно получить список всех целей конверсии клиентов.

const searchResults = AdsApp.search(
  `SELECT
     customer_conversion_goal.category,
     customer_conversion_goal.origin
   FROM customer_conversion_goal`
);

Затем вы можете просмотреть все полученные цели конверсий и создать операцию обновления для нашей текущей кампании с максимальной эффективностью, чтобы настроить таргетинг для каждой цели. Приведенный ниже код устанавливает для всех них возможность назначения ставок, но вам потребуется настроить эту часть логики так, чтобы она соответствовала тому, что вы хотите получить от своей кампании.

Прежде чем запускать этот код, вам необходимо получить идентификатор вашей кампании с максимальной эффективностью.

Мы рекомендуем настраивать цели конверсии в отдельной транзакции от остального процесса создания кампании. CampaignConversionGoalOperation требует, чтобы для partialFailure запроса было установлено значение false . Если вы хотите запустить этот код в той же транзакции, в которой вы впервые создаете кампанию, вам необходимо настроить для всего набора операций отключение частичного сбоя. В этом примере кода показано, как выполнить эту операцию в отдельной транзакции.

operations = [];
while (searchResults.hasNext()) {
  const row = searchResults.next();
  const conversionGoal = row.customerConversionGoal;

  operations.push({
    "campaignConversionGoalOperation": {
      "update": {
        "resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
        // Insert your logic here to determine whether you want this particular
        // campaign conversion goal to be biddable or not.
        // This code will just default everything to being biddable, but that
        // is not necessarily best for your use case.
        "biddable": true
      },
      "updateMask": "biddable"
    }
  });
}

AdsApp.mutateAll(operations, {partialFailure: false});

Таргетинг кампании

Для таргетинга кампании с максимальной эффективностью обязательно ознакомьтесь с полным списком допустимых типов критериев в руководстве по API .

Дополнительные критерии не требуются для создания кампании с максимальной эффективностью, но могут быть полезны для ограничения таргетинга в зависимости от вашего варианта использования. В приведенном ниже примере кода показано, как настроить целевое географическое местоположение. Вы можете обратиться к документации CampaignCriterion , чтобы узнать формат других типов критериев.

Вы можете создать эти критерии вместе с самой кампанией как часть одного и того же вызова mutateAll , и в этом примере кода предполагается, что именно так вы структурируете свой код.

operations.push({
  "campaignCriterionOperation": {
    "create": {
      "campaign": campaignOperation.campaignOperation.create.resourceName,
      "negative": false,
      "location": {
        // 1023191 represents New York City
        "geoTargetConstant": "geoTargetConstants/1023191"
      }
    }
  }
});

Сигналы группы активов

Прежде чем приступить к работе, прочтите о сигналах групп активов в документации API. Они настраиваются путем привязки группы активов к существующему критерию AudienceInfo или SearchThemeInfo . Если вы хотите вместо этого использовать аудиторию, укажите поле audience вместо поля searchTheme с именем ресурса аудитории.

operations.push({
  "assetGroupSignalOperation": {
    "create": {
      "assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
      "searchTheme": {
        "text": "mars cruise"
      }
    }
  }
});