Error Codes and Responses

Gemini API responses contain 2 parts: “errors” and “response”. For example, when a campaign is successfully updated:

PUT https://api.gemini.yahoo.com/v3/rest/campaign/

{
  "id": 333204023,
  "status": "ACTIVE"
}

The response will be:

{
  "errors": null,
  "timestamp": "2015-10-27 0:08:56",
  "response": {
      "createdDate": 1397664072139,
      "status": "ACTIVE",
      "budget": 10,
      "budgetType": "LIFETIME",
      "id": 333204023,
      "isPartnerNetwork": "TRUE",
      "advertiserId": 31,
      "lastUpdateDate": 1445904536252,
      "campaignName": "Test",
      "objective": "VISIT_WEB",
      "language": "en",
      "advancedGeoPos": "DEFAULT",
      "advancedGeoNeg": "DEFAULT",
      "channel": "NATIVE"
  }
}

When a batch call is made and a subset of the batch fails, in the response:

  • The “errors” part will contain an array with an entry for every item passed that had an error. This entry will include an error code indicating the error reason, as well as an error message and an optional description providing more information on the error. It will also include an index which will have the position of item in the original request array.
  • The “response” part will contain an array of all the objects that were passed in the order in which they were passed, including the ones that had errors. On POST calls, the ID of objects that had errors will be ‘null’.

For example, if you make a POST call passing in 4 keywords, where the first one has a duplicate keyword value, the third one has the wrong advertiser id, but the second and fourth keywords are valid:

POST https://api.gemini.yahoo.com/v3/rest/keyword/

[
  {
      "status": "ACTIVE",
      "bidSet": null,
      "landingUrl": null,
      "parentType": "ADGROUP",
      "parentId": 7718653454,
      "advertiserId": 976108,
      "exclude": "FALSE",
      "matchType": "BROAD",
      "adParamValues": null,
      "value": "advertise yahoo"
  },
  {
      "status": "ACTIVE",
      "bidSet": null,
      "landingUrl": null,
      "parentType": "ADGROUP",
      "parentId": 7718653454,
      "advertiserId": 976108,
      "exclude": "FALSE",
      "matchType": "BROAD",
      "adParamValues": null,
      "value": "new keyword 1"
  },
  {
      "status": "ACTIVE",
      "bidSet": null,
      "landingUrl": null,
      "parentType": "ADGROUP",
      "parentId": 7718653454,
      "advertiserId": 11610,
      "exclude": "FALSE",
      "matchType": "BROAD",
      "adParamValues": null,
      "value": "new keyword 2"
  },
      {
         "status": "ACTIVE",
     "bidSet": null,
     "landingUrl": null,
     "parentType": "ADGROUP",
     "parentId": 7718653454,
     "advertiserId": 976108,
     "exclude": "FALSE",
     "matchType": "BROAD",
     "adParamValues": null,
     "value": "new keyword 3"
      }
]

The response will be:

{
  "errors": [
      {
          "errIndex": 0,
          "code": "E40000_INVALID_INPUT",
          "message": "Duplicate attribute value",
          "description": ""
      },
      {
          "errIndex": 2,
          "code": "E40000_INVALID_INPUT",
          "message": "Invalid advertiser id",
          "description": ""
      }
  ],
  "timestamp": "2015-10-26 23:57:47",
  "response": [
      {
          "parentType": "ADGROUP",
          "parentId": 7718653454,
          "lastUpdateDate": null,
          "createdDate": null,
          "exclude": "FALSE",
          "status": "ACTIVE",
          "bidSet": null,
          "landingUrl": null,
          "advertiserId": 976108,
          "matchType": "BROAD",
          "adParamValues": null,
          "id": null,
          "value": "advertise yahoo"
      },
      {
          "parentType": "ADGROUP",
          "parentId": 7718653454,
          "lastUpdateDate": 1445903867106,
          "createdDate": 1445903867106,
          "exclude": "FALSE",
          "status": "ACTIVE",
          "bidSet": null,
          "landingUrl": null,
          "advertiserId": 976108,
          "matchType": "BROAD",
          "adParamValues": null,
          "id": 296770367975,
          "value": "new keyword 1"
      },
      {
          "parentType": "ADGROUP",
          "parentId": 7718653454,
          "lastUpdateDate": null,
          "createdDate": null,
          "exclude": "FALSE",
          "status": "ACTIVE",
          "bidSet": null,
          "landingUrl": null,
          "advertiserId": 11610,
          "matchType": "BROAD",
          "adParamValues": null,
          "id": null,
          "value": "new keyword 2"
      },
      {
          "parentType": "ADGROUP",
          "parentId": 7718653454,
          "lastUpdateDate": 1445903867106,
          "createdDate": 1445903867106,
          "exclude": "FALSE",
          "status": "ACTIVE",
          "bidSet": null,
          "landingUrl": null,
          "advertiserId": 976108,
          "matchType": "BROAD",
          "adParamValues": null,
          "id": 296770367976,
          "value": "new keyword 3"
      }
  ]
}

The following table provides a list of the error codes returned by the Gemini API:

Error Code HTTP Status Code
E10000_INTERNAL_SERVER_ERROR 500
E30001_UNSUPPORTED_FEATURE 406
E40000_INVALID_INPUT 400
E50000_AUTHORIZATION_ERROR 401
E50003_SERVICE_UNAVAILABLE 503
E40001_REQUEST_TIMEOUT 408
E40002_ACCOUNT_IN_SYNC_READ_ONLY 405
E40003_TOO_MANY_REQUESTS 403
E60000_UNKNOWN_REPORTING_ERROR 500
E40004_REQUEST_CONFLICT 409
E40005_NOT_FOUND 404
E40006_HUGE_REQUEST 413

Error FAQs

In campaign settings, a channel appears with these values: NATIVE, SEARCH or SEARCH_AND_NATIVE. If the campaign setting objective contradicts the channel settings, will it return an error?

Yes, like this:

code: E40000_INVALID_INPUT, message: Mismatching campaign channel and objective, description:

If we create an ad group with bid channel settings not supported at the campaign level, what is the result?

The result will be this:

code: E10000_INTERNAL_SERVER_ERROR, message: Internal Server Error, description: mismatched bid channel.

Note that if you set campaigns to VISIT_WEB, you won’t get these errors, as you can flip the channels on and off for that objective. Non-serving ads, bids, keywords can be created. For native only objectives like PROMOTE_BRAND, you’ll get errors like those above for setting search components.

Are there any restrictions on the use of these fields in Keywords? For example, will setting channel Native for keyword result in error?

Yes.

code: E40000_INVALID_INPUT, message: Invalid bid metadata, description:

When will Gemini return a E40006_HUGE_REQUEST error code?

E40006_HUGE_REQUEST will be triggered when an API partner makes a GET filter request that takes more than 2 minutes to complete due to large filters – for example, fetching for all ads under 500 specific parent ad groups in one call.