Conversion tracking
Track Stripe sales from your links
Yes — you can track Stripe sales from your directinapp links today. Add dia_slug to your Checkout Session metadata and connect our signed Stripe webhook, and every checkout.session.completed event auto-captures a conversion against the link that drove it, with no code on your success page. Prefer to fire it yourself? Drop the pixel, a postback or our dia.js script on the thank-you page instead. Totals stay per currency in ₹ INR, $ USD and € EUR.
Can you track Stripe sales from a link?
Yes. Add dia_slug to your Stripe Checkout Session metadata and point a signed Stripe webhook at directinapp. Each checkout.session.completed event then auto-captures a conversion against that link, with its count, value and conversion rate, and no code on your success page. It never touches your Stripe keys or checkout.
Why it matters
Auto-capture, no success-page code
Connect a signed Stripe webhook for the checkout.session.completed event and every paid Checkout Session records a conversion on its own. directinapp verifies each event against your Stripe signing secret, reads dia_slug from the session metadata, and credits the link that drove the sale. It is HMAC-verified and idempotent, so a retried webhook never double-counts.
Rupees, dollars and euros stay separate
Stripe sells across borders, so directinapp keeps each currency on its own line. Totals are shown per currency (₹ INR, $ USD, € EUR, plus GBP and AED) and never blindly summed into one meaningless number. Your rupee revenue reads as rupees and your euro revenue as euros.
Never touches your Stripe keys or checkout
This stays webhook-based, not a native Stripe integration, so it never handles your API keys or your Checkout flow. You keep Stripe Checkout exactly as it is: add one dia_slug metadata field and connect a webhook, or fire the pixel or postback yourself. It works today on the Stripe stack you already run.
Set it up
Three steps, no developer
Add dia_slug to the Checkout Session
When your server creates the Stripe Checkout Session, set metadata[dia_slug] to the link's slug, for example diwali-sale. Add metadata[dia_clid] too if you want each sale tied to the exact click that drove it. That metadata is what rides through to the webhook and names the link.
Connect the signed Stripe webhook
In your Stripe Dashboard, add a webhook endpoint for the checkout.session.completed event pointing at directinapp. Copy the signing secret Stripe shows you and paste it, with the webhook URL, into directinapp Settings. It is HMAC-verified, idempotent and tenant-safe. Prefer no webhook? Fire the pixel GET /c?s=SLUG&e=purchase&v=499&cur=INR, POST /conversions, or drop in dia.js on your success page instead.
Read the report in Business
Open the Conversions tab to see the count, total value per currency, conversion rate, a per-event breakdown, a timeseries, and a feed with Click and Visitor columns. Ingestion runs on every plan; viewing the reports needs the Business tier, and the free early-bird trial month is full Business.
Stripe checkout
a sale happens
directinapp
records it
Frequently asked questions
Can I track Stripe sales from my links?+
Yes, today. Add dia_slug to your Stripe Checkout Session metadata and connect a signed webhook for the checkout.session.completed event, and every paid order auto-captures a conversion against the link that drove it, with no code on your success page. Prefer manual? Fire the pixel or a server postback on your thank-you page instead.
How does the Stripe webhook know which link to credit?+
Attribution rides in the Checkout Session metadata as dia_slug, with an optional dia_clid for the click. When Stripe sends checkout.session.completed, directinapp verifies the event against your signing secret, reads dia_slug, and records the conversion against that link in the session's own currency and amount. It is idempotent, so Stripe's retries never double-count.
Do I have to change my Stripe integration?+
No. There is no native Stripe integration and we never touch your API keys or your Checkout. You keep Stripe Checkout as it is and add one dia_slug metadata field plus a webhook endpoint, or fire the pixel or postback yourself. Nothing about your existing payment flow changes.
Which currencies can I record from Stripe?+
Stripe often means global sales, so directinapp records ₹ INR, $ USD, € EUR, and also GBP and AED. Totals are kept per currency and never summed across currencies, so a Session that charged in euros stays in euros and your rupee orders stay in rupees. The conversion rate is shown against the real clicks on that link.
Can I see which visitor or click made the Stripe sale?+
Yes. Each conversion ties to the click that drove it (a dia_clid) and to a first-party visitor id (a dia_vid) for that browser, so the feed's Click and Visitor columns fill in. Because the dia_vid is cookie-scoped to one browser, recognising the same person across devices is not built yet, and cross-device identity stays on the roadmap.
Are the Stripe webhooks signed, and is the postback signed too?+
The Stripe webhook is HMAC-verified against your signing secret, so directinapp only accepts genuine checkout.session.completed events. The plain POST /conversions postback is a different path and is currently unsigned, so keep that call server-to-server and off any public page. HMAC-signed postbacks are still on the roadmap.
More on conversion tracking
directinapp Business
The full conversion-tracking product — pricing, setup and a live demo.
Conversion tracking
Conversion tracking is measuring the real outcomes a link drives — a sale, a signup, a lead — not just the clicks. You tell your analytics tool "this counts as a conversion, worth this much," and it ties that outcome back to the link that earned it. directinapp does this on every link: fire a pixel, a postback or our drop-in dia.js script when a sale happens, and see the count, the rupee value and the conversion rate for that exact link — right down to which click and visitor drove it.
Instagram sales tracking
Yes — you can track sales and signups from an Instagram bio link or reel. Put your store or checkout behind a directinapp link, fire our pixel on your payment success page, and the Business report shows the count, rupee value and conversion rate that link drove. Even though a bio or reel is one shared link, per-visitor and per-click attribution shows which visitor and which click drove each sale — the visitor id is cookie-scoped to this browser, not the same person across devices.
vs Linktree
Linktree tells you a link got clicked. directinapp tells you it drove 12 purchases worth Rs 5,988. On any link you can fire our tracking pixel or server postback with a sale value, and the Business tier shows conversion count, total value and conversion rate per link, per currency (INR/USD/EUR/GBP/AED). Attribution now runs per-click and per-visitor (dia_clid and dia_vid), and signed webhook auto-capture for Razorpay, Stripe, Shopify and WooCommerce records a paid order automatically.
Tracking pixel
A tracking pixel for links is a tiny 1×1 image you load when a sale happens. Point an img tag at GET /c?s=SLUG&e=purchase&v=499&cur=INR and directinapp records one conversion — with its rupee value — against the link that drove it. No SDK, no cookie, no code beyond one line of HTML.
Server postbacks
A server postback records a conversion by sending a POST /conversions call from your backend to directinapp. You send JSON with the link's slug, an event name, value and currency, and the dashboard shows counts, total value and conversion rate per link. It is shipped and works today. Signed, HMAC-verified postbacks are on the roadmap.
Lead tracking
Yes — you can track leads and signups from any directinapp link today. Fire a "lead" or "signup" event from your form's thank-you page with our pixel or postback, and each link shows its lead count, conversion rate, and a per-event breakdown. Attribution ties each lead to the click and the visitor — a cookie-scoped id for this browser — that drove it; recognising the same person across devices is still on the roadmap.
Stop losing clicks at the browser
Create your first smart link in under a minute and see where every tap really goes.
Start freeNo credit card required · 7-day free trial