An easy step by step guide on how to add Google Ads Remarketing Pixel to Shopify Customer Events using the latest features.
Login to Google Ads, then in the left hand menu select Tools > Audience manager

From the top menu, click on Your data sources

Here you will see all your panels, click on the 3dot menu for Google Ads Tag and select edit source. Or if that is not available click on set up tag.

Or go to this URL: https://ads.google.com/aw/audiences/management/datasources/tagsetup
Select the following:
- Remarketing
- Collect data on specific actions people performed on your website to show personalized ads.
- Business Type
- Retail
- Click on Save and continue

Click on Install the tag yourself

Copy the numeric source tag id as shown in the image below for later use. We will add the source tag id to the script below. (paste it in a text file for later use)

Go to Shopify > Settings > Customer Events

Click on add custom pixel

Give it a name, such as Google Ads Remarketing Tag

Set your Customer Privacy Permission to Marketing only.
Set your Data sale to data collected does not quality as data sale.

Paste your code from the link below, and change the following 3 settings (only edit between settings start and end)
You can get the code at: https://feedarmy.io/product/google-ads-remarketing-pixel-for-shopify/

- Change GOOGLE_ADS_ID value with your account ID you saved earlier
- Change the REMARKETING_COUNTRY_CODE to the country your shopify ID’s, if you don’t know simply go to Google Merchant Center > Products > All Products > and the id’s will look like shopify_US_123456789_123546789
- Change the ID_TYPE to shopify, sku, variant_id or parent_id dependent on the ID’s you used in Google Merchant Center
- if your products look like shopify_US_123456789_123456798 add the word shopify
- if your products are sku’s add the value sku — const ID_TYPE = ‘sku’;
- if your proudcts use the variant id use the value variant_id — const ID_TYPE = ‘variant_id’;
- if your proudcts use the parent id use the value parent_id — const ID_TYPE = ‘parent_id’;
Now click on save and connect

🛠️ Changelog
Version 1.05 – 7 th April 2025
✨ New Features:
- Automatic Cookie Consent Handling (with Fallback)
The script now respects Shopify’s customer privacy API. If a consent app is installed, it will only run tracking after marketing consent is given.
✅ If no cookie banner or consent app is present, the script automatically runs, ensuring tracking still works out of the box.
🧠 Improvements:
- Universal Compatibility
Works seamlessly with or without cookie consent apps — no extra setup needed. - Console Warnings
Helpful messages added to the browser console when the privacy API is not detected or consent is denied — makes troubleshooting easier for store owners.
🔐 Compliance Ready (but Flexible)
For stores in regions like the EU/UK/CA, tracking respects privacy laws by default. For others, no setup changes are needed — just paste and go.
Version 1.04 – 6th April 2025
✨ New Features:
begin_checkout
event added
Tracks when a user starts the checkout process, improving funnel visibility and audience targeting.remove_from_cart
event added
Helps build audiences based on cart abandonment behavior.customer_login
andcustomer_account_created
events added
Enables retargeting or exclusion of logged-in users and new customer sign-ups for more refined remarketing lists.
🧠 Improvements:
- Deduplication logic for
purchase
events
Prevents duplicate conversions being sent to Google Ads during multi-trigger scenarios. - Null/undefined safety added to all event handlers
Prevents errors when product or variant data is missing—ensures reliable performance even with unusual product setups (e.g. bundles, custom apps). - Standardized product ID generation
All event handlers now use a centralizedgetItemId()
function for consistent and clean tracking across all product ID formats (shopify
,sku
,variant_id
,parent_id
). - Inline logic for
begin_checkout
event
No longer depends on shared utility functions, keeping things fast and lightweight. - Conversion callback (
event_callback
) added topurchase
Ensures Google Ads recognizes the conversion even during quick page transitions or redirects.
🧼 Refactoring:
- Cleaner code structure and reduced duplication.
- All item processing logic now uses
Array.map().filter()
for safe and accurate payload creation.
Version 1.02 – 17th June 2024
First itteration of the Google Ads remarketing pixel code for Shopify customer events.
Hi,could you help me troubleshooting the setting?We would like to paid for that.
I have replied to your email.
DO we have to do both setups? Please clarify (shopify Pixel & Shipofy additional scripts? ) Or is it one or the other please advise.
Only shopify pixels.
Hey, thank you for your sharing.
For multiple countries(they all use shopify ID), can I just add their code here like this?
REMARKETING_COUNTRY_CODE = ‘US’,’GB’;
Thank
No, it requires more advanced custom coding, you can reach out to [email protected] for support.
Hi Emmanuel, we are currently using the Shopify additional script. I was wondering if I need to remove the additional script when I change it to the Shopify pixel? Because I noticed that you mentioned that you need to wait 2-3 days to see the effect. If I remove the additional script, will my data be skewed or even not capture relevant data during this time? Or if I don’t remove the additional script, will my data show 2x the effect?
It all depends on the setup, so the answer is, it could be double tracking, but it’s not that of a big deal to have double tracking for 2 days.
Hello, code is working except I’m not getting any hits for ecomm_pagetype, ecomm_prodid and ecomm_totalvalue. I see it is not in the code. Aren’t these three parameters vital for remarketing? Or does view_item under events replace it? I don’t think it does because I’ve noticed my product viewers (retail) (google ads) data segment decrease significantly since changing to this code and I’ve had the same amount of traffic. Please help. thanks
That is because the parameters you are looking at have been deprecated for almost 5 years now. It is now event, id, value.
However, my new tracking code that I am working on now, I will add the old coding again, but it should not be necessary, I just want to avoid people getting confused, as I get this question a lot, you can view Google’s official docs, ecomm_ is no longer mentioned.
Hi Emmanuel Flossie, How can I implement both Google Ads Enhanced Conversion Tracking and Dynamic Remarketing codes in one place?
That is currenctly not available.
Hi Emanuel, can we use the GTM to create a remarketing tag?
Sure, if you want to set it all up. But if you want to use my coding, it’s designed to sent directly to Google Ads, no need for a 3rd party.
Thank you for your response.
I have already installed GTM on my page with datalayer code and my GADS Conversion tracking Tags and GA4 Tag fire on my page and get data. But Google Ads Remarketing Tag doesn’t fire and I don’t know why? I don’t think, that it is because of the code, because the other tags fire properly.
I also cannot check it, because the debugger isn’t available when I use shopify custom pixels.
Maybe you could give me advice, where can be the problem?
Thank you in advance
As you know you can’t view data live due to Shopify having the code render in sandbox mode for privacy reasons. Hvae you waited 2 or 3 days before viewing the results in Google Ads?
Hello, I have experienced the same think as @Garik said. All the Tags are firing properly except from the the remarketing tags.
@Emmanuel we would be glad to hear any solution from you.
Thank you!
If you have waited 3 days, and the data is not in Google Ads, then feel free to email me at [email protected] for personal service support.
Hello Emmanuel,
I recently installed the latest version of the remarketing Pixel. In your video, you mentioned that the most important parameters for remarketing are ID, Value, and Google Business Vertical. I noticed that the “% of all hits” for these three parameters is around 18% or 19%.
Do you think this percentage is normal, or could there be an issue with my installation?
Thanks!
I don’t know how the percentage is calculated, nor is there any information online that I can find how it is calculated, but if I look at all my clients it’s different for everyone. But the ID is hovering around 25%.
Thanks for your reply.
I have some questions about google & youtube app & dynamic remarketing related:
1) If we use Google & shopping app is its builtin option available in app to do dynamic remarketing?
2) I setup conversion tracking via google & youtube app but not seeing any conversion in google ads account. Conversion tracking turn on in app. What I am missing or what I have to do?
3) After using app I am seeing prodid hits in ads is matching with feed id but hit% is only 1. I am assuming Is it because conversion goals not tracking?
1) yes
2) If it doesn’t work, consider installing my code, if you have issues with the google and youtube app, contact Google support.
3) ecomm_prodid is an old parameter, the new one is called id
Thanks for your reply.
3) yes both parameters are coming prodid & id.
https://www.awesomescreenshot.com/image/49033486?key=c88a019539607a2b8e51b2b725bfb35a
if dynamic remarketing implemented via google & youtube app correctly is I am able to see the dynamic remarketing tag in tag assistance extension?
https://www.awesomescreenshot.com/image/49033842?key=af6f8cc4d9a4a61c2530fdb7fbceb9c
If Google implemented it using Pixels no, Shopify blocks all pixels from showing in the dev tools or tag assistant. You will need to wait for the results in Google Ads.
One more thing if we use google app dynamic remarketing enable for global or only in that country where we are targeting in app?
Bcz we can only submit one feed from this app for one country
If you want to target more countries use: https://apps.shopify.com/multiple-google-shopping-feeds
Thank you once again for the great value you provide with these tutorials. I have a question regarding my current setup. I’ve already installed the “Shopify Pixel with Enhanced Conversion ” using Google Tag Manager. Now, I would like to install dynamic remarketing.
Does this mean that the method described in “How To Add Google Ads Remarketing Pixel To Shopify”(shopify pixel Updated on 17 June, 2024 method) will work with the existing “Shopify Pixel with Enhanced Conversion setup via Google Tag Manager”? Will I have Conversion Tracking, Enhanced Conversion, and Dynamic Remarketing all working together?
Additionally, should I install standard remarketing separately with Google Tag Manager, or is it included in the dynamic remarketing method?
Thank you,
The remarketing pixel I developed is independent not using GTM, meaning just install it, apply the settings and it works. The conversion pixel will work as well when installed correctly.
Checkout> Additional scripts
Shopify has been disabled, what should I do now?
I am not aware this is already disabled automatically, until 2025. But if what you say is true, which I can’t see with my clients, then best to use the Google and Youtube app.
Do I still need a remarketing code when using Google and Youtube app?
If you have verified that the Google and Youtube app is collecting valid data, then no, you don’t need to install the remarketing code again.
yes, they have disabled mine also. Now all of my Google ads campaigns are affected. Still looking for a solution. I can not use the Google sales channel because I am already using symprosys app for feed. Do you think I can stop the feed submission via the google sales channel and still use symprosys for feed.
I don’t see any issues. Just make sure you migrate well.
Thanks for the great value Emmanuel. How to deal with different fa_product_id formats (eg default, sku, etc) mixed altogether in content API? Thank you
That is indeed a problem. I recommend ensuring the products in the feed all use the same ID format.
If that is not possible, you could, in theory, add the same remarketing code again with a different fa_product_id format. However, that will bloat your page coding a bit more. However, if you can not change the product ID, that would be the only solution.
and what about the “Include the user_id parameter in the Google Ads tag” under the advanced settings?
There is no need to add this.
Do we still need the additional scripts section if we already installed the Shopify Pixel (your other post) via the Customer Accounts
Remarketing code will soon be updated to pixels, I am not ready yet.
SO if i use this code and and shopify pixel code, do i still need to install the google tag separately?
No, you only need to install the code I created in the customer event / pixel area.
Hello Emmanuel! Do you have this code adjusted for custom pixels area?
Hello Arturas, at the moment no.
Do you have in mind any approximate date when/if this code will be adjusted / available for custom pixels?
Thanks
At the moment no, I currently have bigger projects that need to be finished first. If you can not wait, then use the Google and Youtube app.
Hey Emmanuel 🙂 Also interested in the remarketing pixel code. My client doesn’t use the Google/YouTube app as they integrate to GMC via Simprosys and also integrate to GA4 via GTM (installed via pixel). Are there any other options?
That will be worked on. I have no date when it will be released.
Thank You. If I used your code, I will make sure you get the credit.
Pleasure, and thank you kindly Helal!
I decided to implement the steps in this tutorial after my previous set up of Google Ad tags was ineffectual. Despite integrating these steps, my retail match rate remains at 0%.
Any clue why this is happening? I’m wondering if my supplemental feed for Merchant Center has any effect…
My product ID is as specified in your instructions ie Shopify_US_####_####
Make sure to wait a few days after implementation, then check the id’s collected in Google Ads vs your data feed.
The warning may stay if you have other coding, and you need to dismiss the warning after you have verified the IDs are correct. Otherwise, yes, the warning will never disappear by itself; you need to manually dismiss it.
Thanks Emmanuel – when you say check the id’s collected in Google Ads, I assume you mean to check in:
tools > shared audiences > data sources > google ads tag > id hits and verify those values match the feed values.
My overall concern is this:
What metrics should I be monitoring within the google ads tag to ensure that my dynamic remarketing would actually be effective?
To check if your remarketing tag works, manually check your source code or verify in the location you indicated.
Hi Emmanuel, Under Audience Manager > Your Data Sources > Google Ads Tag > Details. Data source hits have been plummeting since October 12th, is this delayed reporting on the hits or could there be an issue with tag now? Noticing it across a lot of different ad accounts using this code. Thanks
I am seeing this as well. I am currently in London at Google’s HQ for 10 days, so i can’t investigate. I will look into this when I am back. But I don’t think its the coding, but rather Google having issues.
This a is displayed on the thank you page, is this a necessary?
If you want to collect converting users in your remarketing, for retargeting purposes yes, you should enable the tracking in the thank you page.
please check
Thank you for spotting the random leading character, this is now updated and removed, you may need to hard refresh the page to see the update.
Hi, you dont seem to be including the user id?
Hello Mark, I can confirm that user id is an optional remarketing parameter, however this is not included in the coding due to it being PII. However if you have a value you like to use and you like me to implement this, please email me at [email protected]
Hello,
Why the EUR (Euro) currency is not set inside the code ?
Because it is not required. Euro values are comma delimited, not dot. Don’t confuse the listed currencies as a list of supported currencies.
The currencies listed in the code are to identify dot Currency, not comma.
The code will work for EU prices.
My catalog is {{ item.product_id }}{{ item.variant_id }} . So I have to remove the shopify{{ fa_product_id_alpha2_code}}_ on default section in both liquid and checkout scripts right ?
That does indeed sound correct.
Hello, and thank you so much. I have a question, how can i implement this code in GTM? i tried to make an html tag but it doesnt works.
Thanks.
This code will not work in GTM as you need to change how it works, pretty much rewriting the whole code. If you installed it and it did not work, it most likely did not get installed correctly. You can request personal help by contacting me [email protected]
Hi, I did email to you, but I got message of address not found!! Could you please give me another email?
You can email me at [email protected]. Thank you.
There is no data in “Shopping cart abandoners (Retail) (Google Ads)”
You need to create a new list with add_to_cart minus converters = shopping cart abandoners. If you need help with this setup, you can contact me [email protected]
Hey Emmanuel, thanks for your code, just a question that has been bothering me for the last few days.
Situation: looking at the source of the pages of my website everything looks good, i see the firing happening and all the variable populated, the id is the same of the products on the merchant center
here below an example with the google ads id removed for privacy
It’s all ok… but I have this warning every time…. Also another store and never worked ok… maybe just me…. thanks anyway.
hi emanuel and everybody, is just to me to get warning in audience “did not receive more than 92% of product id, not possible to personalize ads because not set up the right parameter to ID. ?? campaign stop running.
That is possible when the remarketing code is not correctly installed. Double check your product landing page that it is working by viewing the source code, check the item id, and the event. Hope this helps.
Thank you for this! Is FeedArmy required in order to use this code?
Keep rocking Emmanuel, all is working great :)by the way, iam using automatic audiences, and did a purchase test clicking AD, convertion count, but now is still showing and iam excluding past converters, should i create manually a list of past converters instead automatic one?
Hello Sergio, thank you for the kind words. If you want to setup a manual list, yes sure go ahead. Using manual setups allows you to fine tune your remarketing. However if the list becomes too small it tends to not work. So experiment and see how it goes.
Emanuel, why tag assistance always fail remarkting tag when try validate merchant ID? the product ID is corrected between merchant and tag. is that normal? i think i can ignore that tag assistance validation, but let me know.
its normal i supose, right?
yeah, google still use that warning even with google shoppig app tags, google is very complex and all bugged warnings haha
Great.
This is mentioned in this article under, Checking The Results. Google Tag Manager has issues finding info on the page. So if you want to check if everything is correct. Use source code to view the data and compare.
Issue: ecomm_prodid never receivedHow can i fix this issue , getting this error on Audience sources
That is no longer used. ecomm_prodid is an old parementer name. The new one is called itemid. So nothing needs to be fixed. If you like to learn more: https://support.google.com/…