International

Ad tracking for a Gulf store: Meta, Snapchat and TikTok set up in a way you can trust

How ad tracking works on Shopify for Meta, Snapchat and TikTok, what is different in the Gulf and Iraq, and a test plan to check your numbers.

ESTASOFT
12 min read
Purple cover with a pink and white target, with the title Ad tracking for a Gulf store
On this page
    On this page

      Your Meta dashboard shows one number of purchases. Your Shopify admin shows another. TikTok and Snapchat each show a third. If you set your ad budget from numbers you cannot explain, you are guessing.

      This article explains how ad tracking works, what Shopify's channels do, what changes in the Gulf and Iraq, why the numbers never match exactly, and what to ask a local adviser about consent. It ends with a test plan to follow after setup. Platform facts come from each platform's own pages, read on 4 November 2026. Settings change, so your account screens have the final word.

      How ad tracking works in four parts

      • Browser pixel. A small script on your pages reports what a shopper does, such as buying. Shopify notes that a browser-based ad blocker can stop the Meta pixel from sharing data.
      • Server-side events. Your store or an app sends the same event from a server to the platform. Shopify says data sent server to server can't be blocked by browser-based ad blockers. Meta, TikTok and Snap each recommend running their server API next to the pixel.
      • Deduplication. If one purchase arrives twice, once from the browser and once from the server, the platform needs a shared event ID to count it once. Meta, Snap and TikTok each describe a 48 hour window and ask you to send the same ID from both sources. Meta also needs matching event names.
      • UTM tags. These are labels at the end of an ad link that tell your analytics where a visit came from. Google says to always use utm_source, utm_medium and utm_campaign, and notes that values are case sensitive, so Google and google count as different sources. Pick lowercase and keep to it.

      What the Shopify channels do for you

      On Shopify you usually do not paste tracking code into the theme. Each platform has a channel or app with a data sharing setting.

      • Meta. Shopify's Facebook and Instagram channel offers Standard, Enhanced and Maximum. Standard uses the pixel. Enhanced and Maximum add the Conversions API and share name, location, email address and phone number so Meta can match people. If an old pixel snippet still sits in theme.liquid, Shopify says to remove it, because two pixels can cause duplicate or incorrect data.
      • TikTok. TikTok's page on its Shopify app uses the same three level names. Standard uses the pixel, and Enhanced adds the Events API and Advanced Matching. The page shows February 2025 as its last update.
      • Snapchat. Snap's pixel page says that if you install the pixel with its Snapchat Ads app for Shopify, the Conversions API is installed automatically. The page also gives Zid and Salla as examples of store platforms.

      Which events a store needs

      Shopify says its Meta pixel tracks PageView, ViewContent, Search, AddToCart, InitiateCheckout, AddPaymentInfo and Purchase. For a first review, watch three: AddToCart, InitiateCheckout and Purchase. Purchase also needs a currency and a value: Meta's page requires both for purchase events, with the currency as an ISO 4217 code, and Snap's page requires both too.

      Agree one definition of revenue first. Shopify says the Meta purchase value uses the order's total price, including duties, taxes and discounts, so confirm it matches the revenue figure you report elsewhere.

      What is different in the Gulf and Iraq

      • Three decimal currencies. The ISO 4217 current list, kept by SIX, shows 3 minor units for the Kuwaiti dinar, Bahraini dinar, Omani rial and Iraqi dinar, and 2 for the UAE dirham, Saudi riyal and Qatari rial. Meta's parameter page asks for a monetary amount and gives no decimal rules. So test it: an order of 12.500 Kuwaiti dinars should reach the platform as 12.5, not 125 or 12500.
      • Cash on delivery. Shopify says the checkout_completed event usually fires once, on the thank you page, and not at all if that page fails to load. The page does not say how this works for cash on delivery orders, so a Purchase may mean only that an order was placed, not that cash was collected. Ask your developer what your setup sends for these orders and for refused parcels, and decide whether reports should count them. The Iraq cash on delivery article covers the delivery side.
      • Orders outside the checkout. A WhatsApp or phone order that staff create by hand may not pass through the online checkout. Ask your developer whether those sales reach the ad platforms, and decide whether they should. The WhatsApp orders article covers these orders.
      • Time zones. Shopify lists different reporting time zones as a cause of mismatched numbers. TikTok says you choose the ad account time zone at creation and cannot change it later.
      • Seasons. Compare a sale week with a sale week, and Ramadan with Ramadan. The Ramadan and Eid checklist helps with planning.
      • Naming. Write UTM values in lowercase Latin letters, even for Arabic ads, so Arabic and English campaigns share report rows.

      Consent and personal data: questions for a local adviser

      Enhanced and Maximum levels send customer details to ad platforms, so consent matters. Shopify's customer privacy page says its cookie banner can run automatically for regions such as the UK and EEA, and is inactive by default elsewhere, such as the US. Third-party pixels may need a banner app or custom logic, and you remain responsible for your privacy policy and legal compliance. Shopify's pixel privacy page says an app pixel loads only when the visitor has granted every permission it requires. The privacy and cookies article covers the Shopify settings.

      For the region, two official sources were read. The UAE legislation portal carries the text of Federal Decree by Law No. 45 of 2021 on personal data. It defines consent as a clear positive statement or action, expects the controller to be able to prove it, requires an easy way to withdraw it, and gives people a right to object to direct marketing processing. Article 31 says it came into force on 2 January 2022. SDAIA's guide to the Saudi Personal Data Protection Law (version 1.0, December 2023) says consent should be freely given and that people can withdraw it at any time. This article read no executive regulations, amendments or free zone rules, and nothing for Qatar, Kuwait, Bahrain, Oman, Iraq or the Kurdistan Region. Ask for the current rule in each place where your shoppers live.

      Questions to ask your adviser:

      • Which country's rules apply to my shoppers and my ad pixels?
      • What does my cookie banner do for shoppers in the Gulf and Iraq?
      • Must I ask for consent before ad pixels load, and how do I record it?
      • May I send email addresses and phone numbers to ad platforms, and what must my privacy policy say?
      • Where do the platforms process this data, and does that need a transfer step?

      A tracking test plan

      Run this after setup, and after any theme, app, checkout or data sharing change. Tracking is the measurement side of SEO and growth work, because Shopify's marketing reports show paid, organic and direct traffic side by side.

      1. Take stock. List the channels and apps that install tracking, the pixel ID in each, the data sharing level (it decides which customer details leave your store), and who owns each ad account. Look for old pixel code in the theme and for two apps sending the same event.
      2. Tag a test link. Add lowercase utm_source, utm_medium and utm_campaign to a product link and open it on a real phone.
      3. Check the browser events. Meta's Pixel Helper is a Chrome extension that lists the pixels on a page, whether they loaded, and errors. Snap's page names the Snap Pixel Helper and the Test Event Tool in its Events Manager. TikTok's Events Manager has a Test Events tab where you can filter browser and server test events.
      4. Place a test order. Shopify says its test gateway and Shopify Payments test mode do not charge you, and that test orders do not show in your reports. Live orders are blocked while payment providers are in test mode, so switch it off afterwards. Note whether the platforms recorded the test purchase, so nobody counts it as a sale.
      5. Check the server events. For Meta, the Conversions API page says to send a test_event_code from the Test Events tab in Events Manager and remove it from live payloads. Meta's verification page lists an Event Deduplication tab. In TikTok, the Overview tab shows whether events came by browser, server or both, and warns that the data is not real time. Snap offers a validate endpoint for developers using its Conversions API.
      6. Check the money. Place a small real order in each currency you sell in, including any dinar currency, and compare each platform's value with the Shopify order total. Confirm each platform shows one Purchase, not two. Shopify says you can cancel and refund a real order afterwards, but the processor may charge fees.
      7. Compare a real week. Pick the same days and hours in the same time zone. Count orders and revenue in Shopify and in each platform. Write the gap as a percentage and keep it as your normal range.

      Why the numbers will still differ

      • Attribution rules. Shopify's marketing reports offer five models. Last non-direct click, the default for the Performance by marketing channel report, skips direct visits. Reports that pair a sales metric with a marketing dimension default to last click, so check each report's model. The any click model credits every clicked channel, so it can exceed your real orders. Ad platforms may use a different attribution window. TikTok's window page is written for advertisers on its Self-Attributing Network set-up, so ask TikTok, Meta and Snapchat which window applies to your web sales, and note it beside your numbers.
      • Lost browser events. Shopify's discrepancies page lists blocked JavaScript or cookies, browser extensions and bots as reasons tools disagree. A pixel that needs consent also does not load without it.
      • Changing definitions. Shopify's discrepancies page says its session measurement rollout ran from 21 to 23 September 2026, and its marketing reports page says channel, medium and traffic type values were updated from 18 October 2026, so older figures may not compare cleanly.
      • Double counting. If a platform shows more purchases than your store took, look first for missing event IDs, two pixels or two apps.

      Act when the gap grows suddenly, a platform shows no purchases, or values are off by a factor of 10, 100 or 1,000. A steady gap within your normal range is common.

      This is general information, not legal or tax advice. Check the current rules or ask a qualified adviser before you decide.

      ESTASOFT can help with SEO and growth for your store. To start, send a short brief on the contact page. The weekly reporting article lists the numbers to check each week.

      Sources

      Written by
      ESTASOFT

      Need help with a project?

      Share a short brief. We reply with next steps.

      Book a call

      30 minutes. Free.

      Tell us about your project and we will suggest a time.

      Or email us at info@estasoft.com