0

私はこれを数時間研究していますが、まだ解決策を見つけられません。Adwords APIキャンペーンレベルでContent_labelを除外

私はキャンペーンレベルでいくつかのcontent_labelsを除外したいと考えています。 最初はAPIの例を踏襲しましたが、アカウントレベルの設定である 'CustomerNegativeCriteria'(これらはAdWordsのインターフェースでこれらのグローバル設定が見つかりませんでした)のものです。

その後、私はより多くのを読んで、CampaignCriterion

を使用してそれらを除外しようとしたので、私はこのように私のコンテンツラベルオブジェクトを作成します:

$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

問題ここにあっNegativeCampaignCriterionと呼ばれるオブジェクトの別のタイプがあり、それはContentLabel年代を排除する権利オブジェクトであると、私はCampaignCriterionオブジェクトを作成していたし、それが問題だった、明示的にどこにも述べられていないが、と直感的ではないということでした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; 
} 
関連する問題