{"id":66582,"date":"2025-02-03T20:08:38","date_gmt":"2025-02-03T20:08:38","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/google-ads-conversion-tracking-with-server-side-tagging-in-google-tag-manager\/"},"modified":"2025-02-03T20:08:38","modified_gmt":"2025-02-03T20:08:38","slug":"google-ads-conversion-tracking-with-server-side-tagging-in-google-tag-manager","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=66582","title":{"rendered":"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>One of the biggest blockers for <a href=\"https:\/\/tagmanager.google.com\/\">Google Tag Manager\u2019s<\/a> <a href=\"https:\/\/www.simoahava.com\/analytics\/server-side-tagging-google-tag-manager\/\">server-side tagging<\/a> to slip out of <em>beta<\/em> is <strong>Google Ads<\/strong>. Until server-side tagging supports a solution for both <strong>conversions<\/strong> and <strong>remarketing<\/strong> capabilities to be reproduced server-side, it\u2019s unlikely that Server containers will lose their beta label.<\/p>\n<div style=\"aspect-ratio: 1104 \/ 678;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/07\/google-ads-server-side-tagging-google-tag-manager.jpg\" title=\"google-ads-server-side-tagging-google-tag-manager.jpg\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"678\" width=\"1104\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/07\/google-ads-server-side-tagging-google-tag-manager.jpg#ZgotmplZ\" alt=\"google-ads-server-side-tagging-google-tag-manager.jpg\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>While I can\u2019t say what will happen to the beta label now, the fact is that Google Tag Manager <strong>has now released support for Conversion tracking<\/strong> using server-side tagging.<\/p>\n<p>The whole thing is quite \u2026 interesting, as it involves not just <strong>server-to-vendor<\/strong> calls, but also <strong>browser-to-server-to-browser-to-vendor<\/strong> requests. Why? Maybe you guessed it: <em>third-party cookies<\/em>.<\/p>\n<p>In this article, I\u2019ll show you how to set things up (surprisingly simple), and I\u2019ll also try to shed some light on how the whole setup actually works (surprisingly difficult).<\/p>\n<p>Here is the official documentation on Google Ads and Server-side Tagging: <a href=\"https:\/\/developers.google.com\/tag-manager\/serverside\/ads-setup\">Google Ads conversions (Google)<\/a>.<\/p>\n<p>                <span class=\"simmer\"><br \/>\n  <span class=\"close\">X<\/span><\/p>\n<p>\n    <span class=\"fa fa-md fa-bell\"\/><br \/>\n    <strong>The Simmer Newsletter<\/strong>\n  <\/p>\n<p>\n    Subscribe to the <a href=\"https:\/\/www.simoahava.com\/newsletter\/\">Simmer newsletter<\/a> to get the latest news and content from Simo Ahava into your email inbox!\n  <\/p>\n<p>  <\/span><\/p>\n<h2 id=\"the-components-youll-need\">The components you\u2019ll need<\/h2>\n<p>In the <strong>web container<\/strong>, you need to reconfigure the <strong>Google Analytics 4<\/strong> Config tag to send the data to the Server container using the new <strong>Send to server container<\/strong> option. This replaces the <code>transport_url<\/code> setting you\u2019ll have used until now.<\/p>\n<blockquote>\n<p><strong>Note!<\/strong> Server-side tagging with Google Ads <em>only works with Google Analytics 4<\/em>. It will <strong>not<\/strong> work with Universal Analytics tags.<\/p>\n<\/blockquote>\n<p>The point here is that you\u2019ll use your GA4 web tag(s) to send the conversion events to the Server container, where they will then be mapped accordingly.<\/p>\n<p>In the <strong>Server<\/strong> container, you\u2019ll need these two tags:<\/p>\n<ul>\n<li>A <strong>Conversion Linker<\/strong> tag for sending the landing page beacons to Google as well as for writing the first-party cookies with the ad click information.<\/li>\n<li><strong>Google Ads Conversion Tracking<\/strong> tag(s) for tracking the conversions themselves.<\/li>\n<\/ul>\n<p>Both of these are new, built-in tag templates in all Server containers.<\/p>\n<p>Let\u2019s start from the top.<\/p>\n<h2 id=\"web-update-the-ga4-config-tag\">Web: Update the GA4 Config tag<\/h2>\n<p>For the Google Ads setup to work, you\u2019ll need to update the <strong>Google Analytics: GA4 Configuration<\/strong> tag to use the new <strong>Send to server container<\/strong> setting, and you\u2019ll need to <strong>remove<\/strong> the <code>transport_url<\/code> field.<\/p>\n<div style=\"aspect-ratio: 1788 \/ 1254;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/send-to-server-container.jpg\" title=\"Send to server container\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1254\" width=\"1788\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/send-to-server-container.jpg#ZgotmplZ\" alt=\"Send to server container\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>You need to populate the <strong>Send to server container<\/strong> setting with the exact same value you populated <code>transport_url<\/code> with: the <em>origin<\/em> of the Server container, i.e. the URL up to the path selector. See the image above for an example.<\/p>\n<h3 id=\"how-it-works\">How it works<\/h3>\n<p>When you set the new <strong>Send to server container<\/strong> setting, it does two things.<\/p>\n<ol>\n<li>It sets the <code>transport_url<\/code> to point to the Server container.<\/li>\n<li>It sets the <code>first_party_collection<\/code> field to <code>true<\/code>.<\/li>\n<\/ol>\n<p>The second is quite important in this scenario. The purpose of the field is to tell GA4 (in the web) that the target machine is <strong>not<\/strong> a computer owned by Google Analytics. This means that it enables the protocol to share potentially sensitive data, as the Server container is something owned by the company running the website (hopefully) and not Google Analytics.<\/p>\n<p>When <code>first_party_collection<\/code> is enabled, GA4 will use a new protocol that allows the Server container to communicate <em>back<\/em> to the browser.<\/p>\n<div style=\"aspect-ratio: 2336 \/ 220;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/07\/server-conversion-response.jpg\" title=\"Response back from the server using the new protocol\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"220\" width=\"2336\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/07\/server-conversion-response.jpg#ZgotmplZ\" alt=\"Response back from the server using the new protocol\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This protocol is essentially a response message, which is then parsed by the GA4 web tags, and they will react accordingly (e.g. send the request to the <strong>DoubleClick domain<\/strong> as in the example above).<\/p>\n<p>We\u2019ll return to this topic, but suffice to say this is done <em>because Conversion Tracking still makes use of <strong>third-party cookies<\/strong><\/em>.<\/p>\n<h2 id=\"server-create-a-conversion-linker-tag\">Server: Create a Conversion Linker tag<\/h2>\n<p>In the <strong>Server container<\/strong>, create a new Conversion Linker tag. You\u2019ll find it in the list of built-in tag templates.<\/p>\n<div style=\"aspect-ratio: 1846 \/ 1042;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/conversion-linker.jpg\" title=\"Conversion Linker\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1042\" width=\"1846\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/conversion-linker.jpg#ZgotmplZ\" alt=\"Conversion Linker\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>There\u2019s a new built-in trigger called <strong>All Pages<\/strong> in the Server container. Add that to the tag, as you\u2019ll want the Conversion Linker to activate on all pages.<\/p>\n<p>The <strong>All Pages<\/strong> trigger fires whenever there\u2019s an event named <code>page_view<\/code> generated by a Server container Client.<\/p>\n<h3 id=\"how-it-works-1\">How it works<\/h3>\n<p>The Conversion Linker tag does two things.<\/p>\n<ol>\n<li>It sends a <strong>landing page beacon<\/strong> to the Google Ads server.<\/li>\n<li>If the page URL has the <code>gclid<\/code> parameter, or if there are Google Ads\u2019 first-party cookies in the request, the tag will set the new <code>FPGCLAW<\/code> cookie in the response, writing the click ID to storage.<\/li>\n<\/ol>\n<div style=\"aspect-ratio: 1806 \/ 586;\" class=\"figure \">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/landing-page-beacon.jpg\" title=\"The landing page beacon sent to Google Ads servers\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"586\" width=\"1806\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/landing-page-beacon.jpg#ZgotmplZ\" alt=\"The landing page beacon sent to Google Ads servers\"\/><\/p>\n<p>    <\/a><\/p>\n<p>    <span class=\"caption\">The landing page beacon sent to Google Ads servers<\/span><\/p>\n<\/div>\n<p>The landing page beacon is very non-descript. It\u2019s just a ping to Google Ads with the current URL. Naturally, the URL might contain the <code>gclid<\/code> parameter, so I\u2019m guessing this is used to validate clicks on ads.<\/p>\n<div style=\"aspect-ratio: 1924 \/ 70;\" class=\"figure \">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/fpgclaw-cookie.jpg\" title=\"The FPGCLAW cookie written with a 3-month expiration\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"70\" width=\"1924\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/fpgclaw-cookie.jpg#ZgotmplZ\" alt=\"The FPGCLAW cookie written with a 3-month expiration\"\/><\/p>\n<p>    <\/a><\/p>\n<p>    <span class=\"caption\">The FPGCLAW cookie written with a 3-month expiration<\/span><\/p>\n<\/div>\n<p>The <code>FPGCLAW<\/code> cookie seems to just replicate the pre-existing Google Ads cookies in that it writes the Google Ads Click ID into a first-party cookie. Naturally, as it\u2019s done in a <code>Set-Cookie<\/code> server response, it\u2019s better warded against <a href=\"https:\/\/www.cookiestatus.com\/\">tracking protections<\/a>.<\/p>\n<h2 id=\"server-create-a-google-ads-conversion-tracking-tag\">Server: Create a Google Ads Conversion Tracking tag<\/h2>\n<p>Next, you can go ahead and create a <strong>Google Ads Conversion Tracking<\/strong> tag in the server. You configure it exactly as you would configure the same tag in a web container.<\/p>\n<div style=\"aspect-ratio: 1862 \/ 2094;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/google-ads-conversion-tag.jpg\" title=\"Google Ads Conversion tag\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"2094\" width=\"1862\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/google-ads-conversion-tag.jpg#ZgotmplZ\" alt=\"Google Ads Conversion tag\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Set it to fire on whatever trigger you want to use for this particular conversion. In the example above, I\u2019m using an <code>add_to_cart<\/code> event generated by the GA4 Client.<\/p>\n<h3 id=\"how-it-works-2\">How it works<\/h3>\n<p>This is where things get interesting.<\/p>\n<p>If there\u2019s a first-party click ID available, such as the one stored in <code>FPGCLAW<\/code> by the Conversion Linker tag, the Server container sends the conversion event directly to Google Ads servers.<\/p>\n<div style=\"aspect-ratio: 1790 \/ 582;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/google-ads-conversion.jpg\" title=\"Google Ads Conversion hit\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"582\" width=\"1790\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/google-ads-conversion.jpg#ZgotmplZ\" alt=\"Google Ads Conversion hit\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This is a \u201cnormal\u201d Google Ads Conversion request. It contains the conversion ID, the conversion label, and the Click ID in the <code>gclaw<\/code> parameter, among other things.<\/p>\n<p>But when you then look at the <em>response<\/em> back from the Google server, you\u2019ll see it\u2019s a 302 redirect to the DoubleClick domain.<\/p>\n<div style=\"aspect-ratio: 1780 \/ 914;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/conversion-doubleclick.jpg\" title=\"Conversion DoubleClick\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"914\" width=\"1780\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/conversion-doubleclick.jpg#ZgotmplZ\" alt=\"Conversion DoubleClick\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Why? Because the Google Ads Conversion tag needs to communicate with the DoubleClick domain to stitch the conversion information with the user\u2019s identity, and this requires DoubleClick to read its cookies in third-party context.<\/p>\n<p><strong>However<\/strong>, since the Server container can\u2019t work with third-party cookies, things get complicated.<\/p>\n<p>What happens is that the <strong>HTTP response<\/strong> back from the Server (i.e. for the <code>add_to_cart<\/code> event) contains a message that instructs the GA4 library <strong>in the browser<\/strong> to compose the DoubleClick request instead.<\/p>\n<div style=\"aspect-ratio: 2698 \/ 254;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/server-response-add-to-cart.jpg\" title=\"Server response to add to cart\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"254\" width=\"2698\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/server-response-add-to-cart.jpg#ZgotmplZ\" alt=\"Server response to add to cart\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>And sure enough, if you look at the network requests (in a browser that supports third-party cookies), you\u2019ll see the browser requests to Google servers:<\/p>\n<div style=\"aspect-ratio: 3300 \/ 146;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/google-server-requests.jpg\" title=\"Google server requests\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"146\" width=\"3300\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/google-server-requests.jpg#ZgotmplZ\" alt=\"Google server requests\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In case the browser <strong>doesn\u2019t<\/strong> have first-party click ID information stored, the Server container <strong>doesn\u2019t<\/strong> send a direct request to Google servers. Instead, it just instructs the browser to send the requests, so that the third-party cookies can be picked up.<\/p>\n<p>Please don\u2019t ask me what happens if the browser doesn\u2019t support third-party cookies. My guess is that if the Click ID is present, your conversion measurement will work just fine. However, there might be limitations on what type of audiences you can use or build for conversion tracking, because the click and the conversion can\u2019t be attributed to a generic Google user without third-party cookies.<\/p>\n<p>Similarly, if the first-party Click ID is <em>not<\/em> available, I\u2019m guessing Google uses third-party cookies to see if the user has interacted with the ad nevertheless. So you\u2019ll lose that fallback if third-party cookies are not supported.<\/p>\n<h2 id=\"interaction-with-consent-mode\">Interaction with Consent Mode<\/h2>\n<p>What about <a href=\"https:\/\/www.simoahava.com\/analytics\/consent-mode-google-tags\/\">Consent Mode<\/a>? What happens if <code>ad_storage<\/code> is denied? Or what if it\u2019s subsequently granted?<\/p>\n<h3 id=\"if-consent-is-denied\">If consent is denied<\/h3>\n<p>First, the <strong>Conversion Linker<\/strong> tag sends the <em>landing beacon<\/em> ping to Google servers, but it <em>doesn\u2019t write the <code>FPGCLAW<\/code> cookie<\/em> in the HTTP response.<\/p>\n<p>The landing page beacon includes parameters which state that Consent Mode is active. These instruct Google to ignore any identifiers in the request and only collect anonymous data for conversion modeling.<\/p>\n<div style=\"aspect-ratio: 1794 \/ 598;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/consent-mode-linker-ping.jpg\" title=\"Consent mode parameters in the linker ping\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"598\" width=\"1794\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/consent-mode-linker-ping.jpg#ZgotmplZ\" alt=\"Consent mode parameters in the linker ping\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>The <strong>Conversion Tracking tag<\/strong> sends the server-to-server request normally, whether a first-party click identifier is available or not:<\/p>\n<div style=\"aspect-ratio: 1798 \/ 704;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/conversion-consent-mode.jpg\" title=\"Conversion tracking without consent\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"704\" width=\"1798\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/conversion-consent-mode.jpg#ZgotmplZ\" alt=\"Conversion tracking without consent\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>If the page URL has the <code>gclid<\/code> parameter, then that is sent to Google Ads (as in this scenario no Ads cookies are needed).<\/p>\n<div style=\"aspect-ratio: 1810 \/ 714;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/conversion-ping-with-click-id-consent.jpg\" title=\"Conversion ping with the Click ID\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"714\" width=\"1810\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/conversion-ping-with-click-id-consent.jpg#ZgotmplZ\" alt=\"Conversion ping with the Click ID\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<h3 id=\"if-consent-changes-to-granted\">If consent changes to granted<\/h3>\n<p>If, however, consent <em>changes<\/em> to <strong>granted<\/strong>, the GA4 web tag reacts.<\/p>\n<p>The <code>page_view<\/code> hit is immediately resent to the Server container. This time it doesn\u2019t have the consent restrictions in place, so both GA4 tags and Google Ads tags will be able to benefit from the regular, cookies-enabled ping.<\/p>\n<p>This means that the Conversion Linker (assuming it fired on All Pages) will fire again and this time rewrite the <code>FPGCLAW<\/code> cookie.<\/p>\n<p>In addition to this, <strong>any other event you have <a href=\"https:\/\/support.google.com\/analytics\/answer\/9267568?hl=en#zippy=%2Cin-this-article\">marked as a conversion<\/a> in the Google Analytics 4 user interface<\/strong> will <em>also<\/em> get sent again.<\/p>\n<p>In other words, if you want your <code>add_to_cart<\/code> Google Ads conversion event to be sent with cookies and full capabilities as soon as consent is granted, you need to go into the Google Analytics 4 UI and mark the <code>add_to_cart<\/code> event as a conversion.<\/p>\n<div style=\"aspect-ratio: 2278 \/ 482;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2021\/06\/add_to_cart-conversion.jpg\" title=\"add_to_cart as a conversion\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"482\" width=\"2278\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2021\/06\/add_to_cart-conversion.jpg#ZgotmplZ\" alt=\"add_to_cart as a conversion\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>The GA4 UI will instruct the <code>gtag.js<\/code> library to account for the <code>add_to_cart<\/code> conversion event when sending the hits again after consent is granted. You need to do this for <strong>all<\/strong> events that you want the library to send again once consent is granted!<\/p>\n<blockquote>\n<p>Note! Even though the hits are sent again, the Server container will prevent tags from triggering again unless they support <code>ad_storage<\/code>.<\/p>\n<\/blockquote>\n<p>By the way, this applies to <code>analytics_storage<\/code> as well (of course nothing is sent to Ads in this case). When <code>analytics_storage<\/code> is set to <code>'granted'<\/code>, GA4 collects the <code>page_view<\/code> and all previously sent, cookieless conversion events again automatically.<\/p>\n<h2 id=\"new-api\">New API<\/h2>\n<p>Finally, there\u2019s a new <a href=\"https:\/\/www.simoahava.com\/analytics\/custom-templates-guide-for-google-tag-manager\/\">Custom Template<\/a> API: <code>sendPixelFromBrowser<\/code>. This API works together with a GA4 web tag. If the API is invoked and the request originated from a GA4 web tag, the API sends the pixel request back to the browser using the same protocol as the Google Ads tags above.<\/p>\n<p>The GA4 web tag then picks up this instruction and sends the request via the browser.<\/p>\n<p>This means that other vendors that require third-party cookies to run can utilize this API to engineer their templates to use the browser rather than direct server-to-server hits.<\/p>\n<blockquote>\n<p>Note! This <em>only<\/em> works with a GA4 web tag. If the request originates from some other dispatch source, the API will not work as intended.<\/p>\n<\/blockquote>\n<h2 id=\"summary\">Summary<\/h2>\n<p>As you can see, setting up Google Ads tracking is quite simple. But understanding the <em>flow<\/em> is another thing indeed.<\/p>\n<p>I\u2019m actually somewhat disappointed at how the setup works. I\u2019m not saying I don\u2019t think it\u2019s a good piece of software \u2013\u00a0it is! I just dislike the fact that it relies on third-party cookies.<\/p>\n<p>Forcing the browser to do all the legwork means that some of the most important security benefits of server-side tagging (reliance on first-party connections only, stricter Content-Security Policies) need to be abandoned in favor of getting more data.<\/p>\n<p>I\u2019m wondering why Google isn\u2019t pushing more aggressively for a first-party-only approach such as <a href=\"https:\/\/support.google.com\/google-ads\/answer\/10172785\">Enhanced Conversions<\/a>. I\u2019m not really a big fan of this, either, but at least the website and server-side tagging setup would retain control, rather than having it relinquished to third-party requests that originate in the browser.<\/p>\n<p>Maybe Google is waiting for a resolution on the <a href=\"https:\/\/privacysandbox.com\/\">Privacy Sandbox<\/a> initiative before making drastic changes to their data collection methods. Who knows?<\/p>\n<p>Well, anyway. I think this setup for Google Ads is pretty neat simply because it\u2019s very <em>frictionless<\/em> (the above issues with security notwithstanding). Setting it up is just as \u201ceasy\u201d as setting up the respective components in the web container.<\/p>\n<p>I think the protocol for instructing the browser to do something is a genius piece of work, but I do worry about the increased reliance on GA4 and gtag.js for server-side tagging to work its magic. It\u2019s not a trend I\u2019d like to see more of in the future, but I have a hunch that Google will push for a tighter and tighter integration as time goes by.<\/p>\n<p>Please let me know in the comments if you have any thoughts to share on this topic!<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>One of the biggest blockers for Google Tag Manager\u2019s server-side tagging to slip out of beta is Google Ads. Until server-side tagging supports a solution for both conversions and remarketing capabilities to be reproduced server-side, it\u2019s unlikely that Server containers will lose their beta label. While I can\u2019t say what will happen to the beta [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":66583,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[14239,19550,1531,14495,18475,1791,29117,1706],"dealstore":[],"offerexpiration":[],"class_list":["post-66582","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-ads","tag-conversion","tag-google","tag-manager","tag-serverside","tag-tag","tag-tagging","tag-tracking"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=66582\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"One of the biggest blockers for Google Tag Manager\u2019s server-side tagging to slip out of beta is Google Ads. Until server-side tagging supports a solution for both conversions and remarketing capabilities to be reproduced server-side, it\u2019s unlikely that Server containers will lose their beta label. While I can\u2019t say what will happen to the beta [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=66582\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-03T20:08:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1441\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=66582#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=66582\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager\",\"datePublished\":\"2025-02-03T20:08:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=66582\"},\"wordCount\":2011,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=66582#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg\",\"keywords\":[\"ads\",\"Conversion\",\"Google\",\"Manager\",\"Serverside\",\"TAG\",\"Tagging\",\"Tracking\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=66582#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=66582\",\"url\":\"https:\/\/fivemor.com\/?p=66582\",\"name\":\"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=66582#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=66582#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg\",\"datePublished\":\"2025-02-03T20:08:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=66582#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=66582\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=66582#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg\",\"width\":2560,\"height\":1441},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=66582#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager - Som2ny Network","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:\/\/fivemor.com\/?p=66582","og_locale":"en_US","og_type":"article","og_title":"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager - Som2ny Network","og_description":"One of the biggest blockers for Google Tag Manager\u2019s server-side tagging to slip out of beta is Google Ads. Until server-side tagging supports a solution for both conversions and remarketing capabilities to be reproduced server-side, it\u2019s unlikely that Server containers will lose their beta label. While I can\u2019t say what will happen to the beta [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=66582","og_site_name":"Som2ny Network","article_published_time":"2025-02-03T20:08:38+00:00","og_image":[{"width":2560,"height":1441,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=66582#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=66582"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager","datePublished":"2025-02-03T20:08:38+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=66582"},"wordCount":2011,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=66582#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg","keywords":["ads","Conversion","Google","Manager","Serverside","TAG","Tagging","Tracking"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=66582#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=66582","url":"https:\/\/fivemor.com\/?p=66582","name":"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=66582#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=66582#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg","datePublished":"2025-02-03T20:08:38+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=66582#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=66582"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=66582#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/google-ads-server-side-tagging-google-tag-manager-scaled.jpg","width":2560,"height":1441},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=66582#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Google Ads Conversion Tracking With Server-side Tagging In Google Tag Manager"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/66582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66582"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/66582\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/66583"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66582"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=66582"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=66582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}