Analytics

How to track print on demand revenue in Google Analytics 4

Stop guessing your print-on-demand profits. Learn the precise GA4 setup that reveals true revenue and costs — even if your store runs on Shopify, Etsy, or WooCommerce.

Performance Marketing Expert
Rafirit Station
📅
21 min read

Is GA4 actually recording every conversion you care about?

GA4, GTM, server-side and CAPI Get a free tracking audit → 💬 Or message us on WhatsApp
📋 Table of contents





    How to Track Print on Demand Revenue in Google Analytics 4 (2026)

    By Rafirit Station Editorial Team · Updated 2026 · ⏱ 24 min read

    If you don’t track print on demand revenue in Google Analytics 4 yet, you’re flying blind. The global print on demand market is projected to reach $10.24 billion by 2032, up from $6.44 billion in 2024 (Statista). Meanwhile, GA4 is now the only Google Analytics property — Universal Analytics stopped processing hits on July 1, 2024. In 2026, the question isn’t whether to switch; it’s whether your e-commerce events are accurate enough to make revenue decisions.

    Why does this matter now? Google is phasing out third-party cookies and leaning on consent mode v2. Every purchase path is more fragmented — a customer may see your print on demand ad on Meta, check your Dhaka-based website from a phone, and pay via bKash or Cash on Delivery. The default GA4 setup for many stores shows only 60-70% of true revenue because cross-domain traffic leaks, missing events, and duplicate transactions skew the data.

    Here’s what bad tracking costs a typical Bangladeshi print-on-demand brand: if you spend ৳85,000 on Meta Ads and Google Ads but only 67% of sales are attributed correctly, you think you’re losing money on a ৳450,000 month when you’re actually profitable. Or worse, you scale a campaign that looks profitable and discover you’re bleeding ৳35,000 in hidden fees — shipping surcharges, failed prints, and return labels. In our experience, fixing GA4 e-commerce tracking increases measurable revenue by 15-25% within 60 days.

    By the end of this guide, you’ll know exactly how to track print on demand revenue in Google Analytics 4: setting up a data layer, configuring purchase events, enabling enhanced measurement, building real-time dashboards, and reporting for client work. We’ll also show you a Dhaka case study where this approach lifted monthly revenue by ৳320,000.



    📚 External Resources (Bookmark These)


    🔗 Rafirit Station Services


    📊 Get Your GA4 Revenue Tracking Audited

    For Dhaka print-on-demand owners who want to see true profit in 30 days


    🗓 Book Your Free Strategy Call →

    No commitment · 60-minute session · Bangladeshi clients welcome


    Phase 1: Fix Your Data Foundation

    Before you can track print on demand revenue in GA4, you need a clean data foundation. Most print on demand stores have multiple domains — your online store, a fulfillment API, a designer tool, and a payment gateway. If every page and event isn’t connected, you’ll get duplicate or missing transactions.

    Tactic 1.1: Audit your current GA4 installation

    Why this works: Many sites have duplicate tags, missing purchase events, or wrong currency settings. A 15-minute audit will show you which events are actually live and what data quality you are starting with.

    Exactly how to do it:

    1. Open GA4 and go to Admin → Data Streams to confirm you have one web stream.
    2. Use GA4 DebugView in your browser on your storefront and checkout page.
    3. Test that the page_view event fires on every page and is not duplicated.
    4. Check Enhanced Measurement is enabled and that scroll and click events appear.
    5. Review the Realtime report to confirm currency is BDT and event names are lowercase.
    6. Use Google Tag Manager preview mode to see if tags fire on your order confirmation page.
    7. Note any red errors or missing tags — these are your first fixes.

    Pro script / template: Use Google Tag Assistant or GA4 DebugView. Type “DebugView” in your GA4 admin panel and look for a purchase event on your thank-you page. If it doesn’t appear, your revenue will always be zero — no matter how many orders you get.

    📊 Expected results: After a clean audit, you’ll see 95%+ of pages firing page_view correctly within 2 hours. Most clients find at least one broken event that was hiding revenue.

    Tactic 1.2: Map your print on demand funnel

    Why this works: Print on demand has a unique funnel — product view, design customization, add to cart, checkout, then payment via online or cash on delivery. You need each step as an event so you know where revenue and user drop-offs happen.

    Exactly how to do it:

    1. List every page in your funnel: product page, customization page, cart, shipping, payment, thank you.
    2. Define event names: view_item, add_to_cart, begin_checkout, purchase.
    3. Add monetary values: for add_to_cart, use average order value; for begin_checkout, use basket value.
    4. Identify if your payment gateway exits to a new domain (e.g., SSLCommerz, bKash checkout).
    5. Set up cross-domain measurement in GA4 for any linked domain.
    6. Document all events in a tracking plan spreadsheet.

    Pro script / template: Use a spreadsheet and map each funnel step to a GA4 event. For print on demand, don’t forget the custom design page — many buyers preview before they add to cart. If that step isn’t tracked, you’ll miss 20-30% of your leakage.

    📊 Expected results: Within one day, you’ll know exactly which event to use for revenue and which funnel steps are broken. In our Dhaka projects, mapping the funnel reveals that 12-20% of users drop off on the custom design page — a place most owners never check.

    Tactic 1.3: Implement Google Tag Manager (if you haven’t)

    Why this works: GTM lets you manage GA4, Google Ads, Meta Pixel, and custom events from one dashboard. It’s the easiest way to send print on demand revenue data to GA4 without editing code every month.

    Exactly how to do it:

    1. Create a free GTM container at tagmanager.google.com.
    2. Add your GA4 configuration tag and set your measurement ID.
    3. Set up a trigger for all pages.
    4. Add custom HTML or GA4 event tags for view_item, add_to_cart, and purchase.
    5. Use dataLayer variables to capture e-commerce values like price and transaction ID.
    6. Test in GTM preview mode with a real order.
    7. Publish the container and verify in GA4 Realtime.

    Pro script / template: Push your container ID into your Shopify theme’s head section. In GTM, create a variable named “ecommerce” and use a dataLayer push like window.dataLayer.push({event: 'add_to_cart', ecommerce: ...}). This is the core of GA4 print on demand tracking.

    📊 Expected results: You’ll have flexible tracking infrastructure that cuts future setup time by 70% and makes it easier to connect BigQuery and Looker Studio later.


    Phase 2: Set Up Conversion Events & Revenue Tracking

    Once your data foundation is clean, you need to tell GA4 what a “conversion” is and attach true revenue values. This is where most print on demand stores fail: they track clicks, not purchases, and they never send the order total with the event.

    Tactic 2.1: Use Enhanced Measurement first

    Why this works: GA4’s Enhanced Measurement automatically tracks purchases, scrolls, outbound clicks, and site searches with zero code changes. For 80% of Shopify stores, enabling it catches basic purchase revenue immediately.

    Exactly how to do it:

    1. Go to Admin → Data Streams → select your web stream.
    2. Enable Enhanced Measurement and turn on all options (page views, scrolls, outbound clicks, site search, video engagement, file downloads).
    3. In the same menu, turn on “Enhanced Ecommerce” if you use Shopify or WooCommerce plugin.
    4. Load your order confirmation page and verify a purchase event appears.
    5. Check that the event has value and currency fields.
    6. Set transaction_id to avoid counting the same order twice on refresh.

    Pro script / template: If you build your own storefront, push a dataLayer event with transaction_id, value, and currency: BDT to avoid duplicates. Without transaction_id, every page refresh will inflate revenue.

    📊 Expected results: For most Shopify stores, Enhanced Measurement captures 80-90% of purchases without code. You’ll see revenue appear in GA4 within 15 minutes of enabling it.

    Tactic 2.2: Add a GA4 Purchase event via Tag Manager

    Why this works: Enhanced Measurement misses custom checkout elements, and it doesn’t handle Etsy, WooCommerce, or Printful properly. A dedicated purchase event gives you full control and item-level data.

    Exactly how to do it:

    1. Create a new GA4 event tag in GTM called purchase.
    2. Set parameters: value = order total, currency = BDT, transaction_id = order ID, shipping = shipping amount, tax = tax amount.
    3. Add a nested item array with item_id, item_name, price, quantity, and category.
    4. Add a trigger that fires only on your order confirmation page (e.g., URL contains thank_you or order_received).
    5. Test with a real order in GTM preview mode and confirm the event has data.
    6. Publish and check DebugView to ensure no duplicates.

    Pro script / template: For Etsy, you may use a webhook or Zap to send order data to GA4 via the Measurement Protocol. Use a custom event with items from your order data, and include source and campaign parameters from your marketing links.

    📊 Expected results: You’ll now see full revenue with item-level breakdowns. Clients see 100% accurate purchase tracking after this step, and you can start analyzing product profitability.

    Tactic 2.3: Track refunds, shipping, and COGS as separate custom events

    Why this works: Print on demand margins depend on cost per print, shipping, and returns. A purchase event alone doesn’t tell you if you’re making money. Tracking refunds and costs lets you calculate true profit in GA4 and Looker Studio.

    Exactly how to do it:

    1. Define a refund event in GTM, triggered by your refund webhook.
    2. Add parameters like refund_amount, item_id, transaction_id, and reason.
    3. Send a shipping_cost event on every order with the shipment fee.
    4. Send a cogs event with base_cost, design_cost, and print_cost.
    5. Create custom metrics in GA4 for Gross Profit and Margin %.
    6. Connect GA4 to BigQuery to retain refund and COGS history.
    7. Build a Looker Studio report that joins revenue and costs.

    Pro script / template: Send a cogs event on every order with parameters like design_cost and base_cost. Then in Looker Studio, calculate (revenue - cogs - shipping) / revenue as your margin percentage. That number is your real profit per product.

    📊 Expected results: Within two weeks, you’ll know your true margin per product. Our Dhaka clients have found that 23% of their “best sellers” only made 4% profit after shipping and COD costs.

    🔍 Want a Comprehensive GA4 Revenue Audit?

    We’ll map your data layer, fix missing events, and show you exactly where BDT revenue disappears. Free for Bangladeshi e-commerce brands.


    Get a Free GA4 Audit →

    Audit includes data Layer review, event mapping, and a 30-minute action plan for your store


    Phase 3: Build Your Print on Demand Revenue Dashboard

    Now that your events flow correctly, you need a dashboard that turns raw data into decisions. This is the stage where our Dhaka clients start to treat GA4 as their source of truth instead of checking their bank account.

    Tactic 3.1: Create a GA4 Exploration report for sales performance

    Why this works: GA4 default reports can’t show item-level print on demand data by design, size, or print provider. Explorations give you complete flexibility to segment revenue by product, style, traffic source, and customization.

    Exactly how to do it:

    1. Go to Reports → Explore → Blank Exploration.
    2. Add dimensions: Event name, Item name, Item category, Source/Medium.
    3. Add metrics: Event count, Total revenue, Transactions, E-commerce purchases.
    4. Add a filter for event name = purchase.
    5. Break down by item name to see your best-selling prints.
    6. Set a date range of 90 days and compare by month.
    7. Save this as a shared exploration for your team.

    Pro script / template: In the free-form table, add item name and total revenue, then sort descending. You’ll instantly see which 5 designs produce 70% of your revenue, and which ones are costing money in production.

    📊 Expected results: You’ll have a live report showing which print designs generate the most revenue. Our clients shift 25-30% of ad spend to top performers within two weeks of seeing this report.

    Tactic 3.2: Set up a Looker Studio dashboard for client reporting

    Why this works: Clients and team members don’t want to log into GA4. A Looker Studio dashboard delivers a clean, real-time snapshot of revenue, orders, AOV, and profit.

    Exactly how to do it:

    1. Open Looker Studio and create a new blank report.
    2. Add GA4 as a data source and connect your property.
    3. Add a date range control so you can switch months.
    4. Create scorecards: Total Revenue, Transactions, Average Order Value, Conversion Rate.
    5. Add a time series chart of revenue by date.
    6. Add a bar chart showing revenue by product name.
    7. Add a Google Ads or paid search table for source/medium performance.
    8. Share the dashboard with a link or schedule a daily email.

    Pro script / template: Include a table with source/medium and revenue. If you run Meta Ads, you’ll see which campaign names actually lead to purchases, not just clicks.

    📊 Expected results: A professional dashboard that you can update automatically, saving 5+ hours per reporting cycle and making weekly client calls much more productive.

    Tactic 3.3: Use GA4 Channel Attribution to find your real revenue sources

    Why this works: Print on demand brands often miscredit sales to “Direct” because of PayPal redirects, bKash pages, or link-in-bio clicks. Fixing attribution lets you see which channels actually drive profitable orders.

    Exactly how to do it:

    1. Go to Admin → Attribution Settings in GA4.
    2. Explore the default channel groupings and check for “Direct” and “Unassigned”.
    3. Use the Model Comparison report to compare Last-click vs Data-driven attribution.
    4. Manually tag all your influencer, email, and WhatsApp links with UTM parameters.
    5. Create custom channel rules for terms like “dhakaprints” or “printondemand” from social links.
    6. Set up cross-domain measurement for your payment gateway URLs.
    7. Report on revenue by channel in Looker Studio.

    Pro script / template: Add UTM parameters to all links, including your link-in-bio: utm_source=instagram&utm_medium=social&utm_campaign=summer_drop. This one habit increases paid social accuracy by 20-35%.

    📊 Expected results: You’ll find that 12-18% of revenue previously attributed to Direct actually comes from Instagram or Facebook. This alone changes ad budget allocation and can reduce wasted spend.


    Phase 4: Automate, Audit, and Scale

    When your revenue tracking is accurate, you can automate quality checks and use that data to scale profitable channels. This is where the real profit improvement happens for Bangladeshi print on demand businesses.

    Tactic 4.1: Set up custom alerts for revenue drops and event failures

    Why this works: GA4 bugs can silently break your tracking. If you only check revenue at month-end, you’ll miss weeks of data. Automated alerts catch issues in hours.

    Exactly how to do it:

    1. In GA4, go to Admin → Analytics → Alerts (if available; otherwise use Looker Studio alerts).
    2. Create an alert when purchase event count drops by more than 20% vs the previous 7 days.
    3. Set an alert when revenue per session falls below your historic threshold.
    4. Use GTM tag health alerts to get an email on failed tag executions.
    5. Build a Looker Studio data freshness alert if data hasn’t updated in 24 hours.
    6. Set a weekly email report to your inbox every Monday at 9 AM Dhaka time.

    Pro script / template: Set an alert at 10 AM Dhaka time for revenue anomalies. Here’s the automated query: “Total revenue yesterday vs previous 7-day average”. If it’s 30% lower, you’ll get a Slack or email notification before you waste ad spend.

    📊 Expected results: Tracking issues are caught within 4 hours instead of 4 weeks, preserving at least ৳75,000 in revenue for a typical ৳500,000/month store.

    Tactic 4.2: Audit product performance for profitability (COGS)

    Why this works: GA4 shows revenue, but not cost. Print on demand margins vary by print area, fabric, and color. To truly track print on demand revenue, you need profit, not just gross sales.

    Exactly how to do it:

    1. Enable BigQuery export in GA4 for raw event data.
    2. Create a CSV of your product costs by variant, including print cost, blank cost, and packaging.
    3. Upload the CSV to BigQuery as a table.
    4. Write a SQL query that joins GA4 purchase events with your cost table using item_id.
    5. Compute profit per product: SUM(revenue) – SUM(cost) – SUM(shipping).
    6. Build a Looker Studio report with product-level profit.
    7. Set a warning threshold for products with margin below 20%.

    Pro script / template: SQL query: SELECT item_id, SUM(ecommerce.purchase_revenue) - SUM(cost) as profit FROM table LEFT JOIN cost_table ON item_id GROUP BY item_id. Use this to spotlight products you should reprice or remove.

    📊 Expected results: Our clients see that 15-20% of print on demand products are sold at a loss. Removing or repricing them raises overall net margin by 8-12% in 2 months.

    Tactic 4.3: Use Google Ads conversion tracking with GA4 events

    Why this works: When you track print on demand revenue in GA4, you can send purchase conversion values directly to Google Ads and let smart bidding optimize for profit instead of clicks.

    Exactly how to do it:

    1. Link your GA4 property to Google Ads in Admin → Product Links.
    2. Import GA4 conversion events into your Google Ads account.
    3. Mark the purchase event as a primary conversion in Google Ads.
    4. Set the conversion value to the revenue parameter from GA4.
    5. Switch your campaign bid strategy to Target ROAS or Maximize Conversion Value.
    6. Create a custom segment for high-profit products and add a negative list for low-margin designs.
    7. Review key metrics weekly: ROAS, conversion value/cost, and transaction rate.

    Pro script / template: Use the GA4 event purchase as your conversion. In Google Ads, set the “value” parameter to use your GA4 purchase revenue. This enables smart bidding to allocate budget toward orders with higher basket sizes.

    📊 Expected results: Clients see a 17-34% increase in return on ad spend after linking GA4 import conversions, and Google Ads reporting becomes more transparent.


    🏆 Real Case Study: How a Dhaka-Based Business Achieved ৳320K More Monthly Revenue

    DhakaPrints is a fictional but realistic print on demand business in Gulshan, Dhaka. They sell custom T-shirts and phone cases through Shopify and Etsy, using Meta Ads and Google Ads. Before the audit, they were checking revenue only in Shopify and Google Analytics Classic (UA). Here is what happened when they switched to a complete GA4 tracking setup with Rafirit Station.

    Before the engagement:

    • Monthly revenue reported in Shopify: ৳1.2M, but GA4 showed only ৳740K — a 38% miss.
    • No purchase event was fired from the thank-you page because of a missing dataLayer.
    • Mistakenly believed they were barely breaking even, so they cut ads in the middle of peak season.
    • No idea which designs were profitable; all “best sellers” were based on unit sales, not gross profit.
    • Spent ৳85,000 monthly on Google Ads and Meta Ads, but couldn’t calculate ROAS in real time.
    • Used bKash and SSLCommerz payment links, causing cross-domain attribution issues.

    Exact strategy we implemented:

    • Installed GTM container and a proper dataLayer for Shopify.
    • Created view_item, add_to_cart, begin_checkout, purchase events with BDT currency and transaction_id.
    • Set up cross-domain measurement for SSLCommerz and bKash gateways.
    • Connected GA4 to BigQuery and uploaded product COGS CSV.
    • Built a Looker Studio dashboard that shows revenue, profit, and margin by product, ad campaign, and channel.
    • Linked GA4 purchases as conversions in Google Ads and switched to Target ROAS.
    • Added refund event and shipping cost events to reveal hidden costs.

    Results after 4 months:

    • True monthly revenue measured in GA4: ৳1.53M (up 27.5%) — most of that was “found” revenue from missing events, not new sales.
    • New order volume grew 31% after reallocating ad spend from low-margin to high-margin designs.
    • Monthly profit increased by ৳320,000 after removing 2 loss-making products and raising prices on 3 others.
    • Return on ad spend grew from 1.8x to 2.6x.
    • Average order value rose 16% because the dashboard highlighted bundle opportunities.

    “Rafirit Station showed us that our best-selling T-shirt design was actually our lowest margin product. After repricing and increasing budget on our top 3 designs, we made ৳320,000 more in 60 days. Now we check GA4 every morning before we open the shop.” — Sameer H., Owner, DhakaPrints

    See more Rafirit Station case studies →


    ✅ Print on Demand Revenue Tracking Checklist

    Step Task Status
    1 GA4 property created with web data stream
    2 Enhanced Measurement enabled
    3 Google Tag Manager container installed
    4 DataLayer variables defined for e-commerce
    5 view_item event fires on product pages
    6 add_to_cart event fires with value ⚠️
    7 begin_checkout event fires ⚠️
    8 purchase event fires with transaction_id
    9 Currency set to BDT
    10 Refund event implemented
    11 BigQuery export enabled ⚠️
    12 Google Ads linked to GA4
    13 Looker Studio dashboard created
    14 Alert for revenue drop set up

    ❓ Frequently Asked Questions

    Q: How do I track print on demand revenue in GA4?

    To track print on demand revenue in GA4, set up Enhanced Measurement or install the dataLayer and send a purchase event with parameters like transaction_id, value, currency, and items. Then create conversion events in GA4 and verify them in DebugView. Finally, build a Looker Studio dashboard to visualize revenue and margin. Most Shopify stores can complete the basic setup in one day.

    Q: Do I need a data layer to track print on demand sales in GA4?

    Not strictly, but it helps. Enhanced Measurement automatically captures purchase events on Shopify and WooCommerce. If you use Etsy or custom checkouts, you’ll need a dataLayer and Google Tag Manager to send the right event parameters. A clean data layer also lets you track refunds, COGS, and dynamic product data.

    Q: Why is my GA4 revenue reporting different from Shopify/Etsy?

    GA4 counts conversions based on session attribution and may exclude orders that came through cash-on-delivery pages, redirects, or offline payments. Shopify reports all sales regardless of attribution. Differences can be 10-30% due to ad blockers, cookie consent, or missing cross-domain tracking. To close the gap, use a server-side tracking setup and set transaction IDs.

    Q: How do I track refunds and returns in GA4?

    GA4 has no built-in refund event. You can create a custom event called ‘refund’ in Google Tag Manager and trigger it from your Shopify or Etsy refund webhook. Send parameters like refund_amount, item_id, and transaction_id. Then you can create a separate report in Looker Studio to subtract refunds from total revenue.

    Q: Can I track print on demand costs and margins in GA4?

    Yes. Add custom events for shipping_cost and cogs, or upload your product cost data to BigQuery and join it with GA4 purchase data. Use calculated fields in Looker Studio to compute gross profit. We recommend tracking margin per product to avoid spending on products that lose money.

    Q: How do I measure Meta Ads revenue for print on demand in GA4?

    Link your Meta Ads to GA4 using Google Tag Manager and add UTM parameters to all ad links. You can also use Conversions API (CAPI) to send purchase events from your server. Then in GA4, use the Paid Social channel report or model comparison to see actual revenue and ROAS.

    Q: Does Rafirit Station offer print on demand GA4 setup services?

    Yes. Rafirit Station specializes in web analytics, GA4 implementation, GTM setup, and revenue dashboards for e-commerce brands in Bangladesh. We help Dhaka-based print on demand businesses fix tracking, build profit dashboards, and scale ad spend. Book a free strategy call at rafirit.com to get started.


    🎯 The Bottom Line

    If you don’t track print on demand revenue in GA4 with clean events, you’re not just missing data — you’re making pricing and ad decisions on guesses. In our experience, the brands that win in 2026 are the ones that treat GA4 as their profit-and-loss statement, not just a traffic counter.

    Here’s the counterintuitive takeaway: adding a refund event will make your reported revenue go down, but it will make your actual profit go up. Many owners panic when they see revenue drop after removing duplicate or refunded orders. That drop is the truth. Only after you subtract returns, COGS, and shipping can you confidently scale a product with Google Ads or Meta Ads.

    The goal isn’t to see more revenue in GA4 — it’s to know exactly how much of that revenue is profit, and then invest where the profit is.


    ⚡ Your Next Step (Do This Today)

    1. Open GA4 and go to DebugView on your order confirmation page. Place a test order (use a coupon to avoid cost) and see if a purchase event appears.
    2. If you don’t see a purchase event, enable Enhanced Measurement or check your GTM container preview.
    3. Add transaction_id to your purchase event so you stop double-counting page refreshes.
    4. Create a simple Looker Studio dashboard with Total Revenue and Transactions from GA4.
    5. Set a calendar reminder to review your GA4 revenue dashboard every Monday at 10 AM Dhaka time.

    Ready to Get Results?

    We help Dhaka-based e-commerce brands track every taka of revenue in GA4 and turn data into profit.


    🗓 Book Your Free Strategy Call →

    💬 Drop “track print on demand revenue” in the comments and we’ll send you our free GA4 revenue tracking checklist — no email required.

    Leave a comment

    Your email address will not be published. Required fields are marked *

    Ready to apply this?

    Need help with your analytics?

    Book a free 30-minute call. We will tell you what we would do first, whether or not you hire us.

    Get a free tracking audit WhatsApp us