{"id":12866,"date":"2026-09-01T06:30:00","date_gmt":"2026-09-01T04:30:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=12866"},"modified":"2026-10-24T05:04:52","modified_gmt":"2026-10-24T03:04:52","slug":"ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/","title":{"rendered":"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report"},"content":{"rendered":"<p>Reliable campaign comparisons in GA4 require suitable cost data, an unambiguous currency and correctly linked visitor activity. Between 28 July and 10 August 2026, Google added three features: currency specification for cost imports, diagnostics for missing Google advertising identifiers, and a validation report for imported campaign data.<\/p><p><strong>These features check different problems.<\/strong> The identifier diagnostic concerns Google advertising traffic. Campaign data import combines external costs, clicks and impressions with Analytics data. The validation report specifically makes missing joins visible.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/quality-12866-20261024.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Three separate GA4 checks: currency in cost imports, Google URL identifiers and the join status of imported campaign data\"><figcaption>Currency, Google identifiers and import joins require separate checks. A successful upload does not establish complete matching.<\/figcaption><\/figure>\n<h2>Currency is required when importing cost<\/h2><p>Since the 28 July update, imports containing cost require an ISO 4217 currency, such as <code>EUR<\/code> or <code>PLN<\/code>. The currency can come from a mapped source column or a fixed value for the whole import. A fixed value is suitable only when every amount actually uses that currency; the number of target markets is not the deciding factor.<\/p><p>GA4 handles conversion for aligned reporting. According to the release note, existing imports continue to assume that costs match the current property currency. Older imports therefore deserve particular attention when the property currency changes. A valid currency code does not prove that the amount was labelled correctly.<\/p>\n<h2>Google identifiers are not UTM import keys<\/h2><p>The 30 July diagnostic flags problems with stripped <code>gbraid<\/code> and <code>gad_*<\/code> parameters. These aggregate identifiers support campaign attribution when standard Google click identifiers cannot be used. GBRAID does not identify an individual person or event. <code>gad_source<\/code> identifies an advertising source, while <code>gad_campaignid<\/code> identifies a campaign.<\/p><p>The alert lists problematic URLs, without necessarily establishing which redirect removed a parameter. A controlled comparison of the starting URL, redirects and final URL when tags load helps locate the cause. Missing identifiers can lead to \u201corganic\u201d or \u201c(not set)\u201d attribution. A working UTM import does not repair this separate Google attribution path. Diagnostics may take up to 48 hours to reflect a fix.<\/p>\n<h2>Which values must match for an import<\/h2><p>Source, medium and date are required dimensions. Campaign ID and campaign name are optional but recommended, and must be supplied consistently when used. At least one metric\u2014clicks, cost or impressions\u2014is required. Values must agree with the recorded Analytics dimensions; <code>Facebook<\/code> and <code>facebook<\/code>, for example, differ. The date must not be omitted from the comparison.<\/p><p>A simplified example for an external campaign:<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"plain\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Text<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-plain\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\">URL:\n<\/span><span class=\"cbb-line\">\/offer?utm_source=partner&amp;utm_medium=cpc&amp;utm_id=fall_26&amp;utm_campaign=Autumn\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">Import row; field names need mapping in the import configuration:\n<\/span><span class=\"cbb-line\">utm_source,utm_medium,date,utm_id,utm_campaign,currency,cost,clicks\n<\/span><span class=\"cbb-line\">partner,cpc,2026-10-20,fall_26,Autumn,EUR,120.00,80\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">Expected: matching source, medium and day\n<\/span><span class=\"cbb-line\">          plus consistent campaign fields where used\n<\/span><span class=\"cbb-line\">Check: 120 EUR cost \/ 80 clicks = 1.50 EUR per click<\/span><\/code><\/pre><\/figure>\n<p>The example does not invent Google identifiers for an external platform. Meaningful reconciliation also requires aligned day boundaries and date ranges. Duplicate keys within a file and overlapping import sources can distort results.<\/p>\n<h2>What the validation report actually shows<\/h2><p>The report released on 10 August is under <em>Reports \u2192 Data import \u2192 Campaign data import validation<\/em>. An Editor or higher role can restore the report to navigation if the entry is missing. The default view is session-scoped and filtered to paid manual campaigns; filters and selected dimensions therefore need checking during analysis.<\/p>\n<table><thead><tr><th>Status<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td>Joined<\/td><td>Imported campaign data was linked to Analytics data.<\/td><\/tr><tr><td>No campaign data<\/td><td>Imported campaign data is absent for the selected dimension or did not join correctly.<\/td><\/tr><tr><td>No Analytics data<\/td><td>Imported data has no matching Analytics activity and is reported separately.<\/td><\/tr><\/tbody><\/table>\n<p>A failed match therefore does not automatically erase imported cost. A missing or zero denominator also does not establish a meaningful infinite ROAS. ROAS is attributed revenue divided by advertising cost; missing cost makes the comparison unreliable. Cost per click, by contrast, divides cost by clicks, both of which may come from the advertising platform.<\/p>\n<h2>Three rates answer different questions<\/h2><ul><li><strong>% imported:<\/strong> the proportion of rows successfully imported.<\/li><li><strong>Match rate:<\/strong> the proportion of imported rows linked to Analytics data, considering the most recent two years of imported data.<\/li><li><strong>Coverage rate:<\/strong> successfully joined rows divided by the considered rows containing Analytics data in the validation report.<\/li><\/ul><p>A 100% successful upload does not guarantee 100% coverage. High coverage does not establish accurate billing amounts or currencies either. Row-based rates are not budget-weighted: one unmatched large campaign can matter more financially than many small matches.<\/p>\n<div class=\"lw-faq\"><h2>Questions and answers<\/h2><h3>Is checking one known campaign enough?<\/h3><p>A sample is useful but cannot replace reconciliation by platform, day and campaign. Total cost, clicks and impressions also need comparison with the source, alongside import status, joins and filters. GA4 can take up to 24 hours to make an upload available. A round cost amount is not itself evidence of an error.<\/p><h3>Do URL-encoded values automatically cause mismatches?<\/h3><p>No. The relevant values are the recorded dimensions after URL processing, not the raw URL text. For example, <code>Autumn%20Sale<\/code> can be recorded as <code>Autumn Sale<\/code>. Spaces, case and encoding need comparison between the import and recorded values; indiscriminate re-encoding can introduce new errors.<\/p><\/div>\n<div class=\"lw-quellen\"><h2>Sources<\/h2><ul><li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics developer guide<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/9164320?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics: Release notes<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/10071305?hl=en\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics: Import campaign data<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/17231531\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics: Campaign data import validation report<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/16479993\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics: Aggregate identifiers<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/16973975\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics: Parameter stripping diagnostics<\/a><\/li><li><a href=\"https:\/\/support.google.com\/analytics\/answer\/9796179\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics: Currency reference<\/a><\/li><\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>GA4\u2019s 2026 updates address three separate checks: currency for imported cost, missing Google advertising identifiers and campaign-data joins. The validation report shows unmatched data; upload success alone does not establish correct costs or complete coverage.<\/p>\n","protected":false},"author":1,"featured_media":18786,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[91297,91288,91258],"class_list":["post-12866","post","type-post","status-publish","format-standard","hentry","category-digital-analytics","tag-data-quality","tag-google-ads","tag-google-analytics-4"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"What GA4&#039;s campaign data import checks since summer 2026, why the join key and the currency field decide whether an imported cost figure means anything, and what the validation report does not cover.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"What GA4&#039;s campaign data import checks since summer 2026, why the join key and the currency field decide whether an imported cost figure means anything, and what the validation report does not cover.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-01T04:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-24T03:04:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report\",\"datePublished\":\"2026-09-01T04:30:00+00:00\",\"dateModified\":\"2026-10-24T03:04:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/\"},\"wordCount\":799,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png\",\"keywords\":[\"Data Quality\",\"Google Ads\",\"Google Analytics 4\"],\"articleSection\":[\"Digital Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/\",\"name\":\"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png\",\"datePublished\":\"2026-09-01T04:30:00+00:00\",\"dateModified\":\"2026-10-24T03:04:52+00:00\",\"description\":\"What GA4's campaign data import checks since summer 2026, why the join key and the currency field decide whether an imported cost figure means anything, and what the validation report does not cover.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png\",\"width\":1200,\"height\":630,\"caption\":\"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report | Lukas Wojcik","description":"What GA4's campaign data import checks since summer 2026, why the join key and the currency field decide whether an imported cost figure means anything, and what the validation report does not cover.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/","og_locale":"en_US","og_type":"article","og_title":"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report | Lukas Wojcik","og_description":"What GA4's campaign data import checks since summer 2026, why the join key and the currency field decide whether an imported cost figure means anything, and what the validation report does not cover.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-01T04:30:00+00:00","article_modified_time":"2026-10-24T03:04:52+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report","datePublished":"2026-09-01T04:30:00+00:00","dateModified":"2026-10-24T03:04:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/"},"wordCount":799,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png","keywords":["Data Quality","Google Ads","Google Analytics 4"],"articleSection":["Digital Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/","name":"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png","datePublished":"2026-09-01T04:30:00+00:00","dateModified":"2026-10-24T03:04:52+00:00","description":"What GA4's campaign data import checks since summer 2026, why the join key and the currency field decide whether an imported cost figure means anything, and what the validation report does not cover.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-12866-ga4-cost-data-import-mandatory-curre-k.png","width":1200,"height":630,"caption":"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-cost-data-import-mandatory-currency-new-diagnostic-validation-report\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GA4 Cost Data Import: Mandatory Currency, New Diagnostic, Validation Report"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=12866"}],"version-history":[{"count":6,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12866\/revisions"}],"predecessor-version":[{"id":23746,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12866\/revisions\/23746"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/18786"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=12866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=12866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=12866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}