---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.1
alternate:
  - https://yandex.com/dev/direct/doc/en/ads/moderate.md
  - https://yandex.com/dev/direct/doc/ru/ads/moderate.md
  - href: https://yandex.com/dev/direct/doc/en/ads/moderate.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.com/dev/direct/doc/en/llms.txt?revision=r22022696
    rel: describedby
sourcePath: en/ref-v5/ads/moderate.md
title: moderate
description: Submits ads for review — restrictions, request and response structure, ad selection criteria
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/direct/doc/en/llms.txt?revision=r22022696


# moderate

Submits ads for review.

### Learn more {#see-also}

- [How methods that change data work](https://yandex.com/dev/direct/doc/en/best-practice/modify)
- [How to handle errors](https://yandex.com/dev/direct/doc/en/concepts/errors)


## Restrictions {#restrictions}

A maximum of 10,000 ads per method call.

Only ads with the DRAFT status can be submitted for review.

Ads can't be submitted for review if the ad group doesn't have any targeting criteria (keywords, audience targets, or dynamic text ad targets). Ads can't be submitted for review if they belong to an archived campaign.


## Request {#input}

Request structure in JSON format:

```javascript translate=no
{
  "method": "moderate",
  "params": {  /* params */
    "SelectionCriteria": {  /* IdsCriteria */
      "Ids": [(long), ... ] /* required */
    } /* required */
  }
}
```

#|
|| **Parameter** | **Type** | **Description** | **Required** ||

|| **params structure (for JSON) / ModerateRequest structure (for SOAP)** | > | > | > ||

|| `SelectionCriteria` | IdsCriteria | Criteria for selecting ads to submit for review.  | Yes ||

|| **IdsCriteria structure** | > | > | > ||

|| `Ids` | array of long | IDs of ads to submit for review (no more than 10,000).  | Yes ||
|# 


## Response {#output}

Response structure in JSON format:

```javascript translate=no
{
  "result": { /* result */
    "ModerateResults": [{  /* ActionResult */
      "Id": (long),
      "Warnings": [{  /* ExceptionNotification */
        "Code": (int), /* required */
        "Message": (string), /* required */
        "Details": (string)
       }, ...
      ],
      "Errors": [{  /* ExceptionNotification */
        "Code": (int), /* required */
        "Message": (string), /* required */
        "Details": (string)
       }, ...
      ]
    }, ... ] /* required */
  }
}
```

#|
|| **Parameter** | **Type** | **Description** ||

|| **result structure (for JSON) / ModerateResponse structure (for SOAP)** | > | > ||

|| `ModerateResults` | array of ActionResult | Results of submitting for review.  ||

|| **ActionResult structure** | > | > ||

|| `Id` | long | The ad ID. Returned if there aren't any errors. See the section [Operations on object arrays](https://yandex.com/dev/direct/doc/en/best-practice/modify).  ||

|| `Warnings` | array of ExceptionNotification | Warnings that occurred during the operation.  ||

|| `Errors` | array of ExceptionNotification | Errors that occurred during the operation.  ||
|# 

