Adwords API Исключить Content_label на уровне кампании

Я исследовал это в течение нескольких часов и до сих пор не могу найти решение.

Я намерен исключить некоторые content_labels на уровне кампании.
Сначала я следовал примерам API, но это для CustomerNegativeCriteria, которые являются настройками уровня аккаунта (sidenote, я не смог найти эти глобальные настройки в интерфейсе AdWords).

Затем я прочитал больше и попытался исключить их, используя CampaignCriterion

Поэтому я буду создавать свои объекты ContentLabel следующим образом:

$criterion = new ContentLabel();
$criterion->setContentLabelType($sLabelType);
$criterion->setType(CriterionType::CONTENT_LABEL);

Затем я добавлю этот модификатор к объекту CampaignCriterion:

foreach ($aModifiers as $modifier) {
$campaignCriterion = new CampaignCriterion($sCampaignId, $isNegative, $modifier, $bidModifier);
$operation = new CampaignCriterionOperation();
$operation->setOperand($campaignCriterion);
$operation->setOperator($operator);
$operations[] = $operation;
}

И тогда я передам эти операции в CampaignCriterionService

$oCampaignCriterionService = $this->getCampaignCriterionService();
return $oCampaignCriterionService->mutate($operations);

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

Message: [
CriterionError.CANNOT_TARGET_CRITERION @ operations[0].operand.criterion.contentLabelType; trigger:'DP',
CriterionError.CANNOT_TARGET_CRITERION @ operations[1].operand.criterion.contentLabelType; trigger:'ADULTISH',
CriterionError.CANNOT_TARGET_CRITERION @ operations[2].operand.criterion.contentLabelType; trigger:'JACKASS',
CriterionError.CANNOT_TARGET_CRITERION @ operations[3].operand.criterion.contentLabelType; trigger:'PROFANITY',
CriterionError.CANNOT_TARGET_CRITERION @ operations[4].operand.criterion.contentLabelType; trigger:'TRAGEDY',
CriterionError.CANNOT_TARGET_CRITERION @ operations[5].operand.criterion.contentLabelType; trigger:'VIDEO_RATING_DV_MA'
]

Отсюда я слежу за древовидной структурой, но безрезультатно:
https://developers.google.com/adwords/api/docs/reference/v201710/CampaignCriterionService.ContentLabel?hl=th

Есть идеи, что я могу делать не так?

0

Решение

Проблема была в том, что я создавал CampaignCriterion объекты, и это была проблема, хотя нигде не указано явно, и не интуитивно, есть другой тип объекта, называемый NegativeCampaignCriterion и это правильный объект, чтобы исключить ContentLabelи Placement«s

foreach ($aModifiers as $modifier) {
if ($isNegative) {
$campaignCriterion = new NegativeCampaignCriterion($sCampaignId, $isNegative, $modifier, $bidModifier);
} else {
$campaignCriterion = new CampaignCriterion($sCampaignId, $isNegative, $modifier, $bidModifier);
}
$operation = new CampaignCriterionOperation();
$operation->setOperand($campaignCriterion);
$operation->setOperator($operator);
$operations[] = $operation;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector