Changelog

Product updates

What we've shipped. No promises about what's coming.

Marketing mix: where your data stands, and clearer Ads pages

Latest release
Product
  • Marketing mix: the page explains what the days count (calendar days since your first order and first ad spend), the date the minimum duration will be reached and the progress on each criterion. On top of the 56 days, it needs at least 100 orders and €1,000 of ad spend: below that, the page shows “Unreliable results” instead of misleading figures.
  • Ads: a Status column on the ad set and ad levels (“Paused (campaign)”), a “Low data” badge only for ROAS computed on less than €10 or fewer than 1,000 impressions, estimated profit computed with the same margin at every level, and a note that reconciles the ad sets total with the campaigns total.
  • Creatives: spend not linked to a creative is shown, so the total matches the Ads page.

Marketing mix: what each ad platform brings in, with its range

Product
  • The Marketing mix (MMM) page now has its own spot in the menu. It accounts for the carryover and saturation effects of Meta, TikTok and Google, never reports a negative iROAS, states its reliability (low, medium, good) instead of a raw R², checks its forecast against the last few weeks and suggests a better budget split with a simulator. It needs at least 56 days of sales and ad spend.

The Shopify subscription has the final say on your plan

BillingLegal
  • Canceling a legacy Stripe subscription no longer changes the plan paid through Shopify, the trial or Meta passback. A plan approved on Shopify is picked up even if the redirect back to the app failed. Every Shopify charge paid by a referred merchant credits their partner. The Terms of Sale and Terms of Use explain how to cancel and get a refund for a previous subscription.

Open system alerts are the same everywhere

Product
  • The menu, the Alerts page and the overview count the same open alerts. A trial email run or a cleanup that finished without errors no longer stays open. Dates are in Paris time.

A deletion request can be followed through to the end

LegalProduct
  • The request and the immediate deletion apply to the signed-in account. A request that is still pending can be canceled. An approval leaves a PDF and an audit log entry, and so does a refusal. Dates are in Paris time.

The command center says what it counted

Product
  • The audit log loads. Metrics are counts, and the system status follows the actual sync schedule. The affiliate program is no longer in the admin menu.

The command center aligns its counters

Product
  • Open alerts are the same in the menu and on the overview. Today's figures follow Paris time. Monthly revenue includes the founding price and leaves out the test plan.

Ads and orders land on the right day

Product
  • Google and Klaviyo request data by their account's day, and spend is in your currency. The Ads page and the Orders page show the same revenue as the P&L, on the day shown on the dashboard.

Shopify counts the full refund, and every variant

Product
  • The refund on a synced order is the official total, even when Shopify returns only one page of it. Tracking is taken from the latest shipment. Products with more than 250 variants keep their cost and stock. Pixel status reads the published theme through the GraphQL API.

Facebook spend lands on the ad account's day

Product
  • The Facebook sync requests days in the ad account's time zone, the same as Ads Manager. A connection with many ad accounts fetches all of them.

TikTok Shop counts the sale, and ads land on the right day

Product
  • The TikTok Shop token renews on its own. Sales use the amount paid (products, shipping, tax), without counting the TikTok discount as a fee. TikTok ad spend follows the store's day.

Settings follow the right account and the right store

Product
  • Costs, stores, ads, the pixel and Meta passback are those of the open dashboard, for the selected store. Two-factor authentication, account deletion and API keys stay on the signed-in account. A loading error is no longer shown as an empty list or a successful save.

The profile shows the signed-in account

Product
  • Name, email, plan, trial date and stores are those of the signed-in account. A store in error is no longer marked as connected. An account without a password can set one, and a password that is too long is rejected.

The Partner page leaves the dashboard

Product
  • The Partner entry is no longer in the menu. The affiliate program (link and commissions) continues, managed from the admin.

Billing shows the plan and price of the open account

BillingProduct
  • The plan, the Shopify price (founding, test or public monthly) and invoices are those of the open dashboard. Only the owner can subscribe, cancel or request a refund. A canceled invoice is no longer marked as failed, and annual billing no longer advertises a 20% discount.

The team is the open account's, and a freed seat can be reinvited

Product
  • The list, invitations and removals apply to the open account. Revoked access no longer holds the seat, and the invitee stays pending until they accept the link.

The activity feed dates the sale, the refund and the sync

Product
  • A counted order stays on its date, with the amount from the Orders page and the store name. The refund is a separate event, on its own date. A sync that failed or is still running is no longer shown as finished.

Integrations show the accounts of the open dashboard

Product
  • Each store and each ad account belongs to the open account. A sync only touches the selected card, TikTok Shop no longer shows its technical token, and the result of a Meta or TikTok connection is shown on the page.

Tracked buttons follow the store's day

Product
  • A click is filed under the store's day, and the last 30 days are exactly those 30 days. “All stores” shows every counter, the displayed day no longer moves backward.

Quality, attribution, mix and analytics read the same revenue

Product
  • These four pages follow counted orders, the time zone and calendar days. A purchase without an order is no longer a duplicate, and a UTM campaign's revenue is that of the linked order.

Tracking counts the orders from the P&L

Product
  • Conversions, the funnel and session duration follow counted orders and real visitors. Revenue is the period's, an order isn't counted twice, and the step rate no longer exceeds 100%.

Creatives split the revenue from the P&L

Product
  • Revenue, ROAS and contribution start from the orders counted in the P&L, over the same period as the dashboard. Spend is converted to the account currency. The best creative is picked across the whole catalog.

UTM campaigns are for creating a link

Product
  • The page no longer offers auto-linking or a sync to Shopify Marketing. It creates a link for an email, an influencer, or a slug to attach to an ad campaign. Ads tagged with the campaign ID show up in Ads on their own.

The Customers page reads sales from the P&L

Product
  • Revenue, AOV, segments and the 30/60/90-day windows come from the orders counted in the P&L. A refund is deducted once, on its date. The first order sets the acquisition source.

The Products page reads sales from orders

Product
  • Sales, profit and margin come from the line items counted in the P&L. A refund reduces the amount pro rata, on the day chosen in settings. VAT only affects margin if it's deducted from profit.

The dashboard home aligns its numbers with the P&L

Product
  • The chart, ad spend, new customers and AOV excluding VAT use the same amounts as the P&L. A sale and its refund each land on their own date. VAT is only shown as a deduction if that setting is on.

The P&L adds up in order

Product
  • On the P&L page, tips, gift cards, manually entered ad spend and non-operating costs sit on the subtotal line they change. “7 d”, “30 d” and “90 d” cover that many days, and the dates are shown above the table.

The founding waitlist gets the homepage background

Marketing
  • The waitlist shows the same P&L as the homepage. It reserves Starter at €19/month for the first 50. The 14-day trial stays open, and nothing is charged at sign-up.

The sign-in pages get their logo square back

Product
  • On sign-in and sign-up, the logo's gradient square shows again, like on the homepage.

Sign-in and sign-up on the same background as the homepage

Product
  • The sign-in and sign-up pages are no longer a form on a black background. Same look as the homepage, with the profit example (4.2× Meta, 2.1× true).

Shopify installation returns to the store step

Product
  • An existing account that installs the app from the Shopify admin gets back to that account, on the store step, with the store connected.
  • The installation session lasts 30 minutes. If it expires, signing in brings you back to that step.

Onboarding gets the homepage background

Product
  • Setup is no longer a black screen: same background as the homepage, and the ProfitPilotPro logo.

The Shopify plan applies on return, and onboarding ends with the guides

BillingProduct
  • As soon as a plan is approved on Shopify, it's applied to the account. No more waiting for the next run.
  • After the store is connected, onboarding offers to choose a plan and comes back to the same screen.
  • The last step shows the guides and a contact form, before the dashboard.

Onboarding that actually follows your setup

Product
  • After connecting an ad platform, you come back to the ads step. After Shopify, to the store step.
  • Onboarding opens on what's left to do. The email code is only announced once it has been sent.
  • The summary lists what's in place. The dashboard opens when you decide.

Shopify consent and customer requests

LegalProduct
  • On a Shopify store, the pixel waits for the Customer Privacy banner. Without marketing consent, email, phone, IP address and fingerprint are not sent to ad platforms.
  • A Shopify customer data request is forwarded to the merchant. An erasure request also removes browsing data and the shipping address.
  • The Shopify plans page no longer marks the subscription as active before the merchant has approved it.

Billing through Shopify only

BillingLegal
  • New subscriptions go through Shopify only, on the store's invoice. Without a connected store, the Billing page asks you to connect one.
  • No more “Pay with Stripe” button or Checkout to subscribe.
  • The Terms of Sale, Terms of Use, privacy policy, documentation and contact page describe this rule.

Documentation by guide, legal and billing

ProductLegalBilling
  • Documentation split into guides (getting started, store, ads, tracking, costs, metrics, plans). The old single page is replaced.
  • Google Ads in the guides: Enhanced Conversions, Shopify order ID in the orderId field.
  • Billing as of this date: active Shopify store → Shopify collects payment. Otherwise, another payment method. Replaced on September 26, 2026: Shopify only.
  • Legal pages updated: KALMIE company, Hostinger as host, affiliate cookie only after the banner. The mediator is displayed; registration with an approved mediator is still pending.

Waitlist emails, blog & security hardening

ProductMarketingBilling
  • Waitlist: thank-you email on sign-up, follow-ups on day 2 and day 7, then an invitation when your spot opens
  • Full refund: the Stripe subscription is canceled before the account goes back to the trial (avoids a charge after the refund)
  • Stripe Checkout: dark theme matching ProfitPilotPro, prices shown including VAT (test phase)
  • Admin security: CSRF protection on sensitive actions; an admin can no longer disable another account's 2FA
  • Blog: two new guides — weekly P&L vs. platform ROAS, Meta CAPI + TikTok checklist (dedup and event quality)
  • Footer: Blog and Changelog links; separate Guides link removed (content grouped under the blog)

Legal redirects & footer

LegalMarketing
  • Public aliases (/cookies, /mentions, /affiliation…) → canonical /legal/* pages
  • Proxy allowlist: no more login redirect on short legal paths
  • Footer: Partner program link (Affiliate)

Affiliate partner program

ProductBilling
  • 30% commission for 12 months, 60-day hold (money-back guarantee)
  • /r/CODE link + ?ref= cookie, partner dashboard and admin panel
  • Stripe balance credit or manual payout on request

Reliable Stripe refunds

Billing
  • Confirmed full refund → back to the trial plan (14 days)
  • refund.created, refund.updated and charge.refunded webhooks supported
  • Affiliate commissions automatically canceled on a full refund

FR/EU legal pack

Legal
  • Terms of Sale and Terms of Use then written for a single payment provider, 60-day money-back guarantee. Rule in force from September 25 to 26, 2026: Shopify if a store is active. Since September 26, 2026: Shopify only.
  • Withdrawal, privacy policy and cookie pages — public routes
  • Consumer mediator hidden until registration with the mediator

Plans & post-trial soft lock

ProductBilling
  • Unlimited orders — plans differ by features (Starter / Pro / Agency)
  • End of trial: baseline access (orders, P&L, billing) + premium locked
  • Consistent sidebar with padlocks, Pilot Insights and premium widgets hidden

Stripe billing

Billing
  • Stripe Checkout, Customer Portal and invoice.paid webhooks
  • Billing page: subscription, cancellation at period end, PDF history
  • Founding waitlist offer (€19) built into the billing flow

Documentation & landing page

MarketingProduct
  • /docs page redesigned (Stripe, Passback Pro+, plans from plan-limits)
  • Lighter landing page for cold Meta traffic, pricing aligned with the actual price list
  • Advanced attribution and Meta Passback reserved for the Pro plan and above

Waitlist & public status

MarketingInfra
  • Founding waitlist with limited spots and a locked-in price
  • /status page: platform health via real HTTP pings (Meta, TikTok, Shopify…)
  • Public routes fixed (waitlist accessible without login)

Need help or a specific feature?