Ads Cost data import In GA4: Likely Issues, Mistakes & Solutions

A detailed guide on some of the possible issues you might encounter or mistakes you might make when using the Google Analytics data import feature for importing advertising cost data.

In this detailed guide, we will explore potential issues and common mistakes you may encounter when utilizing the Google Analytics data import feature for importing advertising cost data. By understanding these challenges upfront, you can proactively address them and ensure a smooth and accurate import process. Let’s dive in!

I’ll take a bet to believe you’re familiar with the data import feature in Google Analytics. However, we will not be discussing how to utilize this feature. Instead, we will focus on the potential challenges, issues and errors of importing non-Google marketing cost and performance data into Google Analytics (GA4). We will address the possible issues you might encounter and provide troubleshooting guidance for importing cost data into GA4. 

Data import is a feature you’ll find in the GA4 admin section. It’s cost data import capability allows you to assess performance and conduct cost analysis on non-Google campaigns directly within the Google Analytics (GA4) interface.

If you intend to learn how to import cost data into GA4, there are better resources than this article. However, you will find valuable insights here if you seek solutions to problems such as zero matches, inaccurate data, or difficulties importing your data to GA4.

Possible Challenges Encountered in GA4 Cost Data Import

When utilizing the cost data import feature, you will likely encounter the following issues: zero match, incorrect data, data not being imported, and difficulties importing cost data, among others.

These issues can be attributed to various factors, which we will thoroughly discuss in the upcoming sections:

  • Mis-mapping of fields during the import process
  • Erroneously attempting to create a secondary cost data source
  • Uploading data with a date older than the last 90 days
  • Importing cost data for a campaign meant not to generate website traffic
  • Failure to collect campaign ID (utm_id) in GA4
  • Discrepancies between the campaign ID (utm_id) from the vendor and the one measured in GA4
  • Inconsistency in the naming of campaign tracking parameters
  • Incorrect formatting of the date field according to GA4 guidelines
  • Neglecting to select the required metrics field for inclusion in the import
  • Failure to Allow Sufficient Time for Data Processing

Mis-mapping of fields during the import process

Incorrectly mapping the analytics and import fields during the import process can render it impossible to import your cost data into GA4. This mistake is likely to be made when utilizing the manual import method. 

After updating the data in the created cost data source, the “unknown” status information associated with this mistake will affect the data matching, making it challenging to proceed with the import.

Unlike strict aspects of Google Analytics, it does not implement stringent rules to detect erroneous mapping between your data import and Google Analytics fields.

Here is an image example that shows how the error occurs. 

To identify this error, access the data import feature, select the cost data source you created earlier, and expand the “mapping” section. Compare both the “Analytics field” and the “import field” to identify any mapping mistakes. 

If any errors are found, refer to the resolution section for guidance on rectifying this issue.


The only viable solution is to delete and recreate the data source, avoiding the same mistake. This brings us to the second type of mistake, mostly triggered by misunderstanding how the cost data import is designed to work in Google Analytics.

Erroneously attempting to create a secondary cost data source.

It is important to note that the inability to create a second cost data into Google Analytics (GA4) is not a fault of GA4 itself but rather a limitation of the “cost data” feature, which is designed to function in a specific manner.

This issue can create the false impression that you have a restricted access role and cannot import cost data into GA4.

In the GA4 admin’s data import section, when you attempt to import cost data by clicking the “Create Data Source” button, you may notice that the option to select “Cost data” is greyed out while other options remain accessible. 

When you experience this, this means that you’ve previously created a cost data source for the specific GA4 property. You can verify this by checking the “Data Type” column in the list of existing data sources within that GA4 property. If there is an entry with “Cost Data,” you have the option to use or delete it, provided it is not currently in use.


If the cost data source is not in use, you can resolve this issue by deleting it. In GA4, you can only have one data source for importing cost data but have the flexibility to continuously import newly generated cost data into the existing data source.

If the previously created cost data source is in use, you can navigate to it to add your imported file and click “Import now” to import new data sources.

If it’s not in use or doesn’t hold any previously imported non-Google marketing cost and performance data, you can delete it and create a new one.

Uploading data with a date older than the last 90 days

This mistake will cause Google Analytics to be unable to match the imported data with your existing GA4 data despite following the guidelines mentioned in this blog. 

Another possible reason could be that the imported data contains dates that exceed the last 90-day period.

Unfortunately, this issue has no resolution as it is a policy enforced by Google Analytics. The platform only allows data uploads for a maximum period of the last 90 days.

The only viable option is to modify your imported file to include data with dates within the last 90-day timeframe, ensuring it does not exceed the data collected during that period.

Importing cost data for a campaign meant not to generate website traffic.

Even when all necessary configurations, mappings, and data fields are well configured, it is not uncommon to encounter zero data matches. In such cases, the issue may be attributed to factors related to the data file you’re importing.

Another potential cause to consider is that your imported data contains data from campaigns meant not to generate website traffic. Examples of such campaigns include lead generation campaigns, video awareness campaigns with no specific goal of driving traffic, or display awareness campaigns focused solely on brand exposure. 

This is not an issue per se, as Google Analytics requires certain matching keys to exist in the data collected to establish connections with your marketing data. 

Consequently, the campaign should have generated traffic to your website for successful data matching. If this criterion gets unfulfilled, importing the data into GA4 may not be appropriate.

Failure to Capture Campaign ID (utm_id) in GA4

One of the common and popular causes behind data mismatch in Google Analytics is the failure to collect the campaign ID (utm_id). This issue can affect both manual and SFTP data imports.

In your import file, the “campaign ID” corresponds to the “utm_id” component of the campaign tracking parameter in your UTM parameters. The problem does not lie in having the utm_id in your import file but rather in the absence of the “utm_id” within your campaign tracking parameters. It means the campaign destination pages recorded in GA4 do not include the utm_id and aren’t captured in GA4.

You can verify this by creating a simple exploration report. Include the session-scope campaign ID, session-scoped source, and medium as dimensions, and add “users” as a metric. 

To view a segment of the specific marketing vendor for which you want to import cost data into GA4, apply a filter to exclude Google Ads traffic or include only the relevant ads platform traffic. 

If “not set” is returned as the value for all campaign IDs, it indicates that previous traffic acquired through the ads platform was not properly tagged, leading to the omission of the “utm_id” parameter in the campaign tracking parameters within the landing page URLs.


If you are not currently utilizing the campaign ID, the only solution is to start incorporating this campaign parameter moving forward. You can do this by using a well-documented campaign tracking spreadsheet or third-party software. We have created a campaign URL tracking document for you on Dumbdata, which you can access here.

Once you begin including the campaign ID in your ads or marketing landing page URLs, you can proceed with importing your data from that point onwards.

If you can observe the values of the campaign ID, I recommend examining the following two reasons discussed in this article.

Discrepancies between the campaign ID (utm_id) from the vendor and the one measured in GA4

One possible reason for the data mismatch is the disparity between the campaign ID (utm_id) native to the vendor and the one recorded in GA4. The issue arises when the campaign ID you collect, which serves as an identifier within your ads platform, differs from the campaign ID captured for the ads traffic tracked in Google Analytics.

This misalignment can occur if you have been using a custom campaign ID specific to your business, resulting in a discrepancy with the ads platform’s native campaign ID.

To determine if this is the case, compare the campaign ID in the table you created with the entries in your marketing cost import file. If they do not match, two options are available to resolve this, which we’ll cover in the resolution section.


Two options exist for resolution, one of which is future-proof and eliminates the need for additional manual effort in future imports, though it is not retroactive. The other method requires extra manual action for each new marketing cost data import. Both methods can be applied simultaneously, and the impacts of using both approaches will also be outlined.

Method 1:

This approach involves using the ads platform’s campaign ID in your campaign tracking parameters going forward. Implementation may vary depending on the specific ad platform used. While this means you may not be able to achieve data matching with your current imported file, future uploads will no longer require extra manual effort. However, you can still utilize Method 2 for current imports and apply Method 1 for future uploads.

Method 2:

The second method aims to salvage the situation but only for the current moment and does not apply to future uploads. It requires manually transforming the ads platform’s native campaign ID into your business’s custom campaign ID using an internal identification method or the campaign name within the ads platform. All file fields should be from the ads platform during the export except for the campaign ID, which should utilize your business-owned “utm_id” that you’ve been adding to the ads destination landing page.

Using both methods means you can still import your current cost data. However, when reporting on the cost of non-Google campaigns, the cost and performance metrics may not accurately reflect the actual performance. This is because the previous import used the business-owned campaign ID instead of the platform’s native campaign ID, which recent uploads now utilize. Nevertheless, the impact is minimal unless you rely heavily on campaign ID (utm_id) for reporting purposes.

Inconsistency in Campaign Tracking Parameter Naming

One of the ways Google establishes the connection between your marketing cost and performance data and Google Analytics is through campaign tracking parameters. These parameters include essential elements such as:

  • Campaign ID (utm_id)
  • Campaign Source (utm_source)
  • Campaign Medium (utm_medium)
  • Campaign Name (utm_campaign) – optional but recommended

Errors and differences in naming these parameters can significantly impact the data-matching process when importing your non-Google campaign data into GA4 for cost and performance reporting.

According to Google’s documentation, it is recommended to ensure that the exported data aligns with (but does not exceed) the required, recommended, and optional dimensions and metrics:

  • ID [required]
  • Source [required]
  • Medium [required]
  • Date [required]
  • Name [optional, but recommended]
  • Cost (optional, but expected)
  • Clicks (optional)
  • Impressions (optional)

Thus, any inconsistency between the campaign parameters collected in GA4 and those present in the file exported from your advertising platform will likely impact the match rate of the imported cost data.

To identify if this is an issue, you can conduct a simple exploration by including all session-scoped campaign parameters and the “total users” metric. By comparing the values of the campaign parameters in GA4 with those in your exported file, you can determine if any changes exist. If inconsistencies are found, you can implement one or both of the methods discussed in the previous section to address the issue.

Incorrect Date Field Formatting According to GA4 Guidelines

One potential error is the incorrect formatting of the date field, which can prevent data matching and hinder the import of data into GA4.

According to Google’s documentation, the recommended date format for GA4 is ISO 8601: YYYY-MM-DD. It is crucial to review the date field in your exported file and ensure it adheres to this format, which signifies Year-Month-Day. Suppose your dataset does not comply with this date format. In that case, updating the file by modifying the date format using the “YYYY-MM-DD” format is necessary before proceeding with the import into Google Analytics.

Failure to Select Required Metrics for Data Import

Overlooking the inclusion of necessary performance metrics can result in incomplete non-Google campaign metrics for reporting within Google Analytics.

What does this error mean? It is a mistake that can occur in the creation process of the cost data source. After mapping the “Analytics Field” to their corresponding “import field,” it is possible to forget to select all the metrics included in the imported file. Consequently, these metrics will not get incorporated into your report.

To determine if you’ve made this mistake, access the created cost data source and navigate to the “mapping configuration.” 

Check the bottom section to verify if all the metrics are listed. If any metrics are missing, it is advisable to delete and recreate the data source while ensuring that all the required metrics are included this time. Please note that this action will remove previously imported cost data from Analytics reports.

Failure to Allow Sufficient Time for Data Processing

Suppose you had a complete or nearly complete match rate when importing the cost data, but the cost and performance metrics fail to appear in your Google Analytics report. In that case, it is likely because GA4 requires time to process the data. This delay occurs because, after uploading your data, it can take up to 24 hours for Analytics to make that data accessible in reports and explorations. It is crucial to allow this processing period before expecting the imported data to be fully available for analysis.


Finally, we’ve gone through the potential issues or mistakes that may arise when utilizing the Google Analytics cost data import feature for reporting on the cost and performance of non-Google Campaigns.

Each issue or mistake has been thoroughly addressed, and corresponding resolutions have been provided. We’ll make it our responsibility to update this article continuously and will continue to be updated as new issues are discovered. If you encounter any other problems not mentioned here, please feel free to reach out via LinkedIn. We are always open to adding new findings to the list.

You should consider subscribing to our newsletter if you found this blog post helpful, and stay informed about new posts, resources, and templates. Happy measuring, and thank you for reading!

You might also enjoy