{"id":3132,"date":"2026-09-23T11:21:41","date_gmt":"2026-09-23T11:21:41","guid":{"rendered":"https:\/\/dmarketertayeeb.com\/blog\/google-ads-multi-source-conversions-setup\/"},"modified":"2026-09-23T11:35:55","modified_gmt":"2026-09-23T11:35:55","slug":"google-ads-multi-source-conversions-setup","status":"publish","type":"post","link":"https:\/\/dmarketertayeeb.com\/blog\/google-ads-multi-source-conversions-setup\/","title":{"rendered":"Google Ads Multi-Source Conversions: Setup, Transaction IDs and the 14-Day Trial"},"content":{"rendered":"\n<p><a href=\"https:\/\/support.google.com\/google-ads\/answer\/16542291?hl=en\">Google Ads multi-source conversions<\/a> is a beta that links a backend data source to an eligible Google tag or Google Tag Manager website conversion action. Google matches the upload to the tag event by the exact <code>transaction_id<\/code> inside that same conversion action. A match can add missing user data; an uploaded value and currency can replace the tag\u2019s value after a 14-day reporting-only trial. Unmatched rows may create new conversions, and those extra-source conversions become biddable after the trial. Your existing tag conversions stay biddable throughout.<\/p>\n\n\n\n<p>Use this guide to check eligibility, map the data, connect one authoritative source and inspect diagnostics before the new source reaches bidding. It is separate from choosing a measurement approach; for that broader decision, see our <a href=\"https:\/\/dmarketertayeeb.com\/blog\/google-ads-measurement-stack-attribution-incrementality-mmm\/\">Google Ads measurement stack guide<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Who can use multi-source conversions?<\/h2>\n\n\n\n<p>Google\u2019s <a href=\"https:\/\/support.google.com\/google-ads\/answer\/16542291?hl=en\">current beta guide<\/a> limits multi-source connections to Google Ads website conversion actions implemented manually with the Google tag or Google Tag Manager. Imported Google Analytics 4 conversion actions and URL-based conversion actions are not supported. If the setting is missing, Google says the beta may not yet be available to that account; its Help pages do not publish a region-by-region rollout list.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\" style=\"min-width: 640px;\"><thead><tr><th>Question<\/th><th>Current documented answer<\/th><th>What to check first<\/th><\/tr><\/thead><tbody>\n<tr><td>Conversion type<\/td><td>Manually implemented Google Ads website conversion using the Google tag or GTM<\/td><td>Confirm the source is a website tag action, not an imported GA4 or URL-based action<\/td><\/tr>\n<tr><td>Backend source<\/td><td>One additional offline source per website action in the Data Manager UI<\/td><td>Combine CRM, order-system or other backend records into one authoritative feed before connecting<\/td><\/tr>\n<tr><td>Account access<\/td><td>Beta access varies; Data Manager API access to connect the extra source is allowlisted<\/td><td>Try a documented UI connection first; confirm API eligibility before building an integration<\/td><\/tr>\n<tr><td>Deduplication<\/td><td>Matching occurs within the conversion action receiving the source<\/td><td>Attach the source to the existing action where possible; avoid counting the old and new actions together in campaign goals<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Google recommends adding the source to an existing conversion action. If you create a replacement action, Google does not deduplicate across the two actions. Including both in the same campaign goal can count one transaction twice. The match key solves tag-versus-backend duplication only within the linked action.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prepare the data contract before connecting<\/h2>\n\n\n\n<p>Start with a single backend export or connection that represents the complete set of relevant transactions. Google\u2019s <a href=\"https:\/\/support.google.com\/google-ads\/answer\/16542291?hl=en\">data requirements<\/a> recommend an authoritative CRM, order database or ecommerce backend rather than another tag-based analytics export. Create a field map with your developer or data owner before you accept a schedule.<\/p>\n\n\n\n<p>Google says customer-provided data sent without hashing will be hashed automatically, and previously hashed data is accepted. That does not replace your consent and data-handling checks: map the relevant consent for each row, minimize what you send, and follow your organisation\u2019s rules before exporting customer identifiers.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\" style=\"min-width: 640px;\"><thead><tr><th>Field<\/th><th>Requirement and implementation check<\/th><\/tr><\/thead><tbody>\n<tr><td>Transaction ID<\/td><td>Required and unique for each conversion. It must exactly match the value your tag sends, including prefixes, capitalization, type and leading zeros. The tag uses <code>transaction_id<\/code>; the Data Manager UI labels it Transaction ID; the Data Manager API event uses <code>transactionId<\/code>.<\/td><\/tr>\n<tr><td>Conversion date and time<\/td><td>Required. Send the conversion time, not the upload time. Decide how the source handles timezone and ask the UI owner to set a fallback timezone for rows with no zone.<\/td><\/tr>\n<tr><td>Attribution identifier<\/td><td>At least one is required: for example GCLID, GBRAID, WBRAID, or user-provided data such as email or phone. Google recommends both hashed user-provided data and GCLID when available. If none of the listed identifiers is mapped, the Help flow requires address fields.<\/td><\/tr>\n<tr><td>Value and currency<\/td><td>Map them when revenue matters to reporting or value-based bidding. Use the same currency and units as the tag: dollars as decimal dollars, not integer cents. A value of <code>0<\/code> is valid for a full refund; send <code>NULL<\/code> when you do not intend to update a value.<\/td><\/tr>\n<tr><td>Consent<\/td><td>Map row-level <code>ad_user_data<\/code> and <code>ad_personalisation<\/code> where applicable. Only consented events supplement conversion data; rows without consent fields fall back to account-level defaults. Apply <a href=\"https:\/\/support.google.com\/google-ads\/answer\/13695607?hl=en\">Google\u2019s consent requirements<\/a> for the user\u2019s region and your data collection.<\/td><\/tr>\n<tr><td>Optional context<\/td><td>User agent and session attributes can add context. Include them only when your systems capture them correctly and your data policy permits the use.<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>The 24-hour guidance is a recommendation, not a hard cutoff: Google\u2019s <a href=\"https:\/\/support.google.com\/google-ads\/answer\/16542291?hl=en\">data-source best practices<\/a> say to upload as soon as practical, ideally within 24 hours, for optimal matching and bidding signals. A slower feed is not automatically invalid, but it can reduce the usefulness of delayed user data. Do not treat a late upload as permission to send stale or unconsented records.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Connect the backend source<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Option 1: Add it from the conversion action<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In Google Ads, open <strong>Conversions \u2192 Summary<\/strong>.<\/li>\n<li>Open the eligible website conversion action. In <strong>Details<\/strong>, find <strong>Data source<\/strong> and choose <strong>Connect another data source<\/strong>.<\/li>\n<li>Select a supported direct connection, link the product and map the required event fields. The transaction ID and conversion time must align with what the website tag sends.<\/li>\n<li>Map at least one attribution identifier, review value and currency units, and set the consent fields for each row. Add optional user-agent or session attributes only if available and approved.<\/li>\n<li>Review the mapped source, choose how often it should import, and save. Google recommends importing as frequently as possible, such as daily.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Option 2: Start in Data Manager<\/h3>\n\n\n\n<p>Google\u2019s documented path is <strong>Tools \u2192 Data Manager \u2192 + Connected products<\/strong> under the Google tag section. Connect a source for <strong>Conversions<\/strong>, choose <strong>Website conversion measurement<\/strong>, select the website conversion action and complete the same field, consent and schedule review. The exact available connectors depend on the account and selected product.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Option 3: Use the Data Manager API<\/h3>\n\n\n\n<p>Google recommends a direct Data Manager connection when the option is available. The API route for connecting an additional multi-source feed is limited to allowlisted access. Google\u2019s setup instructions say to take the <code>ctId<\/code> value from the conversion-action URL and use that action as the API destination. The API event field is named <code>transactionId<\/code>; the tag parameter is <code>transaction_id<\/code>. Follow the current <a href=\"https:\/\/developers.google.com\/data-manager\/api\/devguides\/events\/google-ads\/online\">Google Ads multi-source API guide<\/a> and its <a href=\"https:\/\/developers.google.com\/data-manager\/api\/devguides\/events\/send-events\">Send events schema and samples<\/a> rather than adapting an older Google Ads API upload request by guesswork.<\/p>\n\n\n\n<p>These setup paths are based on Google\u2019s current documentation and were not executed in a live Ads account. Beta visibility, available connections and account permissions can differ.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What a matching transaction ID changes<\/h2>\n\n\n\n<p>A transaction ID is a match key, not a promise that every uploaded field overwrites the tag. Google\u2019s <a href=\"https:\/\/support.google.com\/google-ads\/answer\/16542291?hl=en\">field-handling rules<\/a> differ by match status and field:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\" style=\"min-width: 640px;\"><thead><tr><th>Upload row<\/th><th>What Google documents<\/th><th>Practical implication<\/th><\/tr><\/thead><tbody>\n<tr><td>ID matches a tag event: user-provided data<\/td><td>Supplemented only when the tag did not capture user-provided data<\/td><td>Send a reliable backend value as a fallback; do not assume it replaces an existing tag value<\/td><\/tr>\n<tr><td>ID matches a tag event: conversion value and currency<\/td><td>Uploaded value and currency become the source of truth and override the tag after the trial; value updates are disabled during the trial<\/td><td>Validate units, currency and refund handling before the first upload<\/td><\/tr>\n<tr><td>ID matches a tag event: GCLID or other non-value fields<\/td><td>Ignored for the matched record; they do not replace the fields originally recorded by the tag<\/td><td>Do not expect a backend GCLID to repair a missing or incorrect tag GCLID on an already matched event<\/td><\/tr>\n<tr><td>ID has no tag match<\/td><td>May create a new conversion event; Google attempts ad attribution using supplied identifiers<\/td><td>Check unmatched IDs for a genuinely missing tag event versus a formatting error; these new-source events are report-only during the trial<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>The most consequential field is value. Once the trial ends, a matched backend value can permanently replace the value from the tag. For example, if the tag records <code>USD 120.00<\/code> and the backend sends <code>12000<\/code> as cents, Google interprets the upload in the configured currency units rather than converting it. The upload could inflate the reported value by 100 times. Use the same decimal units and currency as the tag; use <code>NULL<\/code> when no value change is intended.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Use the 14-day trial as a QA window<\/h2>\n\n\n\n<p>The <a href=\"https:\/\/support.google.com\/google-ads\/answer\/17111689?hl=en-GB\">14-day trial<\/a> begins when the first additional-source upload arrives for the conversion action. During that period, extra-source data is visible for reporting and diagnostics, but it is not used for bidding. Existing tag-source conversions remain biddable, and backend value updates do not override tag values in reporting until the trial ends.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\" style=\"min-width: 640px;\"><thead><tr><th>Period<\/th><th>Additional source<\/th><th>Existing Google tag<\/th><\/tr><\/thead><tbody>\n<tr><td>Before first upload<\/td><td>No additional-source trial data yet<\/td><td>Continues under the existing conversion setup<\/td><\/tr>\n<tr><td>First upload through day 14<\/td><td>Reporting and diagnostics only; not used for bidding; value updates disabled<\/td><td>Existing tag conversions remain biddable<\/td><\/tr>\n<tr><td>After 14 days<\/td><td>Valid additional-source conversions automatically become biddable, even if diagnostic alerts remain<\/td><td>Continues as before<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>That automatic transition makes the first upload a change-control point. Before scheduling it, reconcile a sample of transaction IDs between the tag and backend, check values and currency, verify consent mapping, and make sure unmatched records are intentional. Use the trial to fix setup issues; do not assume an alert will pause bidding after day 14.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Read diagnostics before the trial ends<\/h2>\n\n\n\n<p>Open <strong>Goals \u2192 Summary \u2192 Diagnostics<\/strong>, find the <strong>Multi-source conversions<\/strong> card and choose <strong>View details<\/strong>. Google\u2019s <a href=\"https:\/\/support.google.com\/google-ads-data-manager\/answer\/16288216?hl=en\">diagnostics guide<\/a> points to a short set of checks:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Fewer than 10% of transaction IDs matched over the last two days:<\/strong> compare the raw tag and backend IDs. Check prefixes or suffixes (<code>order-123<\/code> versus <code>123<\/code>), letter case, string versus decimal formatting, leading zeros, placeholder values and whether the tag sends an ID on every conversion event.<\/li>\n<li><strong>Missing or invalid transaction ID:<\/strong> inspect tag coverage on each conversion path as well as the mapped backend field. A correct ID in the CRM does not help if the website tag omits it.<\/li>\n<li><strong>Conversion values differ by more than 10x over the last two days:<\/strong> compare currency codes and units first, then review refund or final-value logic. A diagnostic is a signal to investigate the feed, not a verdict that a campaign or attribution model is broken.<\/li>\n<li><strong>Offline data not found:<\/strong> check that the source connection still exists, credentials and sharing permissions remain valid, and the scheduled import is running.<\/li>\n<\/ul>\n\n\n\n<p>Google\u2019s diagnostic thresholds help identify likely setup errors; they are not a guaranteed match rate or an independent measurement of business performance. After day 14, uploaded conversions can become biddable automatically even if an alert remains, so assign an owner to review the card before the trial expires.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Keep this separate from the June Data Manager API migration<\/h2>\n\n\n\n<p>The multi-source beta is about joining backend events to an eligible Google tag\/GTM website conversion action. A different Google change took effect on June 15, 2026: Google\u2019s <a href=\"https:\/\/developers.google.com\/google-ads\/api\/docs\/deprecations\">API deprecations page<\/a> records restricted legacy offline-conversion uploads for developer tokens with no upload requests between December 17, 2025 and June 15, 2026, and directs affected workflows toward Data Manager API. That change concerns legacy offline-conversion and Enhanced Conversions for Leads uploads; it is not the multi-source beta launch and does not mean every existing importer was shut off. Google\u2019s current deprecations page also notes that developer tokens have since been superseded by Google Cloud projects.<\/p>\n\n\n\n<p>If you are migrating a legacy <code>UploadClickConversions<\/code> or Enhanced Conversions for Leads pipeline, follow Google\u2019s separate <a href=\"https:\/\/developers.google.com\/google-ads\/api\/docs\/deprecations\">Google Ads API deprecation guidance<\/a> and <a href=\"https:\/\/support.google.com\/google-ads\/answer\/15713840?hl=en\">Enhanced Conversions for Leads update instructions<\/a>. If your job is supplementing a website tag with backend events, use the multi-source documentation and confirm that the account is eligible for the beta\/API connection.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Does the 14-day trial pause my existing tag conversions?<\/h3>\n\n\n\n<p>No. The trial applies to the additional source. Existing Google tag conversions remain biddable; additional-source data is for reporting and diagnostics during the trial.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I connect an imported GA4 conversion or URL-based action?<\/h3>\n\n\n\n<p>No. Google\u2019s current beta documentation limits the connection to manually implemented Google Ads website conversion actions using the Google tag or Google Tag Manager.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I attach several backend systems to one action?<\/h3>\n\n\n\n<p>The current Data Manager UI FAQ says one additional offline source can be connected to a website conversion action. Merge the systems into one authoritative feed before connecting; do not create parallel conversion actions in the same campaign goal as a workaround.<\/p>\n\n\n\n<p><em>Search Engine Land reported the beta on June 18, 2026; that coverage date is not an account-specific availability date. Google\u2019s current Help and Data Manager API pages define the setup and field behavior, and the API multi-source guide lists a September 21, 2026 documentation update. Account availability and supported connections can vary. This guide explains the documented workflow and does not report a live account test.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Official references<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/support.google.com\/google-ads\/answer\/16542291?hl=en\">Multi-source conversions in Google Ads (beta)<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/google-ads\/answer\/17111689?hl=en-GB\">FAQs about Google Ads multi-source conversions (beta)<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/google-ads-data-manager\/answer\/16288216?hl=en\">Fix diagnostic alerts for multi-source conversions<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/data-manager\/api\/devguides\/events\/google-ads\/online\">Google Ads multi-source conversions API guide<\/a> and <a href=\"https:\/\/developers.google.com\/data-manager\/api\/devguides\/events\/send-events\">Send events field reference and samples<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/google-ads\/answer\/13695607?hl=en\">Google Ads consent-mode requirements for EEA traffic<\/a> and <a href=\"https:\/\/support.google.com\/google-ads\/answer\/16147066?hl=en\">consent-signal verification<\/a><\/li>\n<li><a href=\"https:\/\/searchengineland.com\/google-ads-launches-beta-for-supplemental-conversion-data-480606\">Search Engine Land\u2019s June 18 beta report<\/a> and its <a href=\"https:\/\/searchengineland.com\/google-ads-lets-offline-uploads-fill-gaps-in-tag-based-conversions-490017\">September 21 field-handling explainer<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Set up Google Ads multi-source conversions safely: check eligibility, match transaction IDs, map values and consent, and QA the 14-day trial before bidding.<\/p>\n","protected":false},"author":1,"featured_media":3131,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[177,233],"tags":[438,373,448,235],"class_list":["post-3132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-marketing","category-google-ads","tag-conversion-tracking","tag-google-ads","tag-marketing-measurement","tag-ppc","has-featured-image"],"_links":{"self":[{"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/posts\/3132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/comments?post=3132"}],"version-history":[{"count":2,"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/posts\/3132\/revisions"}],"predecessor-version":[{"id":3134,"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/posts\/3132\/revisions\/3134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/media\/3131"}],"wp:attachment":[{"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/media?parent=3132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/categories?post=3132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dmarketertayeeb.com\/blog\/wp-json\/wp\/v2\/tags?post=3132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}