Stripe Installation
Track your Stripe payments and see which ads produced them. This works with any funnel or landing page builder that takes payment through Stripe. Setup takes about five minutes and happens entirely in your own Stripe dashboard.
Before you start: install the TrueTracked pixel on your funnel pages first. See Pixel Installation. TrueTracked matches Stripe payments to visitors by email address, so if a buyer never enters their email on a page with the pixel, the sale is still recorded but cannot be linked to an ad. Most funnels collect an email before checkout, which is all that is needed.
Step 1: Connect Stripe in TrueTracked
Go to Settings > Integrations. Under Checkouts, click Connect on the Stripe card. Keep this window open, you will need the URL it shows you in the next step.
Step 2: Create the webhook in Stripe
In Stripe, go to Developers > Webhooks and click Add destination. Stripe will ask you a few questions:
- Events: select these two.
checkout.session.completed charge.succeededSelling subscriptions? These two track them correctly. There is a third event that adds the plan name, covered under Optional: show product names below.
- Event destination scope: choose Your account
- API version: leave it as it is
- Destination type: choose Webhook endpoint
- Endpoint URL: paste the URL from your TrueTracked window. It looks like this:
https://t.ttrkd.com/webhook/stripe?workspace_id=YOUR_WORKSPACE_ID - Destination name: type TrueTracked so you can find it later
- Leave everything else as it is and click Create destination
Step 3: Copy the signing secret
Open the destination you just created and reveal its Signing secret. It starts with whsec_. Paste it into TrueTracked and click Connect Stripe.
Test mode and live mode are separate. If you set this up in test mode first, you will need to repeat these steps in live mode and paste the new secret. Each one has its own.
That is the setup complete. Stripe payments will now appear in your dashboard.
If you use Stripe Payment Links
When customers leave your site to pay on a buy.stripe.com link, add one thing so we can connect the sale back to the visitor who made it.
In Stripe, open your payment link, go to After payment, choose Don't show confirmation page, and set the redirect to your own thank-you page with this on the end:
https://your-site.com/thank-you?external_id={CHECKOUT_SESSION_ID}Type {CHECKOUT_SESSION_ID} exactly as shown, including the curly braces. Stripe replaces it with the real value when it sends the customer back.
The thank-you page needs the TrueTracked script on it, the same as the rest of your funnel. Without it there is nothing to read the value. This step is optional, and sales are still tracked without it, they are just less likely to be linked to the ad that produced them.
Optional: show product names and filter by product
Stripe does not include product information in what it sends us, so by default your orders show the amount but not which product was bought. If you want product names, or you want to track only certain products, add a Stripe API key.
In Stripe, go to Developers > API keys and create a restricted key. Choose Providing this key to a third-party application, tick Customize permissions, and give it Read access to just these four, leaving everything else off:
Stripe pre-selects a set of permissions for you. Clear them first by setting every section heading (Core, Billing, and so on) to None, then use the Filter resources box to find each of these four and set it to Read:
- Checkout Sessions (under Core)
- Products (under Core)
- Prices (under Billing)
- Invoices (under Billing)
Click Read on the resource row itself, not on the grey section heading above it. Setting the heading to Read grants read access to everything in that section. You can tell which one you clicked: when the heading is set, the row below turns grey and you cannot change it on its own.
Paste the key into TrueTracked. Read access cannot move money, issue refunds, or change anything in your Stripe account. You can add it at any time and it starts working on your next sale.
If you sell subscriptions, go back to your webhook in Stripe once the key is saved and add one more event: invoice.paid. Together with the key this makes subscription sales show their plan name and lets the renewals setting below work. Adding it without a key has no effect.
Once the key is saved, turn off Track all products to add specific product IDs. You will find them in Stripe under Product catalog (they look like prod_... or price_...). Only sales containing one of those products will be tracked.
If your checkout is embedded directly on your page rather than using Stripe Checkout or a Payment Link, Stripe sends no product information at all, so product filtering will not apply to those sales. They are always tracked.
Subscriptions
Subscriptions are tracked automatically. The first payment and each renewal are recorded as separate sales at the correct amount, and renewals are credited to the ad that originally brought the customer in, so you can see the true lifetime value of a campaign.
Without an API key renewals are always counted, so the Track renewals as new orders setting has no effect, and subscription sales show the amount but not the plan name. Add the key and the invoice.paid event as described above and both start working. Revenue totals are correct either way.
Checking it works
- Visit your own funnel, enter your email in the opt-in form, and complete a purchase. Stripe test mode works for this.
- In Stripe, open your webhook destination and check recent deliveries. You should see a green
200response. - Check your TrueTracked orders list. The sale appears within about a minute.
Using the same email for the opt-in and the payment is what proves attribution is working, not just that the sale was recorded.
Troubleshooting
- Stripe shows an error next to the webhook: the signing secret is wrong. Copy it again from the destination you created and paste it into TrueTracked. Remember that test mode and live mode each have their own.
- Stripe shows 200 but nothing appears: check that Stripe is still connected in Settings > Integrations, and that you are not filtering to products the sale did not include. Also give it a minute.
- Sales appear but are not linked to any ad: the buyer's email never reached TrueTracked. Check the pixel is live on your funnel pages. This also happens when someone pays with Link, Cash App Pay, or Amazon Pay using a different email than the one they typed into your form.
- Nothing arrives at all: check the endpoint URL matches the one shown in TrueTracked exactly, including everything after the question mark.
- Buyers move between your domains: set up cross-domain tracking so they are recognised as the same visitor throughout.