Connect Meta (Facebook and Instagram) to your Shopify store

By the HonestTag team ยท Published October 16, 2026

HonestTag sends each verified Shopify order to Meta from its server through the Meta Conversions API, so Facebook and Instagram ads can be measured and optimized on real orders. You connect it by signing in with Facebook on the Meta card, choosing your ad account and pixel, and answering one question about Shopify's own Facebook & Instagram channel, which decides whether HonestTag also sends Meta's standard Purchase event. This page lists what you need, the steps, what is sent and read, and how to check it works.

What you need

Connect Meta, step by step

  1. Check your Facebook & Instagram channel. In your Shopify admin, go to Sales channels > Facebook & Instagram, click Settings, then Data sharing settings, and note which level is chosen: Standard, Enhanced or Maximum. The Meta card asks about it.
  2. Sign in with Facebook. In the HonestTag app, go to Setup and click Connect Meta on the Meta card. If Facebook asks which Businesses to share, choose the one that owns your ad account, and keep Ads Read checked.
  3. Choose the ad account and pixel. Pick your ad account from the list, and paste your Pixel (dataset) ID from Meta Events Manager. The ad account is optional for sending purchases; HonestTag needs it to read spend.
  4. Answer the data-sharing question and save. Answer whether Shopify's Facebook & Instagram channel is sharing data at Enhanced or Maximum, then click Save settings. On a paid plan HonestTag sends Meta one test event to confirm the pixel.
  5. Set up the four purchase goals. In Meta Events Manager, create a custom conversion for each HonestTag event as it appears, using the names the card lists, with Purchase as the standard event for optimization.

A sign-in token lasts about 60 days, which matches Meta's own description of a long-lived token ("A long-lived token generally lasts about 60 days."). HonestTag renews it automatically each night before it expires. Meta issues system-user tokens either non-expiring or valid for 60 days, so check which kind you pasted. When you save with Meta connected on a paid plan, HonestTag sends one test event, named HonestTag_SetupCheck, to the pixel with the stored token. On the free plan it waits and sends that test when you choose a paid plan. If Meta refuses the test on a paid-plan save, the settings are still saved and the card shows Meta's reason so you can fix the pixel ID or the token's access. If it fails when you move to a paid plan, the failure is recorded for your store rather than shown on that save. Meta says events sent with a test code "are not dropped. They flow into Events Manager and are used for targeting and ads measurement purposes", so you may see that one event in your dataset.

The four purchase goals in Meta

For each order it sends (see which orders are sent), HonestTag sends custom events to your pixel:

To optimize a campaign on one of them, make it a custom conversion. In Meta Events Manager, click Custom Conversions in the top-left menu, then Create custom conversion. Enter the name the card shows (for example HonestTag_Purchase_NC), choose your dataset as the data source and the event with the same name as the conversion event. Meta's help says that for a custom event "the option to Choose a standard event for optimization appears"; choose Purchase. Leave the rules empty and click Create. Meta notes "You can only select an event that you've already set up on your website", so HonestTag_Purchase_NC and HonestTag_Purchase_FCNC appear after the first new-customer order of their kind, and HonestTag_Purchase_RC after the first returning-customer order. Meta allows up to 100 custom conversions per ad account.

On a paid plan, when the Meta credential you connected, Facebook login or system-user token, includes the Ads Management permission, HonestTag creates the four custom conversions in your ad account when you save the pixel, or uses ones already there with the same name, and lists each with its ID and status. Meta has not yet approved that permission for the HonestTag app, so most stores create them by hand with the steps above. HonestTag never changes a custom conversion you made. Which goal to bid on is explained in the HonestTag conversion actions.

What HonestTag sends to Meta

For each eligible order HonestTag sends one request to your pixel's Conversions API endpoint. It holds:

For buyers in US states with their own privacy laws, such as California, events carry Meta's Limited Data Use flag. HonestTag does not send Meta a website order more than 7 days old, the limit Meta's event time rule sets. If Meta reports accepting only part of a batch, the order's proof says so and HonestTag does not resend it, because Meta's answer does not say which events it accepted. A batch Meta reports accepting none of is retried. Consent rules are the same as for every destination and are on the server-side delivery page. A bundle is sent as one product.

The card's optional switch Also send browse events (AddToCart, InitiateCheckout, AddPaymentInfo) is off by default. When on, HonestTag also sends those steps with no order value. Each needs Meta's own click or browser ID (fbc or fbp) and always carries the visitor ID, plus the IP address and user agent when the browser's request includes them. Email and phone are never sent with them. Leave it off if a pixel in your theme already sends them.

What HonestTag reads, and what it never touches

Avoid counting a purchase twice

Meta pairs a browser Pixel event with a Conversions API event when their event name and ID match. HonestTag's event ID is computed on its server, so no browser pixel and no other app can send the same one. Meta also documents matching on fbp and external_id, with two limits. Meta says of it: "Generally, it only works for deduplicating events sent first from the browser and then through the server." It also "Does not deduplicate events when only using one event source", and "If you send us two consecutive server events with the same information, we do not discard either."

That is why the card asks about Shopify's Facebook & Instagram channel. Shopify says that at Enhanced, "your store uses Facebook's Conversions API as well as the Meta pixel", and that "The Conversions API sends the purchase event between Shopify and Facebook servers." Maximum also uses the Conversions API. So:

The HonestTag_Purchase events carry their own names, so they cannot collide with any other tool's Purchase and are sent whatever you answer. The duplicate purchase events guide shows how to find every purchase source on a store.

Refunds, edits and which orders are sent

How to check it works

  1. On the card. After you save, the Meta card shows the pixel, the ad account, whether browse events are on and whether the standard Purchase is on.
  2. In HonestTag order proof. After the next online order, open it in the HonestTag app. The proof shows Meta as the platform, the delivery status, the event ID and which events were sent, for example HonestTag_Purchase and HonestTag_Purchase_NC.
  3. In Meta Events Manager. The HonestTag events appear in your dataset as orders arrive. Meta's help says to "check the custom conversions tab in Events Manager to see if it worked (status is active)." Meta's Test Events tool, under Events Manager > Data Sources > your pixel > Test Events, works by sending the test ID it generates "as a test_event_code parameter", and HonestTag's order events do not carry one.

Error messages and what to do

Disconnecting

Disconnect from the Meta card, or uninstall the app. Delivery and spend reads stop at once and the stored token is deleted. Everything already measured stays, per the published retention schedule. Custom conversions in your ad account stay there. Moving from another tracking app is covered in switching apps.

Frequently asked questions

How do I set up the Meta Conversions API on Shopify without a developer?

Install HonestTag, open the Meta card on the Setup page and click Connect Meta. You sign in with Facebook, choose your ad account, paste your pixel (dataset) ID and answer one question about Shopify's Facebook & Instagram channel. HonestTag then sends each eligible online store order to Meta from its server. There is no code to add to your theme.

Will Meta count my purchases twice if I also use Shopify's Facebook & Instagram channel?

HonestTag's four events have their own names, HonestTag_Purchase and its _NC, _RC and _FCNC variants, so they never collide with the channel's Purchase. The standard Purchase event is the one that can double count. The two copies carry different event IDs, and Meta says its other matching method does not discard two consecutive server events with the same information, so while the channel shares at Enhanced or Maximum, which sends Purchase through the Conversions API, HonestTag keeps its own standard Purchase off.

Which event should my Meta campaigns optimize on?

Create a custom conversion from the HonestTag event you want and choose it as the campaign's performance goal. HonestTag's suggestion: HonestTag_Purchase_FCNC for prospecting (HonestTag_Purchase_NC if FCNC volume is too low), HonestTag_Purchase_NC for retargeting and catalog campaigns, HonestTag_Purchase_RC for retention. Set only one as the goal of a campaign, because one new-customer order reaches several of them.

Does HonestTag create the custom conversions for me?

Only on a paid plan, when the Meta credential you connected, Facebook login or system-user token, includes the Ads Management permission. Meta has not yet approved that permission for the HonestTag app. Otherwise the card lists what to enter and you create them in Events Manager. Meta offers an event there only after it has received one, so the new-customer and returning-customer goals appear after the first order of each kind.

Does HonestTag send refunds to Meta?

No. HonestTag sends Meta no refund or retraction event. The refund is recorded in the order's proof in the HonestTag app instead.

What does HonestTag read from my Meta ad account?

With an ad account chosen, it reads daily spend, clicks and impressions, plus the purchases and purchase value in Meta's Insights reporting, for the account and each campaign. It never changes a campaign, ad set, ad, budget or audience.