Error pulling correct google ads data

I’m encountering an issue with the Google Ads module when trying to retrieve campaign performance data. I’m using the “Run a campaign report” action, inputting all the required fields, and sending the data to a connected Google Sheet.

The scenario runs successfully and does output data to the sheet — but the results don’t reflect the correct date range I’ve selected. Regardless of whether I choose “Last 7 days”, “Last 14 days”, or a custom range, the data always appears to only show the last day in the range.

I’ve tested this across multiple campaigns, different Google Ads accounts, and even experimented with different date formats, including {{ addDays(now; -1) }} but the issue persists. The report always shows the same data — seemingly only for the final date in the selected range.

What’s even more confusing is that in the output bundle from the first module, the Start Date and End Date are correctly listed (e.g. Start Date: 14 July 2025 00:00, End Date: 20 July 2025 00:00), yet the data itself only reflects 20 July.

Has anyone else experienced this or found a workaround?


Welcome to the Make community!

Try increasing the limit to a higher number.

If you need further assistance, please provide the following:

3. Module Output Bundles

Please provide the output bundles of each of the relevant modules by running the scenario (you can also get this without re-running your scenario from the History tab).

Click on the white speech bubbles on the top-right of each module and select “Download input/output bundles”.

A. Upload as a Text File

Save each bundle contents in a plain text editor (without formatting) as a bundle.txt file.

You can upload the file here by clicking on this button:

B. Insert as Formatted Code Block

If you are unable to upload files on this forum, alternatively you can paste the formatted bundles.
Here are some ways to provide text content in a way that it won’t be modified by the forum.

  • Method 1: Type code fence manually
    Add three backticks ``` in a separate line before and after the content, like this,

    ```
    text goes here
    ```
    
  • Method 2: Highlight and click the “preformatted text” button in the editor

  • Method 3: Upload your file and share the public link
    (this method is only recommended for large files exceeding the forum upload limit)

Providing the input/output bundles will allow others to replicate what is going on in the scenario, especially if there are complex data structures (nested arrays and collections) or if external services are involved, and help you with mapping the raw property names from collections.

Sharing these details will make it easier for others to assist you.

That sounds incredibly frustrating when the report dates look correct but the data doesn’t match the range you set.

It’s a surprisingly common issue with many API report modules, including some implementations of the Google Ads connector, especially when dealing with date ranges and aggregation.

The module might be correctly setting the date parameters but then pulling an aggregated view for the entire period, often presenting it as a single row that’s implicitly tagged with the end date, or it might just be filtering the results incorrectly before output.

A robust solution that gives you much more control and is far less prone to these kinds of integration bugs is to bypass the pre-built “Run a campaign report” module and instead use the Make API module in conjunction with the raw Google Ads API.

You’d set up your reporting request there, typically using the Google Ads Query Language (GAQL) to pull the specific fields you need.

To manage the authentication and the sheer volume of data often involved in this kind of extraction, especially for large date ranges or many accounts, pairing this with a server-side solution is highly recommended.

You can use Google Tag Manager on the client side to collect and fire Standard Events like ‘purchase’, ‘view_item’, or ‘add_to_cart’, ensuring accurate tracking.

For server-side processing, a tool like Stape or the use of Google Cloud Platform (GCP) functions (like Cloud Functions or Cloud Run) provides the necessary infrastructure.

The beauty of this architecture is that it separates data collection (GTM, Standard Events) from data extraction (Make API + Google Ads API).

Using the raw Google Ads API via the Make API module lets you explicitly define the segments.date in your GAQL query.

When you segment by date, the API is forced to return a separate row for each day in your selected range, solving the single-day aggregation issue you’re facing.

For example, if you request 7 days of data and segment by date, you’ll get 7 distinct rows in the API response, each with the correct daily performance data and its corresponding date.

Storing this clean, unaggregated daily data in your Google Sheet then becomes a simple mapping task within your Make scenario.

This approach is more complex to set up initially, but it provides significantly greater reliability, scalability, and control over your data retrieval.