sGTM Containers

POAS Data Feed

Send the profit of each purchase to Google Ads, GA4 and Meta instead of its revenue, with a product catalogue of margins.

4 min readUpdated Oct 19, 2026FlyNode docs
Browse documentation

Need a hand?

Can't find your answer? Our team replies fast.

Contact support

POAS (profit on ad spend) tells you how much profit your ads make, not only how much revenue. To optimise for it, the ad platform must be told the profit of each purchase instead of its revenue. The POAS Data Feed power-up keeps your product margins in your server container's Data Store and gives you a variable that turns a purchase into its profit. The margins never reach the visitor's browser.

It is on the Pro plan and above.

How it works

  1. You give FlyNode a feed: a CSV file with one row per product (an ID and a margin, or an ID, a cost and a price).
  2. FlyNode stores each product's margin in the poas_feed collection of your Data Store, and keeps it up to date with auto sync.
  3. In your server container, the FlyNode POAS Margin Lookup variable reads the purchased items of the event, looks up each product's margin and returns margin x quantity added up.
  4. You use that variable as the conversion value of your tags.

Set it up

  1. Prepare the feed. A CSV (comma, semicolon or tab separated) with a header line. Examples: WooCommerce with the columns id and margin; Shopify with SKU and Cost per item and the price. Put the cost of every product in your shop first, then export or publish the file at an address.
  2. Open your container, go to Power-Ups and turn on POAS Data Feed. Your container restarts once.
  3. Type the feed address (or Upload a CSV file) and press Load columns. FlyNode shows the columns and a few rows.
  4. Choose the product ID column, then what the value is: the margin (an amount), the margin as a percent of the price (needs the price column) or the cost per item (margin = price minus cost, needs the price column). Choose the value column (and the price column).
  5. Turn on Auto sync and pick how often (every hour, 6 hours, day or week). Press Save and sync now. The products appear in the table.
  6. Download the FlyNode POAS Margin Lookup template. In your server container open Templates, Variable Templates, New, the three-dot menu, Import.
  7. Create a variable of that type. Set Product ID field to the field your store sends in items: item_id for WordPress and most stores, item_sku for Shopify. Decide what happens to a product that is not in the feed: count as 0 profit, or count at its price.
  8. Use the variable as the value of your purchase tags. For GA4 add an event parameter value (or a custom one, for example profit, which you must register as a custom metric in GA4). Do the same for the value of your Google Ads and Meta purchase tags. In the web container, the GA4 tag needs Send Ecommerce data on and a trigger on the purchase event.

Test it

  1. Open the server container in Preview and make a test purchase.
  2. Open the tag and look at its parameters: the value is your profit for that purchase.

The product table

Under the feed settings you see every product with its margin. Search by product ID, Add product by hand, Edit a margin or delete a product. A margin you edit by hand is replaced by the feed at the next sync unless the product is not in the feed.

Good to know

  • Each product is one document of your Data Store, so products count toward its limits (Pro 50,000 documents, Business 500,000, Enterprise 5,000,000). The collection poas_feed also shows in the Data Store tab.
  • The feed address must be reachable from the internet (not a private network address) and the file can be up to 15 MB. A file upload can be up to 14 MB.
  • Rows without a product ID or a usable number are skipped; the last sync tells you how many.
  • A sync removes products that are no longer in the feed keeps the catalogue the same as the file. Leave it off to keep products you added by hand.
  • If a purchase has no product from the feed, the variable returns nothing and the tag keeps its own value.
  • Turning the power-up off keeps your products and settings.

Still stuck?

Open a support ticket from your dashboard and include the container name.

Contact support