Troubleshooting adCenter API error: Setting Editorial Status is not allowed.


Developers working with our API sometimes run into errors when executing Update operations in which they try to update an entity’s status.
During operations like UpdateCampaigns(), UpdateAdGroups(), UpdateKeywords(), etc, the status of adCenter objects cannot be modified. In addition, editorial status cannot be modified by the user, and is determined and set only by the system.
As a result, a request containing the code below will fail:
 
  <s:Body>
    <UpdateKeywordsRequest xmlns=”https://adcenter.microsoft.com/v6“>
      <AdGroupId>******</AdGroupId>
      <Keywords xmlns:i=”http://www.w3.org/2001/XMLSchema-instance”>
        <Keyword>
          <EditorialStatus>Active</EditorialStatus>
          <Id>******</Id>
          <Param1>test</Param1>
          <Status>Paused</Status>
        </Keyword>
      </Keywords>
    </UpdateKeywordsRequest>
  </s:Body>
 
You can get two possible errors in those cases:
 
<Message>Status cannot be changed on Update; instead, use Pause or Resume APIs.</Message>
or
<Message>Setting Editorial Status is not allowed.</Message>
 
To avoid this error, make sure you set the Status and EditorialStatus of your entities to null when executing Update operations, as in the sample below:
 
<s:Body>
<UpdateKeywordsRequest xmlns=”https://adcenter.microsoft.com/v6“>
<AdGroupId>******</AdGroupId>
<Keywords xmlns:i=”http://www.w3.org/2001/XMLSchema-instance”>
<Keyword>
<EditorialStatus i:nil=”true” />
<Id>******</Id>
<Param1>test</Param1>
<Status i:nil=”true” />
</Keyword>
</Keywords>
</UpdateKeywordsRequest>
</s:Body>
 
If you want to update an entity’s status, you should use operations like PauseCampaigns(), UpdateCampaigns(), PauseAdGroups(), etc.
Comments (3)

  1. Cnorred says:

    i have a question that is somewhat related.  is there a way to force ads into a Disapproved state on the sandbox environment?  I'm trying to call GetAdsByEditorialStatus using AdEditorialStatus.Disapproved, but i never have ads in Disapproved status on sandbox.  The two ways i could think of to get disapproved ads don't work:

    1.  calling the API to update editorialStatus. (your post confirms this is not allowed)
    2.  editing the Ad in adCenter to force a disapproval.  i tried adding some bad words to it, and it just threw it into Inactive – Pending Review…but it stays there indefinitely.

    thanks!

    Brent

  2. Cnorred says:

    i have a related question…Is there any way to get an Ad or a Keyword into the Disapproved status on Sandbox?  i'd like to test the GetAdsByEditorialStatus call to get Disapproved Ads, but i can't seem to get any Ads into that state.  Your post makes it clear that we can't do that via the API.  is there any way to force it into that state manually?

    thanks

    Brent

  3. Cnorred says:

    "If you want to update an entity's status, you should use operations like PauseCampaigns(), UpdateCampaigns(), PauseAdGroups(), etc."

    i believe this statement is not correct – Campaign data obj in UpdateCampaigns also has 'read only' Status field. so UpdateCampaigns will NOT change campaign status.

    should use , PauseAdGroups, PauseAds, PauseKeywords to make items inactive; then use ResumeXXXs to make them active.

Skip to main content