ポリシー適用免除のリクエスト

適用免除をリクエストすると、ポリシー違反の原因となるキーワードや広告に対する審査リクエストを自動的に送信できます。

たとえば、この機能は次のような状況で利用できます。

  • 広告に一般的ではない句読点が含まれているが、業界では標準的な用法である場合。
  • 広告グループのキーワードに医療用語が含まれているが、広告主様(とユーザー)がその用語の用法が AdWords のポリシーに準拠していて、詳しい審査が必要であると確信している場合。

このような状況で、広告またはキーワードを作成しようとすると、1 回目は失敗して PolicyViolationError が発生します。

広告とキーワードの exemptionRequests コレクションを指定している場合は、広告とキーワードが自動的に送信され、審査されます。審査の結果、承認された場合は、ADD オペレーションを使った広告またはキーワードの再送信が正常に行われます。

重要: 適用免除のリクエストを追加して PolicyViolationError が発生した場合に、広告やキーワードを機械的に再送信しないでください。該当の広告やキーワードが広告掲載のポリシーに準拠していて、詳しい審査が必要であると確信している場合にのみ再送信してください。広告やキーワードが繰り返し広告掲載のポリシーに違反し、不承認になると、AdWords アカウントが強制停止される場合があります。

以下では、適用免除のリクエストを送信するために必要な手順について説明します。

失敗した各オペレーションのポリシー違反エラーを確認する

1 つの AdGroupAdService.mutate() 呼び出しで、次の 3 つの広告を作成するとします。

  • 広告 A と広告 B の見出しには、同じ医療用語が含まれている
  • また、広告 B の見出しには、標準的ではない句読点が含まれている
  • 広告 C には、標準的ではない文法の広告文が含まれている、または対象のサイトのコンテンツと関係がない

3 つの AdGroupAdOperation を含むサービス呼び出しを送信すると、リクエストが失敗して、次のエラーが発生します。

エラー PolicyViolationError.fieldPath PolicyViolationError.isExemptable PolicyViolationKey.policyName
PolicyViolationError 0 (Ad A) true pharma
PolicyViolationError 1 (Ad B) true pharma
PolicyViolationError 1 (Ad B) true nonstandard_punctuation
PolicyViolationError 2 (Ad C) false unclear_or_inaccurate_ad_text

適用免除可能なポリシー違反の場合はオペレーションを維持する

オペレーション 0 とオペレーション 1 のエラーは適用免除可能なため、適用免除のリクエストを追加して再送信できます。ただし、オペレーション 2 のエラーは適用免除可能ではないため、再送信しても何も起こりません。

適用免除のリクエストを追加してオペレーションを更新する

再送信するオペレーションには、それぞれ 1 つ以上の ExemptionRequest をオペレーションの ExemptionRequests コレクションに含める必要があります。ExemptionRequest には、属性 PolicyViolationKey が 1 つだけ含まれ、次の内容で構成されます。

  • ポリシー名を特定する文字列
  • 違反テキストを特定する文字列

発生する各 PolicyViolationError には、この情報が含まれています。次の Java コード スニペットで示すとおり、各 PolicyViolationErrorkey 属性は、対応する ExemptionRequestkey 属性に使用できます。

// Uses a regular expression to find the operation index in the field path.
int operationIndex = Integer.parseInt(matcher.group(1));
AdGroupAdOperation operation = operations.get(operationIndex);
if (policyViolationError.getIsExemptable()) {
  // Adds exemption request to the operation.
  List exemptionRequests;
  if (operation.getExemptionRequests() == null) {
    exemptionRequests = new ArrayList();
  } else {
    exemptionRequests = new ArrayList(
        Arrays.asList(operation.getExemptionRequests()));
  }
  // Uses the key from the PolicyViolationError to construct the ExemptionRequest.
  ExemptionRequest exemptionRequest =
    new ExemptionRequest(policyViolationError.getKey());
  // Adds the ExemptionRequest to the operation's collection of requests.
  exemptionRequests.add(exemptionRequest);
  operation.setExemptionRequests(
      exemptionRequests.toArray(new ExemptionRequest[exemptionRequests.size()]));
} else {
  // Removes the operation with a non-exemptible error from the list of operations
  // to resubmit.
  operations.remove(operationIndex);
}

変更したオペレーションを再送信する

この例の場合、この時点で次のような AdGroupAdOperation を使用します。

  • 適用免除のリクエストが 1 つ追加された広告 A の AdGroupAdOperation。リクエストのポリシー名は "pharma"、違反テキストは 1 つ目の PolicyViolationError から取得。
  • 適用免除のリクエストが 2 つ追加された広告 B の AdGroupAdOperation。1 つ目のリクエストのポリシー名は "pharma"、違反テキストは 2 つ目の PolicyViolationError から取得。2 つ目のリクエストのポリシー名は "nonstandard_punctuation"、違反テキストは 3 つ目の PolicyViolationError から取得。

広告 C の AdGroupAdOperation は、PolicyViolationError が適用免除可能ではないため、破棄されます。

このように適切に準備を整えると、広告 A と広告 B の変更した AdGroupAdOperation を送信できます。このオペレーションは正常に行われ、新しい 2 つの広告が審査待ちになります。

各広告またはキーワードの承認状況を確認する

その他の新しい広告と同様に、AdGroupCreativeApprovalStatus フィールドを含む AdGroupAdService.get() または AdGroupAdService.query() リクエストを定期的に送信して、最終的に広告が承認されたかどうかを確認できます。

コードサンプル

各クライアント ライブラリには、ポリシー違反に関連する 2 つのコードサンプルが含まれます。

  • ポリシー違反エラーの処理 - この例では、適用免除可能なポリシー違反が原因で失敗した AdGroupAdOperations を特定して再送信する方法を示しています。
  • テキスト広告の検証 - この例では、API 呼び出しの仕組みで説明されている validateOnly SOAP ヘッダーを使って、検証のために広告を送信する方法を示しています。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。