CONTENTS

    How Shopify Skincare Stores Can Measure Email Campaign Revenue With Attribuly

    avatar
    alex
    ·October 10, 2025
    ·7 min read
    Cover
    Image Source: statics.mylandingpages.co

    Build a reliable, repeatable workflow to measure email-attributed revenue across Klaviyo, Shopify, Google Analytics 4 (GA4), and multi-touch analytics—then reconcile the differences with confidence.

    • Time: 2–4 hours for setup, plus 48–72 hours to validate live data
    • Difficulty: Intermediate (Shopify, Klaviyo, and GA4 admin access recommended)
    • You’ll need: Shopify admin, Klaviyo (or your ESP), GA4 property access, a test email address, and consistent UTM conventions

    Why this matters: Email drives a large share of DTC skincare revenue—but each platform counts revenue differently. Shopify tends to credit the last click; Klaviyo attributes to the last qualifying open or click within its window; GA4 uses data-driven models by default. You’ll get accurate numbers only when you standardize tracking, verify events end-to-end, and adopt a clear reconciliation policy. For context, see Shopify’s 2025 guidance on key email metrics in the article by Shopify, “13 Email Marketing Metrics You Should Be Tracking” (2025), which underscores focusing on click and conversion quality rather than opens in a privacy-first world: Shopify 2025 email metrics guide.

    Prerequisites checklist

    • Admin access to Shopify, Klaviyo (or ESP), and GA4
    • A shared UTM template for email links
    • A seed/test list to send yourself test campaigns
    • Decision policy drafted: attribution window, source of truth for finance vs. marketing

    Step 1 — Standardize UTMs in Klaviyo (and test them)

    Do this before sending any campaign.

    • Set defaults: In Klaviyo, open Account settings and enable automatic UTM tracking for all emails. Use a consistent naming convention, for example:
      • utm_source=klaviyo
      • utm_medium=email
      • utm_campaign={{ campaign.name }}
      • utm_content={{ message.name }} (or variant ID)
    • Enforce lowercase and avoid spaces/special characters in values.
    • Update templates so every CTA uses your UTMized link pattern.

    Why this matters: Consistent UTMs let Shopify, GA4, and your attribution platform group email traffic correctly. Without them, you’ll see “Direct/None,” misattribution to popups, or missing campaign detail.

    Verify it

    • Send a test campaign to your seed inbox.
    • Click a CTA and watch the final landing URL—your UTMs must persist after any redirect.
    • In GA4 Realtime/DebugView, confirm session_source/medium reflect your choices (e.g., klaviyo / email) and that the purchase event carries the same source/medium.
    • In Shopify Analytics, your order should appear under an email-related traffic source/referrer (allow for processing delay). Shopify’s own overview on revenue attribution (2024) highlights how last-click logic can shape what you see in these reports: Shopify 2024 revenue attribution explainer.

    Note: If you need a refresher on how Klaviyo handles UTM tracking and where to configure it, Klaviyo’s Help Center describes UTM options and implementation paths in detail: Klaviyo Help: Add and manage UTM tracking.

    Step 2 — Configure Klaviyo attribution windows and filtering

    • Set email attribution windows: In Klaviyo Settings > Attribution (UI labels may vary), set your Email Click Attribution Window and Email Open Attribution Window. From experience, most Shopify skincare brands rely on click-based attribution; consider narrowing or disabling open-based credit due to Apple Mail Privacy Protection (MPP).
    • Understand the model: Klaviyo attributes revenue to the last qualifying touch (open or click) within the window for its own channels. Default windows are editable and can vary by account creation date.

    Why this matters: If Klaviyo credits an open within 5 days while GA4 uses a different model and window, your revenue will diverge.

    Verify it

    • After sending a live campaign, compare Klaviyo’s campaign revenue report with your GA4 and Shopify checks 48–72 hours later. Expect differences. Klaviyo’s official article “Understanding message attribution” explains last-touch logic and configurable windows: Klaviyo Help: Understanding message attribution.

    Step 3 — Confirm what Shopify shows (and its caveats)

    Key reports

    • Analytics > Reports: search for “Sales by traffic source/referrer” and “Online store sessions by traffic source.”
    • Read with context: Shopify typically credits the last external touch. Direct traffic can overwrite earlier touches; subscription and draft orders may report differently; time zone/currency differences also cause deltas.

    Why this matters: Shopify is often your finance source of truth for booked orders, but it’s not designed to perform multi-touch marketing attribution. Experts frequently note how Shopify’s last-click tendencies differ from GA4 and ESP reporting; see the 2025 comparison by Analyzify: Analyzify 2025 on Shopify vs GA4 differences.

    Verify it

    • Filter your order list by test recipient or timeframe and confirm the attributed source aligns with your UTM-based email click when it was the last click.
    • Compare AOV and currency handling against Klaviyo/GA4 for the same period.

    Context you can reference when troubleshooting: Littledata’s 2023 write-up catalogs common Shopify-to-analytics pitfalls (checkout domains, direct overwrites, and more): Littledata 2023: 10 things to watch in Shopify attribution.

    Step 4 — Tune GA4 for accurate email analysis

    • Attribution settings: In GA4 Admin > Attribution settings, review your Reporting attribution model (Data-driven is the default in new properties) and Lookback windows. For many DTC brands, keeping DDA is useful for acquisition; for email performance reviews, compare against last-click in the Model comparison report.
    • Cross-domain continuity: In Admin > Data Streams > Web > Configure tag settings > Configure your domains, include your storefront and checkout domains so the email session and purchase stay unified.
    • Analysis views: Use Reports > Acquisition > Traffic acquisition and filter to your email source/medium. Save custom comparisons for campaigns.

    Verify it

    • In Realtime/DebugView, confirm a test click shows session_source/medium = klaviyo / email (or your chosen convention), and your purchase fires.

    Where to learn more: Google’s own documentation outlines lookback window options and their impact (help content current in 2024–2025): Google Analytics Help: Lookback windows and attribution settings.

    Step 5 — Improve reliability with server-side and consent-aware tracking

    • Use Shopify’s pixel framework and server-side events where possible so clicks and purchases are captured even with ad blockers or Safari limitations. Honor user consent and regional privacy rules.
    • For subscription flows, verify that server-side events include recurring and draft orders so revenue isn’t missing from your analysis.

    Verify it

    • Use your app’s diagnostics and Shopify event logs to ensure purchase events include the UTM parameters you expect.

    Tip: Shopify’s developer docs cover Web Pixels, Customer Events API, and checkout extensibility for advanced setups (reference updated continuously): Shopify developer docs: Web Pixels and Customer Events.

    Step 6 — Resolve identities to reduce “unknown” traffic

    Skincare shoppers often browse on mobile and purchase on desktop—especially for replenishment. Identity resolution connects those visits when the email address is known, reducing “Direct/Unknown” and improving your email’s true impact.

    Verify it

    • After a test user clicks from an email on device A and later purchases on device B while logged in or identified, ensure your analytics platform shows a unified journey rather than two unrelated sessions.

    Privacy note: Apple Mail Privacy Protection (MPP) inflates opens by preloading images. Meanwhile, iOS 17 Link Tracking Protection (LTP) can strip certain tracking parameters in Mail, Messages, and Safari Private Browsing. Apple documents LTP’s behavior in its support materials (2023–2024): Apple Support: Link Tracking Protection in iOS 17. Prioritize click and conversion-based measurement and test that your UTMs persist to the final landing URL.


    Practical example: See how multi-touch attribution clarifies email’s true impact

    Disclosure: Attribuly is our product.

    Imagine this real-world flow for a skincare replenishment campaign:

    • Day 0: A subscriber clicks your “Refill your Vitamin C Serum” email (utm_source=klaviyo, utm_medium=email, utm_campaign=vitc-refill-sep).
    • Day 2: The same shopper sees a retargeting ad and returns.
    • Day 3: They purchase a serum + moisturizer bundle.

    Here’s what you’ll typically see:

    • Klaviyo: Credits the email if the click is within your window (e.g., 5 days) and it’s the last qualifying touch.
    • Shopify: Credits the last click (possibly the retargeting ad) in Sales by traffic source.
    • GA4: Distributes credit based on your reporting model (Data-driven by default) and lookback window.
    • Multi-touch view: A journey shows both the email and retargeting ad, splitting credit according to your model. Identity resolution links the user across devices.

    If you want to operationalize this across all campaigns with multi-touch and identity resolution, you can use Attribuly to see journeys, assisted revenue, and model-based splits alongside your Shopify orders.

    How to validate this scenario in practice

    • Send a small test to a seed list; ensure one recipient also engages with a paid retargeting touch.
    • After 48–72 hours, compare campaign revenue across Klaviyo, Shopify, GA4, and your multi-touch tool. Log the variances and reasons (model/window differences, last-click vs multi-touch, refunds).

    Reconciliation workflow (use weekly)

    Make discrepancies actionable instead of frustrating.

    1. Choose a source of truth
    • Finance: Shopify orders (net of refunds) for booked revenue
    • Marketing: A multi-touch model or GA4 model comparison for budget decisions; Klaviyo last-touch for lifecycle program tuning
    1. Normalize attribution windows
    • Align Klaviyo’s click window with your analysis window when you compare systems. For upper-funnel reviews, use longer windows; for campaign performance, consider shorter ones.
    1. Compare models side-by-side
    • In GA4’s Model comparison, examine data-driven vs last-click for email. Expect lower or higher credited revenue depending on how much paid retargeting overlaps.
    1. Avoid double counting
    • Deduplicate overlapping sends (campaign vs flow) and clarify whether upsell flows post-purchase can claim the same order.
    1. Maintain a variance log
    • Track platform totals for the same campaign 72 hours after send; record % deltas and the rationale. Patterns emerge quickly and drive better decisions.

    Supportive reading: Analysts frequently document these platform differences. The 2025 Analyzify guide provides practical comparisons, and Littledata’s 2023 post lists common traps you can audit in minutes: Analyzify 2025: Shopify vs GA4 and Littledata 2023 on Shopify attribution issues.

    Read your skincare KPIs the right way

    Focus on what moves margin and retention:

    • Revenue per recipient (RPR) and placed order rate by campaign/segment
    • AOV by regimen bundle vs single SKU (serum + moisturizer often lifts AOV)
    • Time-to-purchase after email for replenishment cohorts (e.g., 30/45/60 days)
    • Assisted revenue from email in multi-touch journeys
    • Refund-adjusted revenue and discount impact by segment

    Shopify’s 2025 email metrics overview emphasizes prioritizing meaningful engagement over vanity opens, which aligns with using clicks, conversions, and cohort outcomes as your north star: Shopify 2025 on essential email metrics.

    Troubleshooting playbook (quick wins first)

    • Apple MPP open inflation: Favor click-based attribution in Klaviyo and report on clicks/conversions. De-emphasize opens.
    • iOS 17 Link Tracking Protection: If parameters are stripped in certain contexts, validate that UTMs survive to the final URL; prefer click-based tracking and server-side events. Apple’s support materials describe where LTP applies: Apple Support on LTP.
    • UTMs missing/overwritten: Turn on default UTMs in Klaviyo, avoid link shorteners that drop parameters, and test redirects end-to-end.
    • Double counting between flows and campaigns: Document deduplication rules and exclude overlapping audiences when possible.
    • Subscription and draft orders: Confirm server-side capture so these orders appear in your analytics and don’t understate email.
    • Cross-domain/headless: Configure GA4 cross-domain to keep the email session intact at checkout.
    • Refund timing: Align net revenue and refund windows across tools; reconcile weekly.

    For a deeper primer on how attribution windows and models influence numbers, test model comparisons in GA4. Google’s help center explains lookback windows and the mechanics you can adjust: GA4 Help: Lookback windows.


    Next steps

    • Run your first reconciliation: choose one high-volume campaign from the last 7 days and compare revenue across Klaviyo, Shopify, and GA4 using the workflow above.
    • Standardize: lock your UTM template, attribution windows, and variance log template so your team can repeat this every week.
    • Add multi-touch and identity resolution to your stack to see assisted revenue and cross-device journeys. You can set this up on your Shopify store with a lightweight install here: Install Attribuly for Shopify.

    Retarget and measure your ideal audiences