Opteno connects your Shopify store to your Google Ads account and shows real profit per product, per variant and per market — after cost of goods, refunds and ad spend. Built for merchants whose revenue runs through Google Shopping and Performance Max.
Five example products with their ad spend, revenue, ROAS, POAS and net profit over the last 30 days.
Product
Ad spend
Revenue
ROAS
POAS
Net profit
Everyday Denim Jacket4 variants
€1,240
€9,920
8.00×
4.16×
+€3,918
Coastal Cedar Board2 variants
€860
€4,730
5.50×
2.92×
+€1,647
Merino Crew Knit — Navy6 variants
€2,000
€8,000
4.00×
0.88×
−€240
Harbour Canvas Tote3 variants
€1,510
€4,530
3.00×
0.91×
−€130
Aurora Linen Shirt5 variants
€980
€1,960
2.00×
0.75×
−€245
Example figures, not a customer’s data. The account totals look healthy — 4.42× ROAS, +€4,950 kept — while 3 of the 5 products lose money.
No tracking script on your storefront
No campaign changes without your approval
Connect in under five minutes
Disconnect at any time
Live in under five minutes
Two connections, no developer, and no tracking script to install.
1
Step 1: Connect your Shopify store
One pass through Shopify’s own OAuth flow. Opteno reads products, variants, orders, refunds, cost-per-item, markets and price lists — and nothing else. There is no script to add to your storefront.
ConnectShopifyOrders, products, costsAuthorise
2
Step 2: Connect Google Ads
Sign in with Google’s own OAuth flow; we never see your password. Opteno reads daily spend, campaign and Performance Max structure, and the offer identifiers Google reports spend against.
Ad spend, revenue, cost of goods, refunds, ROAS, POAS and net profit on one row per product, over rolling 7, 14, 30 and 60-day windows. Sort by net profit and the losers surface immediately.
ProductNet profit
Denim Jacket+€3,918
Cedar Board+€1,647
Merino Knit−€240
Canvas Tote−€130
What you actually see
Opteno is built around one job: telling you which Google Ads spend turns into profit, and what to do about the spend that does not.
Profit dashboard
Ad spend, revenue, cost of goods, refunds, ROAS, POAS and net profit on one row per product — with a reason printed wherever a number cannot be computed.
Google Ads exclusions
Stop paying for products that lose money: exclude their offers from Performance Max asset groups, previewed against Google before anything is applied.
Automations
Profit rules that run on a schedule and prepare the changes they imply — then stop, because anything that touches your store waits for a person to approve it.
Competitors and imports
Track competing Shopify storefronts, see what they sell and in what order, and copy the products worth carrying into your own catalogue as drafts.
Built for the two accounts your revenue runs through
Opteno works with Shopify and Google Ads — the systems you already run the business on. There is nothing else to adopt.
Shopify
Google Ads
Worked example
A 3.2 ROAS that loses money
One product, one month of Google Ads. Google reports the top line and stops there. Everything below it is yours to find — and it is where the answer changes.
Revenue from ads
€4,800
Ad spend
€1,500
What Google shows you
ROAS 3.2
Cost of the goods sold
− €2,640
Shipping, fees and refunds
− €910
Actual profit
− €250
Opteno shows this line for every product you sell, every day — so the decision to scale it, fix it or stop it is made on the profit, not on the ROAS. Figures are an illustration, not a customer result.
Opteno is being rolled out to a first group of Shopify merchants. We would rather leave this space visibly empty than fill it with testimonials nobody gave, so there are no reviews, no logos and no invented numbers on this page.
When merchants agree to be named, their names and their figures go here — and you will be able to check them.
Free for 7 days, then billed monthly. Cancel before day 8 and pay nothing.
3+ stores included
Per-product ad spend, revenue, cost of goods, refunds, ROAS, POAS, gross margin and net profit
Rolling 7, 14, 30 and 60-day windows, with variant, country and market breakdowns
Google Ads sync and automatic tracking
Exclude and include product offers in Performance Max asset groups
Automations, approvals, Slack and signed webhooks
Billed monthly · per store · no setup fee · no per-seat charge
The free trial lasts 7 days and starts when you subscribe to Google Ads sync. A card is required to start it: Stripe saves it and charges nothing during the trial, then bills your plan monthly from day 8 unless you cancel before the trial ends. One free trial per workspace. Subscriptions are billed monthly. Payments are processed securely by Stripe. You can change or cancel at any time.
You are connecting the two accounts your revenue runs through. Here is exactly what that means.
Google Ads
Opteno connects through Google’s own OAuth flow, so we never see your password. It reads spend and Performance Max structure. The only write it can make is excluding or including a product offer in an asset group — never a budget, never a bid, never pausing a campaign — and only after a person approves the change it previewed against Google first.
Shopify
Opteno reads products, variants, orders, refunds, cost-per-item, markets and price lists. It can draft or archive a product, publish one to a market and change a price — each one staged and applied only on approval. It cannot edit your theme, contact your customers or issue refunds.
Your credentials
Provider tokens are encrypted at rest with AES-256-GCM and a fresh initialisation vector per value, never written to logs and never shown back to you in full. This site loads no third-party script, no external font and no external image: scripts may come only from this origin, each carrying a nonce issued for that single response.
Revoke at any time
Disconnect in Opteno and the stored credentials are destroyed immediately; revoke from your Google or Shopify account page and our access ends from their side. Deleting your account removes it, your memberships and your API keys with no recovery window. No email, no support ticket.
The full detail — retention, sub-processors, export and erasure — is in the privacy policy.
Questions before you connect
The things merchants ask most, answered plainly.
Does Opteno change my campaigns without asking?
No. Every change Opteno can make — drafting or archiving a product in Shopify, excluding or including a product offer in a Performance Max asset group, publishing to a market, changing a price — is staged as a proposal and applied only when a person approves it. Automations decide what to propose; they never decide what ships.
Is it read-only, or can it write to my accounts?
Read-only until you approve something. The writes it can make are narrow and named: in Google Ads it can only exclude or include a product offer inside a Performance Max asset group — never a budget, never a bid, never pausing a campaign. In Shopify it can draft or archive a product, publish it to a market, and change a price. Nothing else is reachable.
What do you store, and what happens if I cancel?
Your account, your workspace, and the Shopify and Google Ads data needed to compute the numbers. Disconnecting a provider destroys its stored credentials immediately. Deleting your account removes it, your memberships, your API keys and any workspace you are alone in, with no recovery window. Audit and security records survive, stripped of your IP address and browser at the moment you delete; they lose those columns after 400 days in any case. The privacy policy sets all of this out in full.
Does this work if I only have one store?
Yes — one store is the normal case and the entry tier. Every tier is the same product; connecting a second store simply lowers the price per store.
How is this different from a general analytics dashboard?
A general dashboard reports revenue. Opteno reports profit for one product at a time: it joins Google Ads spend to real Shopify orders through the product offer identifiers Google reports spend against, subtracts cost of goods and refunds, and gives you POAS beside ROAS. Where it cannot compute a figure it says which input is missing instead of showing a zero.
Which countries and currencies work?
Your store’s currency and your ad account’s currency can differ; every day’s spend is converted at the rate for that day rather than at today’s rate, so a closed period keeps the profit it was earned at. Where a day has ad activity and no usable rate, the affected totals are shown as not computable rather than estimated. Profit also breaks down by country and by market, because the same product often earns in one and loses in the next.
How long does setup take?
Two OAuth flows, one for Shopify and one for Google Ads. There is no script to add to your storefront, no pixel and no change to how your ads run. The first sync then backfills your recent history before the numbers settle.
Do you support Meta ads?
No. Opteno covers Google Ads — Shopping and Performance Max — and nothing else today. If your spend is mostly on Meta, this is not yet the tool for you, and we would rather say so now.
See which products are losing you money
Connect Shopify and Google Ads in under five minutes. From $14.99 a month, cancel whenever you want, and no change to your store or your campaigns without your approval.