Note: Version v201811 will be sunset soon. All users of those versions must migrate to a newer one.

ProductService (v201902)

Provides methods for updating and retrieving Product objects.

A Product represents a line item proposal. Products are generated from product templates on a periodic basis using the product template's attributes. Products are typically used by inventory managers to restrict what salespeople can sell.

To use this service, you need to have the new sales management solution enabled on your network. If you do not see a "Sales" tab in DoubleClick for Publishers (DFP), you will not be able to use this service.


Production WSDL
https://ads.google.com/apis/ads/publisher/v201902/ProductService?wsdl
Namespace
https://www.google.com/apis/ads/publisher/v201902
Operations
Errors

getProductsByStatement

Gets a ProductPage of Product objects that satisfy the criteria specified by given Statement.query.

When using sales management, the following fields are supported for filtering and/or sorting.

PQL Property Object Property Filterable Sortable
rateCardId Rate card ID which the product is associated with Yes No
status Product.status Yes Yes
lineItemType Product.lineItemType Yes Yes
productType Product.productType Yes Yes
rateType Product.rateType Yes Yes
productTemplateId Product.productTemplateId Yes No
name Product.name Yes Yes
description Product.description Yes No
id Product.id Yes Yes
lastModifiedDateTime Product.lastModifiedDateTime Yes Yes

Parameters

Field Type Description
statement Statement a Publisher Query Language statement which specifies the filtering criteria over products

Response

Field Type Description
rval ProductPage the products that match the given statement

performProductAction

Performs action on Product objects that satisfy the given Statement.

Parameters

Field Type Description
productAction
  1. ProductAction
    1. ActivateProducts
    2. DeactivateProducts
    3. PublishProducts
    4. WithdrawProducts
the action to perform
filterStatement Statement a Publisher Query Language statement used to filter a set of products.

Response

Field Type Description
rval UpdateResult the result of the action performed

updateProducts

Updates the specified Product objects. Note non-updatable fields will not be backfilled.

Parameters

Field Type Description
products Product[] the products to update

Response

Field Type Description
rval Product[] the updated products

Errors

Error Reasons
ApiVersionError Errors related to the usage of API versions.
Enumerations
UPDATE_TO_NEWER_VERSION
Indicates that the operation is not allowed in the version the request was made in.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
AuthenticationError An error for an exception that occurred when authenticating.
Enumerations
AMBIGUOUS_SOAP_REQUEST_HEADER
The SOAP message contains a request header with an ambiguous definition of the authentication header fields. This means either the authToken and oAuthToken fields were both null or both were specified. Exactly one value should be specified with each request.
INVALID_EMAIL
The login provided is invalid.
AUTHENTICATION_FAILED
Tried to authenticate with provided information, but failed.
INVALID_OAUTH_SIGNATURE
The OAuth provided is invalid.
INVALID_SERVICE
The specified service to use was not recognized.
MISSING_SOAP_REQUEST_HEADER
The SOAP message is missing a request header with an authToken and optional networkCode.
MISSING_AUTHENTICATION_HTTP_HEADER
The HTTP request is missing a request header with an authToken
MISSING_AUTHENTICATION
The request is missing an authToken
NOT_WHITELISTED_FOR_API_ACCESS
The customer is not whitelisted for API access.
NO_NETWORKS_TO_ACCESS
The user is not associated with any network.
NETWORK_NOT_FOUND
No network for the given networkCode was found.
NETWORK_CODE_REQUIRED
The user has access to more than one network, but did not provide a networkCode.
CONNECTION_ERROR
An error happened on the server side during connection to authentication service.
GOOGLE_ACCOUNT_ALREADY_ASSOCIATED_WITH_NETWORK
The user tried to create a test network using an account that already is associated with a network.
UNDER_INVESTIGATION
The account is blocked and under investigation by the collections team. Please contact Google for more information.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
BaseRateError An error having to do with BaseRate.
Enumerations
INVALID_CURRENCY_CODE
The currency code is invalid.
PRODUCT_TEMPLATE_ARCHIVED
Cannot create or activate a base rate if the product template is archived.
PRODUCT_PACKAGE_ITEM_ARCHIVED
Cannot create or activate a product package item base rate if the product package item is archived.
CANNOT_QUERY_ON_MULTIPLE_TYPES
The PQL statement can only contain one of productTemplateId, productId or productPackageItemId.
PRODUCT_PACKAGE_RATE_CARD_ASSOCIATION_MISSING
Product package must be associated with the rate card of the product package item base rate.

See ProductPackage.rateCardIds.

UNSUPPORTED_OPERATION
Indicates that the requested operation is not supported.
PRODUCT_PACKAGE_ACTIVE
Cannot delete a product package item base rate when its product package is active.
PRODUCT_TEMPLATE_BASE_RATE_NOT_FOUND
Cannot create a base rate to a product if its product template does not have a base rate on this rate card.
PRODUCT_BASE_RATE_EXISTS
Cannot delete a base rate on a product template if its products still have base rates on this rate card.
INVALID_RATE_CARD_CHANNEL
Marketplace rate cards should only have Marketplace Product/ProductTemplate base rates. Non-Marketplace rate cards should use traditional base rates.
ZERO_MARKETPLACE_RATE_NOT_SUPPORTED
Marketplace does not support base rates with zero-value rates.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
CollectionSizeError Error for the size of the collection being too large
Enumerations
TOO_LARGE
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
CommonError A place for common errors that can be used across services.
Enumerations
NOT_FOUND
Indicates that an attempt was made to retrieve an entity that does not exist.
ALREADY_EXISTS
Indicates that an attempt was made to create an entity that already exists.
NOT_APPLICABLE
Indicates that a value is not applicable for given use case.
DUPLICATE_OBJECT
Indicates that two elements in the collection were identical.
CANNOT_UPDATE
Indicates that an attempt was made to change an immutable field.
CONCURRENT_MODIFICATION
Indicates that another request attempted to update the same data in the same network at about the same time. Please wait and try the request again.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
ContentMetadataTargetingError Lists all errors related to ContentMetadataTargeting.
Enumerations
VALUES_DO_NOT_BELONG_TO_A_HIERARCHY
One or more of the values specified in a ContentMetadataHierarchyTargeting do not belong to the keys defined in any of the hierarchies on the network.
CONTENT_METADATA_TARGETING_DEPRECATED
Content metadata targeting is deprecated.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
CustomFieldValueError Errors specific to editing custom field values
Enumerations
CUSTOM_FIELD_NOT_FOUND
An attempt was made to modify or create a CustomFieldValue for a CustomField that does not exist.
CUSTOM_FIELD_INACTIVE
An attempt was made to create a new value for a custom field that is inactive.
CUSTOM_FIELD_OPTION_NOT_FOUND
An attempt was made to modify or create a CustomFieldValue corresponding to a CustomFieldOption that could not be found.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
CustomTargetingError Lists all errors related to CustomTargetingKey and CustomTargetingValue objects.
Enumerations
KEY_NOT_FOUND
Requested CustomTargetingKey is not found.
KEY_COUNT_TOO_LARGE
Number of CustomTargetingKey objects created exceeds the limit allowed for the network.
KEY_NAME_DUPLICATE
CustomTargetingKey with the same CustomTargetingKey.name already exists.
KEY_NAME_EMPTY
CustomTargetingKey.name is empty.
KEY_NAME_INVALID_LENGTH
CustomTargetingKey.name is too long.
KEY_NAME_INVALID_CHARS
CustomTargetingKey.name contains unsupported or reserved characters.
KEY_NAME_RESERVED
CustomTargetingKey.name matches one of the reserved custom targeting key names.
KEY_DISPLAY_NAME_INVALID_LENGTH
CustomTargetingKey.displayName is too long.
VALUE_NOT_FOUND
Requested CustomTargetingValue is not found.
GET_VALUES_BY_STATEMENT_MUST_CONTAIN_KEY_ID
The WHERE clause in the Statement.query must always contain CustomTargetingValue.customTargetingKeyId as one of its columns in a way that it is AND'ed with the rest of the query.
VALUE_COUNT_FOR_KEY_TOO_LARGE
The number of CustomTargetingValue objects associated with a CustomTargetingKey exceeds the network limit. This is only applicable for keys of type CustomTargetingKey.Type#PREDEFINED.
VALUE_NAME_DUPLICATE
CustomTargetingValue with the same CustomTargetingValue.name already exists.
VALUE_NAME_EMPTY
CustomTargetingValue.name is empty.
VALUE_NAME_INVALID_LENGTH
CustomTargetingValue.name is too long.
VALUE_NAME_INVALID_CHARS
CustomTargetingValue.name contains unsupported or reserved characters.
VALUE_DISPLAY_NAME_INVALID_LENGTH
CustomTargetingValue.displayName is too long.
VALUE_MATCH_TYPE_NOT_ALLOWED
Only Ad Manager 360 networks can have CustomTargetingValue.matchType other than CustomTargetingValue.MatchType.EXACT.
VALUE_MATCH_TYPE_NOT_EXACT_FOR_PREDEFINED_KEY
You can only create CustomTargetingValue objects with match type CustomTargetingValue.MatchType.EXACT when associating with CustomTargetingKey objects of type CustomTargetingKey.Type.PREDEFINED
SUFFIX_MATCH_TYPE_NOT_ALLOWED
CustomTargetingValue object cannot have match type of CustomTargetingValue.MatchType.SUFFIX when adding a CustomTargetingValue to a line item.
CONTAINS_MATCH_TYPE_NOT_ALLOWED
CustomTargetingValue object cannot have match type of CustomTargetingValue.MatchType.CONTAINS when adding a CustomTargetingValue to targeting expression of a line item.
KEY_WITH_MISSING_VALUES
The CustomTargetingKey does not have any CustomTargetingValue associated with it.
INVALID_VALUE_FOR_KEY
The CustomTargetingKey has a CustomTargetingValue specified for which the value is not a valid child.
CANNOT_OR_DIFFERENT_KEYS
CustomCriteriaSet.LogicalOperator.OR operation cannot be applied to values with different keys.
INVALID_TARGETING_EXPRESSION
Targeting expression is invalid. This can happen if the sequence of operators is wrong, or a node contains invalid number of children.
DELETED_KEY_CANNOT_BE_USED_FOR_TARGETING
The key has been deleted. CustomCriteria cannot have deleted keys.
DELETED_VALUE_CANNOT_BE_USED_FOR_TARGETING
The value has been deleted. CustomCriteria cannot have deleted values.
VIDEO_BROWSE_BY_KEY_CANNOT_BE_USED_FOR_CUSTOM_TARGETING
The key is set as the video browse-by key, which cannot be used for custom targeting.
CANNOT_DELETE_CUSTOM_KEY_USED_IN_CONTENT_METADATA_MAPPING
Only active custom-criteria keys are supported in content metadata mapping.
CANNOT_DELETE_CUSTOM_VALUE_USED_IN_CONTENT_METADATA_MAPPING
Only active custom-criteria values are supported in content metadata mapping.
CANNOT_DELETE_CUSTOM_KEY_USED_IN_PARTNER_ASSIGNMENT_TARGETING
Cannot delete a custom criteria key that is targeted by an active partner assignment.
CANNOT_DELETE_CUSTOM_VALUE_USED_IN_PARTNER_ASSIGNMENT_TARGETING
Cannot delete a custom criteria value that is targeted by an active partner assignment.
CANNOT_TARGET_AUDIENCE_SEGMENT
AudienceSegment object cannot be targeted.
CANNOT_TARGET_INACTIVE_AUDIENCE_SEGMENT
Inactive AudienceSegment object cannot be targeted.
INVALID_AUDIENCE_SEGMENTS
Targeted AudienceSegment object is not valid.
ONLY_APPROVED_AUDIENCE_SEGMENTS_CAN_BE_TARGETED
Targeted AudienceSegment objects have not been approved.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
DateTimeRangeTargetingError Lists all date time range errors caused by associating a line item with a targeting expression.
Enumerations
EMPTY_RANGES
No targeted ranges exists.
NOT_SPONSORSHIP_LINEITEM
Type of lineitem is not sponsorship.
PAST_RANGES_CHANGED
Past ranges are changed.
RANGES_OVERLAP
Targeted date time ranges overlap.
RANGES_OUT_OF_LINEITEM_ACTIVE_PERIOD
Targeted date time ranges fall out the active period of lineitem.
START_TIME_IS_NOT_START_OF_DAY
Start time of range (except the earliest range) is not at start of day. Start of day is 00:00:00.
END_TIME_IS_NOT_END_OF_DAY
End time of range (except the latest range) is not at end of day. End of day is 23:59:59.
START_DATE_TIME_IS_IN_PAST
Start date time of earliest targeted ranges is in past.
RANGE_END_TIME_BEFORE_START_TIME
The end time of range is before the start time. Could happen when start type is IMMEDIATE or ONE_HOUR_LATER.
END_DATE_TIME_IS_TOO_LATE
End date time of latest targeted ranges is too late.
LIMITED_RANGES_IN_UNLIMITED_LINEITEM
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
DayPartTargetingError Lists all errors associated with day-part targeting for a line item.
Enumerations
INVALID_HOUR
Hour of day must be between 0 and 24, inclusive.
INVALID_MINUTE
Minute of hour must be one of 0, 15,30, 45.
END_TIME_NOT_AFTER_START_TIME
The DayPart.endTime cannot be after DayPart.startTime.
TIME_PERIODS_OVERLAP
Cannot create day-parts that overlap.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
EntityChildrenLimitReachedError Lists errors relating to having too many children on an entity.
Enumerations
LINE_ITEM_LIMIT_FOR_ORDER_REACHED
The number of line items on the order exceeds the max number of line items allowed per order in the network.
CREATIVE_ASSOCIATION_LIMIT_FOR_LINE_ITEM_REACHED
The number of creatives associated with the line item exceeds the max number of creatives allowed to be associated with a line item in the network.
AD_UNIT_LIMIT_FOR_PLACEMENT_REACHED
The number of ad units on the placement exceeds the max number of ad units allowed per placement in the network.
TARGETING_EXPRESSION_LIMIT_FOR_LINE_ITEM_REACHED
The number of targeting expressions on the line item exceeds the max number of targeting expressions allowed per line item in the network.
CUSTOM_TARGETING_VALUES_FOR_KEY_LIMIT_REACHED
The number of custom targeting values for the free-form or predefined custom targeting key exceeds the max number allowed.
TARGETING_EXPRESSION_LIMIT_FOR_CREATIVES_ON_LINE_ITEM_REACHED
The total number of targeting expressions on the creatives for the line item exceeds the max number allowed per line item in the network.
ATTACHMENT_LIMIT_FOR_PROPOSAL_REACHED
The number of attachments added to the proposal exceeds the max number allowed per proposal in the network.
PROPOSAL_LINE_ITEM_LIMIT_FOR_PROPOSAL_REACHED
The number of proposal line items on the proposal exceeds the max number allowed per proposal in the network.
PRODUCT_LIMIT_FOR_PRODUCT_PACKAGE_REACHED
The number of product package items on the product package exceeds the max number allowed per product package in the network.
PRODUCT_TEMPLATE_AND_PRODUCT_BASE_RATE_LIMIT_FOR_RATE_CARD_REACHED
The number of product template and product base rates on the rate card (including excluded product base rates) exceeds the max number allowed per rate card in the network.
PRODUCT_PACKAGE_ITEM_BASE_RATE_LIMIT_FOR_RATE_CARD_REACHED
The number of product package item base rates on the rate card exceeds the max number allowed per rate card in the network.
PREMIUM_LIMIT_FOR_RATE_CARD_REACHED
The number of premiums of the rate card exceeds the max number allowed per rate card in the network.
AD_UNIT_LIMIT_FOR_AD_EXCLUSION_RULE_TARGETING_REACHED
The number of ad units on AdExclusionRule.inventoryTargeting exceeds the max number of ad units allowed per ad exclusion rule inventory targeting in the network.
NATIVE_STYLE_LIMIT_FOR_NATIVE_AD_FORMAT_REACHED
The number of native styles under the native creative template exceeds the max number of native styles allowed per native creative template in the network.
TARGETING_EXPRESSION_LIMIT_FOR_PRESENTATION_ASSIGNMENT_REACHED
The number of targeting expressions on the native style exceeds the max number of targeting expressions allowed per native style in the network.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
FeatureError Errors related to feature management. If you attempt using a feature that is not available to the current network you'll receive a FeatureError with the missing feature as the trigger.
Enumerations
MISSING_FEATURE
A feature is being used that is not enabled on the current network.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
ForecastError Errors that can result from a forecast request.
Enumerations
SERVER_NOT_AVAILABLE
The forecast could not be retrieved due to a server side connection problem. Please try again soon.
INTERNAL_ERROR
There was an unexpected internal error.
NO_FORECAST_YET
The forecast could not be retrieved because there is not enough forecasting data available yet. It may take up to one week before enough data is available.
NOT_ENOUGH_INVENTORY
There's not enough inventory for the requested reservation.
SUCCESS
No error from forecast.
ZERO_LENGTH_RESERVATION
The requested reservation is of zero length. No forecast is returned.
EXCEEDED_QUOTA
The number of requests made per second is too high and has exceeded the allowable limit. The recommended approach to handle this error is to wait about 5 seconds and then retry the request. Note that this does not guarantee the request will succeed. If it fails again, try increasing the wait time.

Another way to mitigate this error is to limit requests to 2 per second. Once again this does not guarantee that every request will succeed, but may help reduce the number of times you receive this error.

UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
GenericTargetingError Targeting validation errors that can be used by different targeting types.
Enumerations
CONFLICTING_INCLUSION_OR_EXCLUSION_OF_SIBLINGS
Both including and excluding sibling criteria is disallowed.
INCLUDING_DESCENDANTS_OF_EXCLUDED_CRITERIA
Including descendants of excluded criteria is disallowed.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
GeoTargetingError Lists all errors associated with geographical targeting for a LineItem.
Enumerations
TARGETED_LOCATIONS_NOT_EXCLUDABLE
A location that is targeted cannot also be excluded.
EXCLUDED_LOCATIONS_CANNOT_HAVE_CHILDREN_TARGETED
Excluded locations cannot have any of their children targeted.
POSTAL_CODES_CANNOT_BE_EXCLUDED
Postal codes cannot be excluded.
UNTARGETABLE_LOCATION
Indicates that location targeting is not allowed.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
InternalApiError Indicates that a server-side error has occured. InternalApiErrors are generally not the result of an invalid request or message sent by the client.
Enumerations
UNEXPECTED_INTERNAL_API_ERROR
API encountered an unexpected internal error.
TRANSIENT_ERROR
A temporary error occurred during the request. Please retry.
UNKNOWN
The cause of the error is not known or only defined in newer versions.
DOWNTIME
The API is currently unavailable for a planned downtime.
ERROR_GENERATING_RESPONSE
Mutate succeeded but server was unable to build response. Client should not retry mutate.
InventoryTargetingError Lists all inventory errors caused by associating a line item with a targeting expression.
Enumerations
AT_LEAST_ONE_PLACEMENT_OR_INVENTORY_UNIT_REQUIRED
At least one placement or inventory unit is required
INVENTORY_CANNOT_BE_TARGETED_AND_EXCLUDED
The same inventory unit or placement cannot be targeted and excluded at the same time
INVENTORY_UNIT_CANNOT_BE_TARGETED_IF_ANCESTOR_IS_TARGETED
A child inventory unit cannot be targeted if its ancestor inventory unit is also targeted.
INVENTORY_UNIT_CANNOT_BE_TARGETED_IF_ANCESTOR_IS_EXCLUDED
A child inventory unit cannot be targeted if its ancestor inventory unit is excluded.
INVENTORY_UNIT_CANNOT_BE_EXCLUDED_IF_ANCESTOR_IS_EXCLUDED
A child inventory unit cannot be excluded if its ancestor inventory unit is also excluded.
EXPLICITLY_TARGETED_INVENTORY_UNIT_CANNOT_BE_TARGETED
An explicitly targeted inventory unit cannot be targeted.
EXPLICITLY_TARGETED_INVENTORY_UNIT_CANNOT_BE_EXCLUDED
An explicitly targeted inventory unit cannot be excluded.
SELF_ONLY_INVENTORY_UNIT_NOT_ALLOWED
A landing page-only ad unit cannot be targeted.
SELF_ONLY_INVENTORY_UNIT_WITHOUT_DESCENDANTS
A landing page-only ad unit cannot be targeted if it doesn't have any children.
YOUTUBE_AUDIENCE_SEGMENTS_CAN_ONLY_BE_TARGETED_WITH_YOUTUBE_SHARED_INVENTORY
Audience segments shared from YouTube can only be targeted with inventory shared from YouTube for cross selling.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
NonProgrammaticProductError Lists all non-programmatic errors associated with products which can't be used in Marketplace.
Enumerations
PRODUCT_MARKETPLACE_INFO_IS_NOT_NULL
Product Marketplace info should be null for non-programmatic products.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
NotNullError Caused by supplying a null value for an attribute that cannot be null.
Enumerations
ARG1_NULL
Assuming that a method will not have more than 3 arguments, if it does, return NULL
ARG2_NULL
ARG3_NULL
NULL
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
ParseError Lists errors related to parsing.
Enumerations
UNPARSABLE
Indicates an error in parsing an attribute.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
PermissionError Errors related to incorrect permission.
Enumerations
PERMISSION_DENIED
User does not have the required permission for the request.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
PreferredDealError Errors associated with preferred deal proposal