← All articles

TikTok Pixel on Shopify after Additional Scripts shuts down (August 26, 2026): what to do

July 13, 2026

TikTok Pixel is the third most common script we see in Shopify's Additional Scripts box, after Google Ads and Meta. Same deadline applies: August 26, 2026, non-Plus stores, no error message when it stops — just quietly worse-performing TikTok campaigns because Purchase events stop landing.

First — check if you actually need to do anything

If your TikTok Pixel is only running because a developer pasted the base code + ttq.track('CompletePayment') into Additional Scripts, and you have (or install) the official TikTok Shopify app, you're mostly done: the official app reports purchases through its own integration and doesn't depend on Additional Scripts at all. In that case the only action item is deleting the old Additional Scripts snippet so purchases don't get double-counted once the official app is live.

When you actually need a Custom Pixel instead

The official app covers the standard single-pixel case. You need a real Custom Pixel migration if any of these apply:

  • Multiple TikTok Pixel IDs — agencies running Pixels for several ad accounts on one store; the official app is built around one pixel.
  • Custom event parameters beyond value/currency — content IDs mapped to a non-standard catalog structure, custom audience-building events the app doesn't expose.
  • You don't want to install another app — some merchants intentionally minimize their app count for performance/support-surface reasons.

The legacy snippet

<script>
!function (w, d, t) {
  w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];/* ...loader... */
  ttq.load('CXXXXXXXXXXXXXXXXXXX');
  ttq.page();
</script>
<script>
  ttq.track('CompletePayment', {
    value: {{ checkout.total_price | money_without_currency }},
    currency: '{{ checkout.currency }}',
    content_id: '{{ checkout.line_items.first.product_id }}'
  });
</script>

The Custom Pixel version (multi-pixel case)

const script = document.createElement("script");
script.src = "https://analytics.tiktok.com/i18n/pixel/events.js?sdkid=CXXXXXXXXXXXXXXXXXXX";
script.async = true;
document.head.appendChild(script);

analytics.subscribe("checkout_completed", (event) => {
  const checkout = event.data.checkout;
  window.ttq?.track("CompletePayment", {
    value: checkout.totalPrice?.amount ?? 0,
    currency: checkout.totalPrice?.currencyCode ?? "USD",
    contents: checkout.lineItems?.map((li) => ({
      content_id: String(li.variant?.product?.id ?? ""),
      quantity: li.quantity ?? 1,
    })),
  });
});

Repeat the script.src block once per pixel ID if you're running more than one — each loads independently in the sandbox.

Don't run both at once

If you install the official TikTok app while the legacy Additional Scripts snippet is still live, CompletePayment fires twice per order — TikTok's reporting won't warn you, it'll just show inflated conversions and a misleadingly good CPA until someone notices revenue doesn't match ad spend efficiency.

The takeaway

Most merchants: install the official TikTok app, delete the old script, done. Multi-pixel or custom-event setups: migrate as above. Either way, verify with a real test order and TikTok's Events Manager test tool before deleting the legacy snippet — and once migrated, keep monitoring it. PixelWard detects which case you're in automatically and generates the right code (or the right recommendation) instead of guessing.

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