Skip to main content

Media Buying for COD Ecommerce: Measure Beyond the Pixel

· 7 min read
Madabina Editorial Team
Seller and developer education

A campaign test is followed from an ad signal through an order to a delivery outcome.

For cash-on-delivery (COD) ecommerce, an ad-platform “purchase” can be an order that was created online but later refused, cancelled, or returned. Set up a media-buying test with a clear hypothesis, change one main variable at a time, and reconcile platform signals with merchant order and delivery records. This makes it easier to judge whether a campaign creates delivered orders at a cost your business can support.

Start with unit economics and a stop limit​

Before launch, estimate what one fulfilled order contributes before advertising: collected revenue minus product cost, packing, delivery or carrier charges, payment or service fees, discounts, and expected refusal or return costs. Use your own supplier and carrier figures. The amount left is not automatically profit; fixed costs, taxes, and other business expenses may still apply.

Set a maximum test spend and a fulfillment limit you can handle. Do not borrow a budget from future orders or raise spend because one early event appeared in an ad dashboard. Pause if the checkout, event setup, stock, or delivery operation is failing.

Choose one question and test it cleanly​

Write a short test brief before creating the campaign:

  1. Objective: what do you want the campaign to change—qualified visits, checkout starts, or orders that are later delivered?
  2. Hypothesis: what specific message or creative should help, and why?
  3. One variable: choose creative, offer, audience, or landing page as the main comparison. Keep other conditions as consistent as practical.
  4. Budget and duration: decide the spend cap, review window, and stop conditions before launch. There is no universal budget or number of days that guarantees a valid result.
  5. Fulfillment capacity: confirm stock, customer follow-up, and delivery availability for the volume you could receive.

TikTok’s current ad testing guide recommends a defined goal, testing a variable systematically, and using the KPI that matches that goal. Treat low-volume results as directional rather than conclusive. Do not change the creative, audience, price, and delivery promise together: you would not know which change affected the result.

A numbered four-step campaign test: state a hypothesis, isolate a variable, observe comparable results, and decide.

Keep a note of the campaign, the single planned change, the review window, and the reason for your next decision.

Separate platform metrics from store outcomes​

Collect both groups of measures, but do not combine them into one “sales” number:

Ad-platform measures come from the campaign account: spend, impressions, link clicks, and conversions attributed under that platform’s settings and attribution window. They describe what that platform reports; they do not independently verify COD delivery.

Store and fulfillment measures come from the merchant workflow and carrier records: valid orders created, customers reached or confirmed under your process, parcels delivered and paid, cancellations, refusals, returns, and the associated costs. Use consistent statuses and compare the same order cohort and date range.

Madabina’s current storefront integration sends GA4 purchase, Meta Purchase, TikTok CompletePayment, and OpenAI order_created after successful order creation. Those events represent an online order record, not a delivered COD sale. Review the integration guide and use your order and fulfillment records for delivery outcomes.

If you need to compare campaign sources with store records, use a consistent campaign label or tagged destination and a private working sheet keyed to internal order references. Do not add customers’ phone numbers to an ad report. If you cannot reliably connect a delivered order to a campaign, label the result “source unknown” or “platform attributed”; do not present it as verified campaign-caused sales.

Metrics worth calculating​

Use definitions that your team can apply every week:

  • CPM = ad spend ÷ impressions × 1,000. Use platform spend and impressions.
  • Outbound link CTR = outbound link clicks ÷ impressions × 100. Keep the click type consistent across comparisons.
  • Link CPC = ad spend ÷ outbound link clicks. This is a traffic cost, not an order cost.
  • Cost per created order = campaign spend ÷ valid, unique orders created and assigned to that campaign under your chosen source rule.
  • Cost per confirmed order = campaign spend ÷ unique orders confirmed under your documented process.
  • Cost per delivered order = campaign spend ÷ unique orders marked delivered and paid in your fulfillment records.
  • Cancellation/refusal/return rate = orders with the chosen outcome ÷ orders created in the same cohort. Report each outcome separately when possible.
  • Contribution per delivered order = collected amount minus product, packaging, delivery, fees, discounts, and return/refusal costs for that order.

For every rate or cost, write down its numerator, denominator, source, time period, and status rule. For example, do not divide this week’s ad spend by last month’s delivered orders. If campaign attribution is estimated, say so. A platform’s ROAS or purchase count can be useful as a platform metric, but it cannot replace a delivered-order margin calculation for COD.

Hypothetical example​

Suppose a test spends DZD 12,000 and the store records 20 valid created orders that the merchant can consistently associate with that campaign. Cost per created order is DZD 600. If 11 of that same order cohort are eventually delivered and paid, cost per delivered order is about DZD 1,091. These figures are hypothetical and omit the product and fulfillment costs; they do not predict actual campaign performance. The delivered-order contribution must still cover the advertising cost and other business expenses.

A four-part diagram separating ad spend, created orders, delivered orders, and contribution margin.

Use different records for ad spend, store orders, delivery outcomes, and the margin calculation.

Check tracking before optimizing​

Before interpreting a campaign, open the relevant provider diagnostics and verify that one storefront action produces one expected event at the intended destination. Check for two copies of the same destination—one direct integration and another GTM tag. Confirm that checkout start and order creation are not being confused. Review the GA4 ecommerce event reference, GTM data layer guide, and the TikTok standard event update. Madabina’s current TikTok mapping uses the older CompletePayment name; TikTok recommends Purchase for newly created pixels. Check the COD integration details before basing an optimization objective on that event.

Browser restrictions, consent choices, ad blockers, attribution windows, and configuration errors can affect platform reports. A clean event test proves that an event reached the destination at that moment; it does not prove incrementality, profitability, or delivery success.

Decide what to do after the test​

Use the same review window and order statuses. If the result is promising but there are few delivered orders, keep it as a hypothesis and continue only within your spend and fulfillment limits. If people click but do not start checkout, inspect the product page and offer. If orders are created but not confirmed or delivered, review the order details, customer follow-up, stock, delivery zones, fee clarity, and operational causes before buying more traffic. If delivered orders do not cover contribution and advertising costs, revise the economics or pause.

Change one meaningful factor for the next test and write down what you learned. The online store marketing guide helps improve the offer and content; the store launch guide covers the product, delivery, mobile review, and COD order path.

Sources​