ReportService (v202308)

Provides methods for executing a ReportJob and retrieving performance and statistics about ad campaigns, networks, inventory and sales.

Follow the steps outlined below:

Test network behavior

The networks created using NetworkService.makeTestNetwork are unable to provide reports that would be comparable to the production environment because reports require traffic history. In the test networks, reports will consistently return no data for all reports.


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

getReportDownloadURL

Returns the URL at which the report file can be downloaded.

The report will be generated as a gzip archive, containing the report file itself.

Parameters

Field Type Description
reportJobId xsd:long
exportFormat ExportFormat
Enumerations
TSV
The report file is generated as a list of Tab Separated Values.
TSV_EXCEL
The report file is generated as a list of tab-separated values for Excel.
CSV_DUMP
The report file is generated as a list of Comma Separated Values, to be used with automated machine processing.
  • There is no pretty printing for the output, and no total row.
  • Column headers are the qualified name e.g. "Dimension.ORDER_NAME".
  • Network currency Monetary amounts are represented as micros in the currency of the network.
  • Starting from v201705, local currency Monetary amounts are represented as currency symbol + ' ' + micros.
  • Dates are formatted according to the ISO 8601 standard YYYY-MM-DD
  • DateTimes are formatted according to the ISO 8601 standard YYYY-MM-DDThh:mm:ss[+-]hh:mm
XML
The report file is generated as XML.
XLSX
The report file is generated as an Office Open XML spreadsheet designed for Excel 2007+.

Response

Field Type Description
rval xsd:string

getReportDownloadUrlWithOptions

Returns the URL at which the report file can be downloaded, and allows for customization of the downloaded report.

By default, the report will be generated as a gzip archive, containing the report file itself. This can be changed by setting ReportDownloadOptions.useGzipCompression to false.

Parameters

Field Type Description
reportJobId xsd:long
reportDownloadOptions ReportDownloadOptions

Response

Field Type Description
rval xsd:string

getReportJobStatus

Returns the ReportJobStatus of the report job with the specified ID.

Parameters

Field Type Description
reportJobId xsd:long

Response

Field Type Description
rval ReportJobStatus
Enumerations
COMPLETED
The ReportJob has completed successfully and is ready to download.
IN_PROGRESS
The ReportJob is still being executed.
FAILED
The ReportJob has failed to run to completion.

getSavedQueriesByStatement

Retrieves a page of the saved queries either created by or shared with the current user. Each SavedQuery in the page, if it is compatible with the current API version, will contain a ReportQuery object which can be optionally modified and used to create a ReportJob. This can then be passed to ReportService.runReportJob. The following fields are supported for filtering:

PQL Property Object Property
id SavedQuery.id
name SavedQuery.name

Parameters

Field Type Description
filterStatement Statement

Response

Field Type Description
rval SavedQueryPage

runReportJob

Initiates the execution of a ReportQuery on the server.

The following fields are required:

Parameters

Field Type Description
reportJob ReportJob

Response

Field Type Description
rval ReportJob

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
NETWORK_API_ACCESS_DISABLED
The network does not have API access enabled.
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.
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.
UNSUPPORTED_OPERATION
Indicates that the requested operation is not supported.
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.
CurrencyCodeError Errors related to currency codes.
Enumerations
INVALID
The currency code is invalid and does not follow ISO 4217.
UNSUPPORTED
The currency code is valid, but is not supported.
DEPRECATED_CURRENCY_USED
The currency has been used for entity creation after its deprecation
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.
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.
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.
PublisherQueryLanguageContextError An error that occurs while executing a PQL query contained in a Statement object.
Enumerations
UNEXECUTABLE
Indicates that there was an error executing the PQL.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
PublisherQueryLanguageSyntaxError An error that occurs while parsing a PQL query contained in a Statement object.
Enumerations
UNPARSABLE
Indicates that there was a PQL syntax error.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
QuotaError Describes a client-side error on which a user is attempting to perform an action to which they have no quota remaining.
Enumerations
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 8 per second for Ad Manager 360 accounts, or 2 per second for Ad Manager accounts. 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.
REPORT_JOB_LIMIT
This user has exceeded the allowed number of new report requests per hour (this includes both reports run via the UI and reports run via ReportService.runReportJob). The recommended approach to handle this error is to wait about 10 minutes 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 the number of new report requests to 250 per hour per user. Once again, this does not guarantee that every request will succeed, but may help reduce the number of times you receive this error.

ReportError An error for an exception that occurred while running the report.
Enumerations
DEFAULT
Default ReportError when the reason is not among any already defined.
REPORT_ACCESS_NOT_ALLOWED
User does not have permission to access the report.
DIMENSION_VIEW_NOT_ALLOWED
User does not have permission to view one or more Dimension.
ATTRIBUTE_VIEW_NOT_ALLOWED
User has no permission to view one or more attributes.
COLUMN_VIEW_NOT_ALLOWED
User does not have permission to view one or more Column.
REPORT_QUERY_TOO_LONG
The report query exceeds the maximum allowed number of characters.
INVALID_OPERATION_FOR_REPORT_STATE
Invalid report job state for the given operation.
INVALID_DIMENSIONS
Invalid Dimension objects specified.
INVALID_ATTRIBUTES
The attribute ID(s) are not valid.
INVALID_CMS_METADATA_DIMENSIONS
The API error when running the report with CmsMetadataKeyDimension. There are three reasons for this error.
  1. ReportQuery.dimensions contains Dimension.CONTENT_CMS_METADATA, but ReportQuery.cmsMetadataKeyIds is empty.
  2. ReportQuery.cmsMetadataKeyIds is non-empty, but ReportQuery.dimensions does not contain Dimension.CONTENT_CMS_METADATA.
  3. The ReportQuery.cmsMetadataKeyIds specified along with the Dimension.CONTENT_CMS_METADATA are not valid, i.e., these IDs are not reportable cms metadata key defined by the publisher.
INVALID_COLUMNS
Invalid Column objects specified.
INVALID_DIMENSION_FILTERS
Invalid DimensionFilter objects specified.
INVALID_DATE
Invalid date.
END_DATE_TIME_NOT_AFTER_START_TIME
The start date for running the report should not be later than the end date.
START_DATE_MORE_THAN_THREE_YEARS_AGO
The start date for running the report should not be more than three years before now.
NOT_NULL
The list of Dimension and Column objects cannot be empty.
ATTRIBUTES_NOT_SUPPORTED_FOR_REQUEST
Attribute has to be selected in combination with dimensions.
COLUMNS_NOT_SUPPORTED_FOR_REQUESTED_DIMENSIONS
The provided report violates one or more constraints, which govern incompatibilities and requirements between different report properties. Some reasons for constraint violations include:
  • Not all Column objects requested are supported for the given set of Dimension objects.
  • The report's date range is not compatible with the given set of Column objects.
  • The report's TimeZoneType is not compatible with the given set of Column and Dimension objects (version 201802 and later).
  • The report's currency is not compatible with the given set of Column objects.
For versions 201911 and later, this is only returned when some or all of the Column objects are not supported for the requested Dimension objects.
DATE_RANGE_NOT_SUPPORTED_FOR_REQUESTED_REPORT
The report's date range is not compatible with the requested Dimension and Column objects.
TIME_ZONE_TYPE_NOT_SUPPORTED_FOR_REQUESTED_REPORT
The report's TimeZoneType is not compatible with the requested Column and Dimension objects.
CURRENCY_CODE_NOT_SUPPORTED_FOR_REQUESTED_REPORT
The report's currency is not compatible with the requested Column objects.
FAILED_TO_STORE_REPORT
Failed to store/cache a report.
REPORT_NOT_FOUND
The requested report does not exist.
SR_CANNOT_RUN_REPORT_IN_ANOTHER_NETWORK
User has no permission to view in another network.
AD_UNIT_VIEW_NOT_SUPPORTED_FOR_REQUESTED_REPORT
The report's AdUnitView is not compatible with the requested Dimension and Column objects.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
RequiredCollectionError A list of all errors to be used for validating sizes of collections.
Enumerations
REQUIRED
A required collection is missing.
TOO_LARGE
Collection size is too large.
TOO_SMALL
Collection size is too small.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
RequiredError Errors due to missing required field.
Enumerations
REQUIRED
Missing required field.
ServerError Errors related to the server.
Enumerations
SERVER_ERROR
Indicates that an unexpected error occured.
SERVER_BUSY
Indicates that the server is currently experiencing a high load. Please wait and try your request again.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
StatementError An error that occurs while parsing Statement objects.
Enumerations
VARIABLE_NOT_BOUND_TO_VALUE
A bind variable has not been bound to a value.
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.
StringFormatError A list of error code for reporting invalid content of input strings.
Enumerations
UNKNOWN
ILLEGAL_CHARS
The input string value contains disallowed characters.
INVALID_FORMAT
The input string value is invalid for the associated field.
StringLengthError Errors for Strings which do not meet given length constraints.
Enumerations
TOO_LONG
TOO_SHORT
UNKNOWN
The value returned if the actual value is not exposed by the requested API version.