When migrating to Shopify, you don't delete or rebuild the pixels, catalogs and campaigns in your ad accounts; the real risk is broken product IDs, as Shopify assigns new ones. Without catalog campaigns, Shopify's Facebook & Instagram and Google & YouTube channels take over feed and pixel. With DPA, Advantage+ or Google Shopping active, old IDs become SKUs.
When migrating to Shopify, store setup and product transfer are usually meticulously planned. However, in the migration projects we run at Nodus Works, the most common problem in the first two weeks after migration comes from the ad accounts: DPA campaigns go blind, Google Shopping products lose their approvals en masse, and conversion attribution breaks down. All of these trace back to a single cause: product IDs that don't carry over.
What Changes on Ad Platforms During a Shopify Migration?
During a Shopify migration, you don't need to touch your Meta and Google accounts; pixels, catalogs and campaigns aren't recreated, deleted or modified. The real problem isn't the platforms, it's the product identifiers.
Shopify assigns its own numeric IDs to every product and variant. These IDs have nothing to do with the values on the old platform. Meta and Google recognize products by these IDs; if the IDs no longer line up, the system can't match products, catalog campaigns lose their target and conversion attribution breaks down.
In our migration projects at Nodus Works, this problem most often shows up like this: a store with an active DPA (Dynamic Product Ads) campaign moves to Shopify, the pixel is installed and the feed is updated, but because the content_id sent by the pixel differs from the id in the feed, Meta can't match the products. The ad looks like it's running, but catalog matching drops to zero.
The fix comes down to this: even when the platform changes, the pixel and the feed must keep seeing the same value. That value is carried by the SKU.
Pre-Migration Audit: What to Look For?
ID mapping is not mandatory for every migration. For a store without catalog campaigns, this work is unnecessary. To decide whether you need mapping, you first need to understand your current account structure.
Tip: Complete the audit at least 2 weeks before the migration day. Last-minute decisions lead to mapping errors and disrupt running campaigns.
Is Mapping Required? Decision Matrix
Based on the audit results, the need for mapping falls into three scenarios. Starting the migration before you know which scenario applies leads to unnecessary work and to errors that are hard to fix.
If Mapping Is Not Required: Simple Migration Steps
SKU mapping is not required for stores without catalog campaigns. After migration, Shopify's native channel integrations automatically handle feed generation for Meta and Google, the pixel connection and the flow of conversion events.
Simple migration, step by step:
- Import products to Shopify
- In Shopify admin, activate the Facebook & Instagram channel
- In Shopify admin, activate the Google & YouTube channel
- Verify that both channels have generated feeds in Commerce Manager and Merchant Center
- Connect the domain and place a test order
- Check the event flow in Meta Events Manager and GMC
In this scenario, Shopify's native integration automatically manages the feed and pixel connection for both Meta and Google. No additional intervention is required.
If Mapping is Required: SKU Strategy and ID Matching
Mapping comes down to this: whatever ID the old system sent to Meta and Google, use that value as the SKU in Shopify. The platform changes, but the ID on both sides stays the same.
old system ID → Shopify SKU → Pixel content_id = Feed id
Step 1: Identify the ID Used in the Old System
For each channel, find out which value is used as the product ID:
These values are usually one of the following:
- Shopify variant_id (e.g., 53499724267886)
- Shopify product_id (e.g., 15004856942958)
- The proprietary ID of platforms like ikas, Ticimax, Ideasoft
- If SKUs are already used: move on to the next step; mapping takes minimal effort.
Critical Note: Each variant's SKU must be unique. If the Blue and Purple variants of the same product have the same SKU, the catalog will throw an error. This problem does not occur when variant_id is used; the platform assigns a different ID to each variant.
Step 2: Write Old IDs to Shopify SKUs
Export the product list from the old platform and set each variant's old ID as its SKU. When you import into Shopify, fill the SKU column with this value.
Example export via ikas (confirm endpoint and auth format with ikas API documentation; version may have been updated):
In the Shopify import CSV, the old platform ID goes into the SKU column. The source depends on which scenario applies:
Step 3: Verify Shopify IDs After Import
Once the import is complete, retrieve the new IDs assigned by Shopify and complete the mapping table:
Join this output to the mapping table on the SKU. Any rows that don't match are errors, and all of them must be resolved before migration day.
Meta Pixel: Set content_id Source to SKU
Meta DPA campaigns match products to the catalog using the content_id value; if the pixel's value and the catalog's value differ, the catalog stops working. Switching the Pixel's content_id source from the Shopify variant ID to the SKU is the only permanent way to keep the feed compatible after migration. There are three approaches, depending on how the pixel is installed.
Via GTM:
If you use GTM, the content_ids value in the ViewContent, AddToCart and Purchase tags must come from the item_id DataLayer variable. In the DataLayer push, Liquid template code writes the SKU to the item_id field:
If there is a Shopify native pixel (Customer Events or theme.liquid):
In the Shopify 2.0 architecture, pixels are managed with the Web Pixel API under Settings → Customer Events; installing them directly in theme.liquid is no longer recommended. If a legacy setup still uses theme.liquid, make the following change:
If the native Meta integration was set up through the Facebook channel, check the "product ID" source in the pixel configuration under Settings → Customer Events; this field can differ from store to store.
If Stape or server-side CAPI is used:
In the Stape dashboard → Shopify connector → Product ID field, select SKU. In the server-side event payload, the content_ids field must be sent as an array of SKUs:
Something we've seen at Nodus Works: in some stores, all three installation types run at the same time. If GTM and the native pixel are both active, content_id is sent twice and event counts are inflated. Before migration, check Events Manager to see which sources your events are coming from.
Google Merchant Center and Google Ads
The GMC feed is generated automatically through Shopify's native Google channel, but that channel has no setting to use the SKU as the feed ID, so the IDs change with the native channel. If you've done mapping, keeping the old IDs requires a third-party feed app (or a supplemental feed) that can send the SKU as the ID.
If mapping has not been done (i.e., if you are in a simple migration scenario), Shopify's Google channel sends the feed ID in the format shopify_TR_{product_id}_{variant_id} (e.g., shopify_TR_15004856942958_53499724267886). In this case, GMC creates new product entries, and the history of the old products doesn't carry over. Shopping and PMax campaigns will enter a re-learning phase based on the new products.
Google Ads conversion tracking must be verified after migration. Shopify's Google channel is integrated with GA4; if conversion data from GA4 is imported into Google Ads, this flow should continue uninterrupted after migration. However, if a measurement protocol or server-side tag is used in the GA4 property, ensure that the item_id field is populated with the SKU.
Among the technical steps of a Shopify migration, ad account configuration needs its own planning, especially for stores with active DPA and PMax campaigns; it must be coordinated alongside 301 redirects and product transfers.
Post-Migration Verification Checklist
Don't let ad campaigns run on their normal budget until you've completed the following checks, 24 hours after migration day. Budget spent while problems remain can't be recovered.
Critical Note: A sudden drop in the number of approved products in GMC after migration will waste Shopping and PMax budgets. Recheck your GMC status 48 hours after migration; products may still be under review.
FAQ: Shopify Migration and Ad Accounts
Does the Meta Pixel need to be reinstalled when migrating to Shopify? No. The existing Pixel ID is retained, and the account is not recreated. What needs to change is the source field for the `content_id` value sent by the pixel: it should be the SKU instead of the Shopify variant ID. Since the Pixel ID remains the same, historical event data and audiences are preserved.
Is mapping required if there's no catalog campaign? No. ID matching is unnecessary for stores without catalog campaigns. Shopify's native Meta channel automatically manages the feed and pixel connection; no additional configuration is required.
Will products in Google Merchant Center lose their approval after migration? If mapping hasn't been done, the feed IDs change, so GMC treats them as new products and the old approval history doesn't carry over. Approval starts again. If mapping has been done and the feed is sent by a third-party feed app that uses the SKU as the ID, products appear with the same ID after migration and can stay approved; with the native Google channel, the ID changes.
When does ad performance return to normal after migration? If mapping and the pixel are set up correctly, performance doesn't drop. Without mapping, DPA and PMax campaigns go back into a learning phase, which can take 1-3 weeks depending on campaign size.
How is the Meta Pixel transferred during a Shopify migration? The Meta Pixel stays with your account during a Shopify migration; the pixel ID doesn't change. All you need to do is configure the `content_id` value the pixel sends for products so that it uses the SKU instead of the Shopify variant ID. You can do this through GTM, native Liquid or Stape.
How is the Google Merchant Center feed updated during a Shopify migration? When Shopify's Google channel is activated, it automatically generates the GMC feed. If a catalog campaign is active, assign SKUs to products before migration so they match the old feed IDs; these SKUs should appear as the `id` value in the feed. Because the native Google channel doesn't send the SKU as the ID, this requires a third-party feed app (or a supplemental feed).
Why do DPA campaigns become ineffective after a Shopify migration? Meta DPA campaigns identify products by their `content_id`. If the `content_id` from the pixel and the `id` in the catalog feed differ after migration, the system cannot match the products, and DPA campaigns lose their product-based targeting. Solution: both sides should source the SKU value.
How is SKU mapping done in Shopify? Export the variant IDs or existing IDs from the old platform and write these values into the SKU column of the Shopify import CSV. After import, pull the newly assigned IDs and SKUs through the Shopify Admin API and verify the mapping table. You then use this table to configure the pixel and the feed.
Conclusion
To prevent ad platforms from losing data during a Shopify migration, two things are essential: a proper audit before migration and using the SKU as a platform-independent ID layer. For stores without catalog campaigns, the work involved is minimal; however, for active, high-spending DPA or PMax campaigns, skipping mapping directly results in performance loss.
If you are planning a Shopify migration and have active catalog campaigns, our migration service includes product transfer, 301 redirects, and ad account configuration; ensuring uninterrupted ad performance on migration day is part of this planning.
For the SEO and technical aspects of the migration process, our WordPress to Shopify migration guide covers the steps in detail.





