← All articles

How to move Google Ads conversion tracking from Additional Scripts to a Shopify Custom Pixel

June 29, 2026

The single most common script in Shopify's Additional Scripts box is the Google Ads conversion tag. After August 26, 2026 it stops firing on non-Plus stores. Here is how to rebuild it as a Custom Pixel without losing your conversion label or order values.

The legacy snippet

Your Additional Scripts version looks something like this:

<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
<script>
  gtag('event', 'conversion', {
    'send_to': 'AW-XXXXXXXXX/LabelHere',
    'value': {{ checkout.total_price | money_without_currency }},
    'currency': '{{ checkout.currency }}',
    'transaction_id': '{{ checkout.order_number }}'
  });
</script>

What must change

  • Liquid is gone. {{ checkout.total_price }} becomes event.data.checkout.totalPrice.amount.
  • The trigger changes. Instead of "this code runs on the thank-you page", you subscribe to the checkout_completed event.
  • Keep the conversion label. The part after the slash in send_to identifies the specific conversion action. Lose it and Google Ads records nothing.

The Custom Pixel version

const script = document.createElement("script");
script.src = "https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX";
script.async = true;
document.head.appendChild(script);
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "AW-XXXXXXXXX");

analytics.subscribe("checkout_completed", (event) => {
  const checkout = event.data.checkout;
  gtag("event", "conversion", {
    send_to: "AW-XXXXXXXXX/LabelHere",
    value: checkout.totalPrice?.amount ?? 0,
    currency: checkout.totalPrice?.currencyCode ?? "USD",
    transaction_id: String(checkout.order?.id ?? checkout.token),
  });
});

Paste it in Settings → Customer events → Add custom pixel, connect, place a test order, and watch the conversion appear in Google Ads (allow up to a few hours of reporting lag).

Common mistakes

  • Running both versions at once. Until you delete the legacy script, purchases may double-count. Migrate, verify, then delete.
  • Dropping the transaction ID. Without it, Google can't deduplicate conversions across retries and refreshes.
  • Assuming it works forever. Pixels break silently — a consent banner update or app conflict can stop events with no error. Monitoring catches that; PixelWard does both the conversion and the monitoring.
Migrate your tracking in minutes, not weekends.

PixelWard converts your Additional Scripts into working Custom Pixels and alerts you if tracking ever goes silent.

Install PixelWard