Measurement, conversion and retention: agency vs in-house
From click to repeat order: how measurement, site speed, testing, retention flows and consent records differ between an agency and an in-house team.

TL;DR
Three linked stages set the slope of a growth curve: measurement, conversion and retention. With incomplete measurement, the ad platform learns from part of reality and customer acquisition cost (CAC) is misread. Conversion is a chain of steps multiplied together, so small gains compound. Retention spreads a CAC paid once across more orders. The difference comes from running all three on one database with a written rhythm, and either an agency or an in-house team can do that.
Marketing measurement is the work of recording each step a customer takes from ad click to repeat order as an event, merging those events in one database without double counting, and using that data for budget, site and messaging decisions. Conversion and retention run on that data; when it is wrong, both are optimised in the wrong direction.
This post, part of our agency vs in-house series, follows the line from click to repeat purchase and asks who should run each part.
Growth you cannot measure is a guess
Only 52% of senior marketing leaders say they can prove marketing's value and receive credit for it, and three of the biggest barriers are about talent, including the talent to integrate and analyse data (Gartner, 2024). Measuring ROI is the challenge marketers name most often, at 33% (HubSpot, 2026).
Meta and Google bid on the conversions they see. When browser restrictions, ad blockers and consent choices hide some orders from the platform, two things happen. Reported CAC looks higher than it is, so a working campaign may be switched off. And the algorithm never sees some real buyers, so it stops looking for people like them; bids drift toward weaker audiences and the real CAC rises too.
Measurement looks like marketing but is engineering: servers, an event schema, a database. Teams without those skills set it up once and leave it without an owner. If you employ a data or web engineer, keeping this layer in-house is usually the right call. What matters is that someone owns it after the build.
The measurement layer: events, deduplication, one database
An event dictionary. Product view, add to cart, checkout start, purchase and form submission each get one name everywhere and a unique ID every time they fire. Without a dictionary, three tools tell three different stories.
Deduplication. Meta's current developer documentation recommends implementing the Conversions API alongside the Meta Pixel, so each purchase arrives from both browser and server. It is counted once when the Pixel's eventID matches event_id and the Pixel event matches event_name, for events received within 48 hours of the first one with that ID (Meta, 2026). The documentation gives no performance figure here; for us the gain is correct counting. Without deduplication, orders that arrive through both channels count twice, ROAS looks inflated and budget scales on a false signal. With the Pixel alone the error flips: orders vanish and CAC inflates.
One database and reconciliation. Platform reports are models; your store's order database is the source of truth. Compare the two every week, and if the gap suddenly moves, check measurement before budget.
The server-side setup itself is covered in performance ads for Turkish brands entering Europe.
Conversion starts with speed
Measured traffic still leaks away on a slow site. A study prepared for Google followed 37 brand sites across Europe and the US for four weeks: a 0.1 second improvement in mobile speed was observed alongside an 8.4% increase in retail conversions, a 9.2% increase in retail average order value and a 10.1% increase in travel conversions (Deloitte, 2020). These are observed relationships, not controlled experiments. In a single-company case, Vodafone improved Largest Contentful Paint (LCP) by 31% and saw total sales rise 8% (web.dev, 2021).
Funnel arithmetic explains why. Hypothetically: of 10,000 visits, 8% add to cart, half of those start checkout, and 60% of those buy. That is 240 orders. Improve each step by 10% in relative terms and you get 319, or 33% more. With the same ad budget, if those are new customers, CAC falls by roughly a quarter. CAC is not set in the ad account alone: speed, checkout steps and product pages sit in its denominator.
Speed also decays as apps, scripts and images pile up, so set a per-template speed budget for LCP, image weight and third-party scripts, and check it on every release. In-house, speed often falls between the marketer and the developer. With us, design, engineering and ad management sit at the same table, and the team that builds your web and e-commerce platform also runs the ads.
Who runs the experiments
An experiment needs one hypothesis, a metric and a duration fixed in advance, and someone who records the result. The two usual failures are changing three things at once, so nobody knows what worked, and tests that never end.
We plan the first 30 to 45 days of a new ad account or campaign as a learning period, and changing creative, landing page and budget together in that window makes results unreadable. The testing calendar is written with the ad calendar.
In 2021, 71% of consumers expected companies to deliver personalised interactions, and personalisation most often drove a 10 to 15 percent revenue lift (McKinsey, 2021). Today 93.2% of marketers say personalised or segmented experiences led to more leads and purchases, yet only 65% report high-quality audience data (HubSpot, 2026). The gap points to the problem: personalisation is only as good as the database behind it.
The in-house team knows the product and the customer best, and good hypotheses usually start there. An agency adds rhythm: a testing calendar, a log and one checklist per test. In a setup that works, the company supplies the hypotheses and specialists handle the build and the reading.
Retention after the first order
CAC is paid once; repeat orders spread it. Hypothetically: you acquire a customer for 600 TL and each order leaves 250 TL of contribution margin after product, shipping and payment costs. Stop at one order and you are 350 TL down; the second order narrows that to 100 TL, and the third puts you 150 TL ahead.
A brand with a higher repeat rate can afford a higher CAC, bid higher in the auction, win more new customers and feed them into the same flows, while a rival counting only first orders pulls back. A CAC that includes people costs is worked through in the real cost of an in-house marketing team vs an agency.
Set up the flows in this order; a marketing automation stack for a five-person team shows how a communication robot runs them.
- Order confirmation, shipping and delivery notices, which customers already expect.
- A review request after delivery.
- A second-order reminder timed to how long the product lasts.
- An abandoned cart reminder.
- Win-back after a long silence.
The first item goes to everyone; flows 2 to 5 need marketing consent.
Consent is part of the data model
Under Turkish Law No. 6563, commercial electronic messages may be sent only with the recipient's prior consent, obtained in writing or by any electronic means, while tradespeople and merchants may be messaged without it (Law No. 6563, Art. 6). So a campaign email to a consumer needs consent; not every B2B message does. This is general information, not legal advice.
In the data model, consent is a field on the customer record, held per channel with date and source, and email, SMS and WhatsApp sends read it before they go out. After a complaint or in an audit, you should be able to show with one query when consent was given, for which channel and where. Spread across five tools, one of the lists goes stale sooner or later.
Messages without consent are a risk, not growth
When a message that breaches the consent rule goes to more than one person at once, the administrative fine can be increased up to tenfold (Law No. 6563, Arts. 6 and 12). That is why bought lists, old addresses without a consent record and files of unknown origin never enter any sending flow.
The comparison: a typical DIY setup vs a managed setup
| Area | Typical do-it-yourself setup | Managed setup |
|---|---|---|
| Event source | Browser Pixel and tags only | Browser and server, with a written event dictionary |
| Deduplication | Missing or never tested | event_id matching, tested with real orders |
| Consent records | A list in the email tool | A per-channel customer-record field with date and source |
| Speed budget | Checked when someone complains | A ceiling per template, checked every release |
| Testing cadence | Occasional, several changes at once | Scheduled, one hypothesis, logged |
| Retention flows | Order confirmation and a newsletter | Transactional for all, the rest only with consent |
| Reporting | Separate platform dashboards | One weekly report reconciled with store data |
The right-hand column does not require an agency. A team with in-house web and data engineers can build it and, knowing the product more closely, is then usually the better choice. An agency brings those skills to the same table without separate hires and builds everything in your company's name from day one; if you leave, code, content, accounts and documentation go with you.
Reports that lead to decisions
The weekly report we send every Monday at 08:00 covers sales, traffic, ad performance and the content published that week. A report drives decisions when it also shows CAC, repeat order share, what changed and why, and the one decision needed this week. Revenue and order figures come from the store database, not platform dashboards.
Every line maps to a lever. If CAC rose, check the reconciliation gap, then the conversion steps, then bids and creative. If repeat order share fell, check the flows. A line that drives no decision is dropped. On top of the weekly report sit a monthly strategy meeting and a quarterly review.
Marketing measurement, conversion and retention checklist
- A written event dictionary with a unique ID for every event.
- Browser and server events share one
event_id, and a test order is counted once in Meta. - A weekly reconciliation of platform purchases against store orders.
- Consent as a per-channel customer-record field with date and source.
- A speed budget per template, checked on every release.
- A test log: hypothesis, metric, duration, result.
- Retention flows in order: transactional, review, second order, abandoned cart, win-back; everything past transactional only with consent.
- One decision line in the weekly report.
- Accounts, database and code in the company's name, exportable.
Where to start and what it costs
The Launch Program builds the core of this setup in eight weeks: the web and e-commerce platform, a command panel on one database, server-side measurement with the Pixel and the Conversions API, and the first email flows. It costs $9,900, paid 40/30/30 at contract, design approval and launch. After that, Monthly B runs Meta ads management, the social media engine, maintenance and the weekly report for $990 a month plus a share of online net revenue. You pay ad budgets directly to the platforms, with no margin hidden in media. Add-on prices are on the programs page, and the step-by-step calendar is on our process page.
The targets we set are management targets, not a guarantee. If you already have reliable measurement and a web developer, you may not need the full Launch Program; sometimes the answer is to fix measurement alone, and we say so in the brief. Scope details are on the performance ads and marketing automation pages.
Also available in Türkçe.


