Learn more about the Reporting API and how to solve some common reporting issues.
- Check the error code returned by Get Report Status and see if you can find the reason for the failure using the Error Codes index.
- If the problem persists, contact Singular's support team. We recommend saving the report ID because the team can use it to find the specific API call that returned the error and check for technical reasons why it couldn't be completed.
Generally, your data for yesterday should be ready for you by 8 a.m. in your local timezone. If it isn't ready, check the "status" parameter returned by the Data Availability endpoint. It may include more information about the problem (see the Data Availability Endpoint reference for more information). If there is a login issue (Singular could not log into the source to pull the data), go to the Data Connectors page in the Singular app, and re-enter your credentials.
However, there may not be an immediately identifiable problem such as a login error. Data pulls can be delayed for various reasons. Note that the Singular team is alerted about data delays automatically and immediately begins working on the problem. In the meantime, you can:
- Query all your other networks and leave the delayed ones for later
- Wait at least an hour and check again
- In urgent cases, if you have waited and the source still isn’t populated, you can notify Singular support, but keep in mind that they are probably already working on it.
Sometimes, instead of getting all the metrics for a campaign in a single row, you will get the ad network metrics (such as Cost) in one row, and the attribution tracker metrics (such as Installs) in a second row.
You get this error when your query included a filter that doesn’t exist. For example, you may have tried to filter by an app that doesn’t exist in the Apps page, or an OS that doesn’t exist at all. Examine the returned filter value and fix the query appropriately.
To get a list of all the fields you can filter on and all of the valid values for each field, use the filters endpoint.
If you included custom dimensions in your query, use the Custom Dimensions endpoint to double-check that the dimensions are still available. This error can arise if you or your team have made changes in the Custom Dimensions configuration page since your query was written.
In addition, for custom dimensions, make sure you use the dimension ID (rather than the "display name").
Learn more in the Custom Dimensions FAQ.
One reason your data may change over time is that Singular shows data as it is reported by your networks and tracker(s). Some of these partners may report estimated data before they have the final data. For example, Twitter states that "Twitter reporting is finalized within 24-48 hours of when impressions are served. Before that time, we estimate data to provide real-time feedback, but the data is subject to change" (source).
This arises from a workaround to a technical issue with some of the ad networks we pull data from.
Sometimes the ad network’s metrics for the creatives within a campaign don’t add up exactly to the ad network's metric for the campaign.
For example, here is data pulled on the creative level that adds up to 50 clicks, while the data pulled on the campaign level shows 45 clicks for the same campaign:
In such cases, to align the data, Singular adds a dummy creative row to the database, and gives it the value needed so that the metrics for the creatives add up to the metric for the whole campaign. This value is sometimes negative. The Creative Name in this dummy row is given as "Missing Creative Data."
These dummy rows are usually only displayed in API results (not in reports you run in the Singular UI). You can hide them by adding the following to your query: display_alignment=False
Singular offers some metrics that are calculated based on other metrics in the row. For example, CPI (cost per install) is the cost divided by the number of installs. We recommend avoiding using these metrics in API reports because in any aggregated query (where the metrics are added up with a "+" operation), you get meaningless results.
Check if your query includes creative dimensions, such as creative_id, creative_name, asset_id, asset_name, etc. Some networks, such as Google Ads, provide country data per campaign but not per creative, so if the report is broken down by creatives, you can't see country information.
For more information about Google Ads features and limitations, see AdWords (Google Ads) Data Connector.
The Singular API and the Singular user interface (at app.singular.net) use the same code to pull the data from the Singular database, so the results should always match. If they don’t, it probably means you haven’t run the exact same query.
Compare your query settings in the Singular user interface to the API query, paying attention to the following differences in particular:
- Querying different sets of dates
- Using discrepancy metrics instead of regular metrics
- Displaying dummy rows in creative reports (see Why do I get "Missing Creative Data" in the "Creative Name" dimension?)
You can also use developer tools to check the get_new_data API call that runs when you use the UI.
You can only run 100 asynchronous reports at the same time. If you've already submitted 100 reports, wait for a report to finish before submitting another one.
This can occur for various reasons. Wait a few moments and retry the API call. If you are running the same code every day to pull your reports, you should add retries to the code in case of 500 errors.
If the problem persists, contact Singular support.