This post is short because the rule is. It exists because the Canadian rule is the opposite of the European one, and a site written for Europe cannot carry it without contradicting itself. Everything below was re-read on Google’s help pages on September 6, 2026.
The rule, as Google writes it
The help page on tax in product data is unambiguous: do not include any taxes, such as value-added tax or sales tax, in the price attribute or any other attributes when targeting the United States or Canada. For the other listed countries, including France, the instruction is the reverse: provide the price including tax and make sure the landing page shows the same price.
The price attribute specification repeats the rule for Canada and adds the consistency constraint: the submitted price must match the landing page and checkout, in the currency of the targeted country, so in Canadian dollars.
The trap almost nobody knows is in the shipping attribute: for Canada only, shipping costs are submitted exclusive of taxes. A feed computing tax-inclusive shipping, as it does for France, is wrong on two attributes, not one.
What breaks when a European feed is migrated as is
Three symptoms, in the order they show up.
Disapproval for price mismatch. The feed says $114.98 (a $100 price to which a French template added Québec taxes), the landing page shows $100 before tax, as Shopify does by default in Canada. The gap exceeds Google’s tolerance: the offer is disapproved, product by product, flagged as a price difference.
Displayed price too high and click-through rate collapsing. When the gap falls under the disapproval threshold, or when the page was aligned in the wrong direction, the Shopping ad shows a price 15% above Canadian competitors who advertise before tax. Nobody clicks.
Structured data, feed and checkout diverging. Google cross-checks the feed price against the page’s schema.org markup and the checkout amount. A European theme writing the tax-inclusive price into structured data creates a third value. The account eventually receives a data quality warning affecting the whole catalogue.
The four-point consistency rule
One same number, before tax, in Canadian dollars, in four places: the feed’s price attribute, the visible price on the landing page, the price property of the page’s structured data, and the pre-tax subtotal at checkout. Taxes are added at checkout according to the delivery province; they appear nowhere upstream.
On Shopify: what is already right
Shopify displays prices before tax by default. The help page on tax-inclusive pricing lists the countries where the feature applies, and Canada is not on it. For a Canadian store the default configuration is the right one, and the only way to break it is to deliberately turn on tax inclusion in prices, which some European brands do when they open a Canadian market by duplicating their store.
Check two things. Under Settings, Taxes and duties, the option to include taxes in prices is off. In the Google and YouTube channel, the target country is Canada and the currency is the Canadian dollar: a feed sent in euros to a Canadian target country is disapproved before the tax question even arises.
What it means for a Québec customer
Québec applies two taxes calculated separately on the same pre-tax price: federal GST at 5% and QST at 9.975%, 14.975% combined. On a $100 product before tax, the customer pays $114.98 at checkout. That is the amount your ad must never display, and also the one your page must not write into its structured data. Other provinces range from GST alone at 5% to a combined HST of up to 15%: current rates are on the Canada Revenue Agency site, and it is the store’s tax module that applies them at checkout, not the feed.
What the tax-exclusive rule does not allow in the ad
Submitting before tax to Google is not a licence to advertise “no tax”. Revenu Québec prohibits advertising wording such as “no GST or QST” or “tax-free day”: a merchant absorbing the taxes must advertise an equivalent discount. And the price shown in a Shopping ad is a product price, before tax, which is accepted because taxes depend on the delivery province. The broader subject of all-inclusive pricing in advertising will get its own post.
Ten-minute check on an existing account
- In Merchant Center, open Products, Diagnostics and filter issues containing “price”. Note the number of offers affected.
- Pick three products at random. For each, note the feed price (Products, All products, price column), the page price, the structured data price (view source and search for
"price"), and the pre-tax subtotal in a test cart with a Québec address. - All four values match: the feed is sound on price. One diverges: that is the one to fix, never the other three.
- Open the
shippingattribute of a product and compare it with the tax-exclusive shipping rate configured in Shopify. If the feed amount is 5% to 15% higher, an app or a template is adding taxes to it. - Redo the test after the fix and wait for the next feed processing before concluding.
A correct Canadian feed is not complicated. What gets expensive is building it from a European feed assuming only the currency changes. If you are migrating a European catalogue to Canada, our Google Ads in Montréal page describes how we set up Merchant Center for the Canadian market, and the neighbouring question, one feed or two for a bilingual store, is coming in a later post.