{"id":275230,"date":"2026-04-26T07:27:38","date_gmt":"2026-04-26T07:27:38","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/"},"modified":"2026-06-07T03:33:58","modified_gmt":"2026-06-07T03:33:58","slug":"gia-conversion-tracking-for-ecommerce-google-analytics-4","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/","author":20447401,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5","stable_tag":"0.5","tested":"6.8.5","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"GIA \u2014 GA4 Ecommerce Tracking for WooCommerce","header_author":"userelements","header_description":"The easiest Google Analytics 4 (GA4) conversion tracking for WooCommerce. Track sales, revenue, and ecommerce events automatically.","assets_banners_color":"e8cffe","last_updated":"2026-06-07 03:33:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"http:\/\/userelements.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":280,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4":{"tag":"0.4","author":"userelements","date":"2026-04-26 07:28:45"},"0.5":{"tag":"0.5","author":"userelements","date":"2026-06-07 03:33:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3563438,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3563438,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4","0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3563438,"resolution":"1","location":"assets","locale":"","width":842,"height":413},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3563438,"resolution":"2","location":"assets","locale":"","width":850,"height":735},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3563438,"resolution":"3","location":"assets","locale":"","width":996,"height":807},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3563438,"resolution":"4","location":"assets","locale":"","width":989,"height":770},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3563438,"resolution":"5","location":"assets","locale":"","width":1084,"height":864},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3563438,"resolution":"6","location":"assets","locale":"","width":1080,"height":842}},"screenshots":{"1":"Settings \u2014 Connect GA4 in a few steps","2":"eCommerce Dashboard Stats","3":"Settings WooCommerce events","4":"Measurement ID, API secret, consent, and advanced options","5":"Products stats","6":"Customer statistics."}},"plugin_section":[],"plugin_tags":[223629,32831,193472,1005,286],"plugin_category":[45],"plugin_contributors":[210940],"plugin_business_model":[],"class_list":["post-275230","plugin","type-plugin","status-publish","hentry","plugin_tags-consent-mode","plugin_tags-ecommerce-tracking","plugin_tags-ga4","plugin_tags-google-analytics","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-userelements","plugin_committers-userelements"],"banners":{"banner":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/banner-772x250.png?rev=3563438","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/icon-256x256.png?rev=3563438","icon_2x":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/icon-256x256.png?rev=3563438","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/screenshot-1.png?rev=3563438","caption":"Settings \u2014 Connect GA4 in a few steps"},{"src":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/screenshot-2.png?rev=3563438","caption":"eCommerce Dashboard Stats"},{"src":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/screenshot-3.png?rev=3563438","caption":"Settings WooCommerce events"},{"src":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/screenshot-4.png?rev=3563438","caption":"Measurement ID, API secret, consent, and advanced options"},{"src":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/screenshot-5.png?rev=3563438","caption":"Products stats"},{"src":"https:\/\/ps.w.org\/gia-conversion-tracking-for-ecommerce-google-analytics-4\/assets\/screenshot-6.png?rev=3563438","caption":"Customer statistics."}],"raw_content":"<!--section=description-->\n<p><strong>Paste your Measurement ID. Get trustworthy WooCommerce GA4 ecommerce data.<\/strong><\/p>\n\n<p>GIA GA4 is a measurement-quality layer between WooCommerce and Google Analytics 4 (optionally Google Ads). It fires the full recommended ecommerce funnel, enriches every line item, backs up purchases server-side, and respects consent \u2014 without Google Tag Manager, without a data team, and without turning WordPress into a profit or attribution platform.<\/p>\n\n<h4>What GIA GA4 is<\/h4>\n\n<ul>\n<li><strong>Complete GA4 ecommerce schema<\/strong> \u2014 not just purchase, but the real shopping and checkout funnel<\/li>\n<li><strong>Reliable revenue<\/strong> \u2014 browser + Measurement Protocol, with <code>session_id<\/code>, <code>event_id<\/code>, and consent-aware server sends<\/li>\n<li><strong>Better item data<\/strong> \u2014 categories, brand, GTIN, discounts, list attribution, classic templates and WooCommerce Blocks<\/li>\n<li><strong>GDPR-ready by default<\/strong> \u2014 Consent Mode V2, CMP bridges, geo rules, and a built-in banner<\/li>\n<li><strong>Store-owner UX<\/strong> \u2014 onboarding wizard, verification tools, and a lightweight dashboard for setup and shop pulse<\/li>\n<\/ul>\n\n<p>GA4 stays the system of record. GIA GA4 feeds it well; it does not replace it.<\/p>\n\n<h4>What GIA GA4 is not<\/h4>\n\n<p>GIA GA4 deliberately avoids feature creep. It is <strong>not<\/strong>:<\/p>\n\n<ul>\n<li>A profit, COGS, or margin-by-channel tool<\/li>\n<li>A journey analytics or multi-touch attribution platform<\/li>\n<li>A Meta CAPI, TikTok, or ad-spend ingestion hub<\/li>\n<li>A heavy BI dashboard that duplicates GA4<\/li>\n<\/ul>\n\n<p>The built-in dashboard gives operational context \u2014 weekly order insights, view-to-purchase, top customers \u2014 not a second analytics product inside wp-admin.<\/p>\n\n<h4>Who this is for<\/h4>\n\n<ul>\n<li><strong>WooCommerce merchants<\/strong> who want complete GA4 ecommerce without hiring someone for GTM<\/li>\n<li><strong>Stores with a GA4 \u2260 orders gap<\/strong> who need Measurement Protocol backup and deduplication<\/li>\n<li><strong>EU\/UK shops<\/strong> that need Consent Mode V2 without wrestling CMP + gtag<\/li>\n<li><strong>Growth-minded stores<\/strong> that optionally want Google Ads purchase conversions on the same stack<\/li>\n<\/ul>\n\n<p><strong>Not primarily for:<\/strong> agencies running custom GTM containers, or merchants who want P&amp;L-by-channel inside WordPress.<\/p>\n\n<h4>Why GIA GA4 vs other WooCommerce GA4 plugins<\/h4>\n\n<p>Most alternatives stop at purchase (and maybe add-to-cart). GIA GA4 goes deep on <strong>measurement quality<\/strong>:<\/p>\n\n<ul>\n<li>Full funnel completeness (<code>view_item_list<\/code> through <code>purchase<\/code> and <code>refund<\/code>)<\/li>\n<li>Rich <code>items[]<\/code> parameters on cart and checkout events<\/li>\n<li>First-class WooCommerce Blocks cart and checkout support<\/li>\n<li>Server-side purchase and refund backup with deduplication<\/li>\n<li>Consent Mode V2 and CMP compatibility out of the box<\/li>\n<\/ul>\n\n<h4>GA4 ecommerce events<\/h4>\n\n<p><strong>Discovery &amp; product<\/strong><\/p>\n\n<ul>\n<li><code>view_item_list<\/code> \u2014 Shop, category, and tag archives (<code>item_list_id<\/code> \/ <code>item_list_name<\/code>)<\/li>\n<li><code>view_item<\/code> \u2014 Product pages and variable-product variant changes<\/li>\n<li><code>select_item<\/code> \u2014 Product clicks from classic shop grids (list context persists through the funnel)<\/li>\n<li><code>view_search_results<\/code> \u2014 On-site product search terms (Extra GA4 events)<\/li>\n<li><code>view_promotion<\/code> \u2014 On-sale products and WooCommerce store notices<\/li>\n<\/ul>\n\n<p><strong>Cart<\/strong><\/p>\n\n<ul>\n<li><code>add_to_cart<\/code> \u2014 AJAX, form submit, and WooCommerce Blocks cart (full item payloads)<\/li>\n<li><code>remove_from_cart<\/code> \u2014 Cart page, mini-cart, and Blocks cart<\/li>\n<li><code>view_cart<\/code> \u2014 Cart page and Blocks cart<\/li>\n<\/ul>\n\n<p><strong>Checkout<\/strong><\/p>\n\n<ul>\n<li><code>begin_checkout<\/code> \u2014 Classic and Blocks checkout<\/li>\n<li><code>add_shipping_info<\/code> \u2014 Shipping method selected<\/li>\n<li><code>add_payment_info<\/code> \u2014 Payment method selected<\/li>\n<li><code>purchase<\/code> \u2014 Thank-you page with <code>transaction_id<\/code>, revenue, tax, shipping, coupons, payment method, new vs returning customer, and <code>event_id<\/code> for deduplication<\/li>\n<li><code>payment_failure<\/code> \u2014 Checkout validation and payment errors (always tracked; classic + Blocks)<\/li>\n<li><code>coupon_applied<\/code> \/ <code>coupon_removed<\/code> \u2014 Coupon usage<\/li>\n<li><code>select_promotion<\/code> \u2014 Coupon codes applied at checkout<\/li>\n<\/ul>\n\n<p><strong>Post-purchase &amp; account<\/strong><\/p>\n\n<ul>\n<li><code>refund<\/code> \u2014 When a refund is processed in WooCommerce (browser + server)<\/li>\n<li><code>login<\/code> \/ <code>sign_up<\/code> \u2014 Optional (enable <strong>Extra GA4 events<\/strong>)<\/li>\n<li><code>exception<\/code> \u2014 404 pages (optional)<\/li>\n<\/ul>\n\n<p><strong>WooCommerce Subscriptions<\/strong> (when the extension is active)<\/p>\n\n<ul>\n<li><code>subscription_started<\/code>, <code>subscription_cancelled<\/code>, <code>subscription_expired<\/code><\/li>\n<li>Renewal orders sent as <code>purchase<\/code> via Measurement Protocol<\/li>\n<\/ul>\n\n<p><strong>Optional extras<\/strong> (off by default \u2014 <strong>Extra GA4 events<\/strong> setting)<\/p>\n\n<ul>\n<li><code>cart_time_spent<\/code> \u2014 Seconds on cart\/checkout before leaving<\/li>\n<\/ul>\n\n<p>Core funnel events can be toggled individually in <strong>Settings \u2192 Events<\/strong> to reduce volume. Checkout errors, coupons, shipping, and payment events are always tracked.<\/p>\n\n<h4>Rich GA4 item data<\/h4>\n\n<p>Every funnel event can include detailed product line items:<\/p>\n\n<ul>\n<li>Hierarchical categories (up to 5 levels)<\/li>\n<li>Brand (auto-detects common brand taxonomies)<\/li>\n<li>GTIN \/ EAN \/ UPC when stored in product meta<\/li>\n<li>Variant, image URL, stock status<\/li>\n<li>Sale <code>discount<\/code> amount on discounted products<\/li>\n<li><code>item_list_id<\/code> and <code>item_list_name<\/code> carried from list views through add-to-cart and purchase<\/li>\n<li>Product ID or SKU as <code>item_id<\/code> (setting)<\/li>\n<li>Product Bundles use minimum bundle price in item data<\/li>\n<\/ul>\n\n<p>Works on <strong>classic templates<\/strong> and <strong>WooCommerce Blocks<\/strong> cart\/checkout via the Store API.<\/p>\n\n<h4>Server-side purchase &amp; refund tracking<\/h4>\n\n<p>Browser tags are blocked by ad blockers and strict privacy settings. GIA GA4 mirrors <code>purchase<\/code> and <code>refund<\/code> from your server using the <strong>GA4 Measurement Protocol<\/strong>.<\/p>\n\n<ul>\n<li>Saves GA4 <code>client_id<\/code> and <code>session_id<\/code> on the order at checkout<\/li>\n<li>Sends <code>event_id<\/code> on server hits to deduplicate with browser <code>purchase<\/code> events<\/li>\n<li>Retries failed sends via Action Scheduler<\/li>\n<li>Respects stored analytics consent before server sends<\/li>\n<li>Optional multi-currency normalization for foreign-currency orders (WOOCS \/ WooPayments rates)<\/li>\n<li>Configurable trigger: order <strong>Completed<\/strong> or <strong>Processing<\/strong><\/li>\n<\/ul>\n\n<p>Add your <strong>GA4 API Secret<\/strong> in settings and use the built-in <strong>Verify tracking setup<\/strong> tool.<\/p>\n\n<h4>Consent Mode V2<\/h4>\n\n<ul>\n<li>gtag loads with consent defaulting to <strong>denied<\/strong> (configurable)<\/li>\n<li>Built-in consent banner (auto-hides when a CMP is detected)<\/li>\n<li>Geo-aware defaults: EU\/EEA\/UK \u2192 denied, US \u2192 granted (optional)<\/li>\n<li>Bridges: CookieYes, Complianz, Cookiebot, and the <a href=\"https:\/\/wordpress.org\/plugins\/wp-consent-api\/\">WP Consent API<\/a><\/li>\n<li>Order-level consent stored for server-side tracking decisions<\/li>\n<\/ul>\n\n<h4>Google Ads (optional)<\/h4>\n\n<ul>\n<li>Fire <code>conversion<\/code> on purchase with your AW- account ID and conversion label<\/li>\n<li>Enhanced Conversions: hashed billing data sent with purchase (same consent rules as GA4)<\/li>\n<\/ul>\n\n<h4>Other optional features<\/h4>\n\n<ul>\n<li>Google Tag Manager container ID (disable base gtag when GA4\/GTM is loaded elsewhere)<\/li>\n<li>Server-side gtag proxy (extends cookie lifetime, reduces blocker impact)<\/li>\n<li>Cross-domain linker settings (domains + incoming parameters)<\/li>\n<li>Transactional email link UTM tagging<\/li>\n<li>First-touch UTM \/ <code>gclid<\/code> \/ <code>fbclid<\/code> saved to order meta + Traffic Source admin column<\/li>\n<li>Exclude store administrators from tracking<\/li>\n<li>GA4 DebugView mode<\/li>\n<li>Gross vs net revenue on purchase events<\/li>\n<li>Accepts <code>G-<\/code> and <code>GT-<\/code> Measurement IDs<\/li>\n<li>HPOS (High-Performance Order Storage) compatible<\/li>\n<li>Onboarding wizard on first activation<\/li>\n<li>Admin warnings when Google Analytics for WooCommerce or Site Kit may duplicate tracking<\/li>\n<\/ul>\n\n<h4>Built-in dashboard (operational, not BI)<\/h4>\n\n<p>Admin menu: <strong>GIA GA4 \u2192 Analytics<\/strong><\/p>\n\n<ul>\n<li><strong>Overview<\/strong> \u2014 Setup wizard, tracking verification, and weekly WooCommerce insights (revenue, refunds, customer mix, geo, checkout risk, tracking gap vs GA4 when Site Kit is connected)<\/li>\n<li><strong>Traffic<\/strong> \u2014 GA4 sessions, channels, and landing pages via <a href=\"https:\/\/wordpress.org\/plugins\/google-site-kit\/\">Site Kit<\/a> when installed (optional)<\/li>\n<li><strong>Products<\/strong> \u2014 Local view-to-purchase report (no Google API required for view counts)<\/li>\n<li><strong>Customers<\/strong> \u2014 Top customers by lifetime spend<\/li>\n<li><strong>Settings<\/strong> \u2014 Full configuration (also at WooCommerce \u2192 Settings \u2192 Integrations, redirected to GIA GA4 settings)<\/li>\n<\/ul>\n\n<h4>Known gaps<\/h4>\n\n<p>Transparent limits aligned with the measurement-quality focus:<\/p>\n\n<ul>\n<li><code>select_item<\/code> list attribution on <strong>Block Product Collection<\/strong> grids is not yet supported (classic shop grids are supported)<\/li>\n<li>No <code>add_to_wishlist<\/code> or deep promotion CMS integration unless store-specific<\/li>\n<\/ul>\n\n<p>These are extensions of the same GA4 data-quality goal, not a product pivot.<\/p>\n\n<h4>Privacy<\/h4>\n\n<ul>\n<li>Registers WordPress personal data export and erasure handlers<\/li>\n<li>Checkout error logs and product view counters auto-expire (configurable retention: 30\u2013365 days)<\/li>\n<li>Enhanced conversion data is hashed before transmission; not stored by this plugin<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external services to provide analytics functionality. By using this plugin, you agree to the terms and privacy policies of these services.<\/p>\n\n<p><strong>1. Google Analytics 4 (required for tracking)<\/strong><\/p>\n\n<ul>\n<li>Purpose: Records ecommerce events, sessions, and conversions<\/li>\n<li>Data sent: Page views, ecommerce events, hashed customer data (if Enhanced Conversions enabled), client\/session identifiers<\/li>\n<li>Domains: <code>www.googletagmanager.com<\/code>, <code>www.google-analytics.com<\/code>, <code>region1.google-analytics.com<\/code><\/li>\n<li>Terms: <a href=\"https:\/\/marketingplatform.google.com\/about\/analytics\/terms\/us\/\">Google Analytics Terms<\/a><\/li>\n<li>Privacy: <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/li>\n<\/ul>\n\n<p><strong>2. GA4 Measurement Protocol (recommended)<\/strong><\/p>\n\n<ul>\n<li>Purpose: Server-side <code>purchase<\/code> and <code>refund<\/code> event delivery when browser tracking is blocked<\/li>\n<li>Data sent: Order value, line items, transaction ID, client ID, session ID, event ID<\/li>\n<li>Endpoint: <code>https:\/\/www.google-analytics.com\/mp\/collect<\/code><\/li>\n<li>Terms\/Privacy: Same as Google Analytics above<\/li>\n<\/ul>\n\n<p><strong>3. Google Ads (optional)<\/strong><\/p>\n\n<ul>\n<li>Purpose: Purchase conversion signals for Smart Bidding<\/li>\n<li>Data sent: Conversion value, transaction ID, hashed customer data (if enabled)<\/li>\n<li>Domains: <code>www.googletagmanager.com<\/code><\/li>\n<li>Terms: <a href=\"https:\/\/ads.google.com\/home\/terms\/\">Google Ads Terms<\/a><\/li>\n<li>Privacy: <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/li>\n<\/ul>\n\n<p><strong>4. Google Tag Manager (optional)<\/strong><\/p>\n\n<ul>\n<li>Purpose: Tag deployment when you manage GA4 through GTM<\/li>\n<li>Domain: <code>www.googletagmanager.com<\/code><\/li>\n<li>Only loaded when a GTM container ID is configured<\/li>\n<\/ul>\n\n<p><strong>5. Google Site Kit (optional \u2014 dashboard only)<\/strong><\/p>\n\n<ul>\n<li>Purpose: Display GA4 traffic reports inside the GIA GA4 dashboard<\/li>\n<li>Only used when Site Kit is installed and Analytics is connected<\/li>\n<li>Plugin: <a href=\"https:\/\/wordpress.org\/plugins\/google-site-kit\/\">Google Site Kit<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <strong>WooCommerce<\/strong><\/li>\n<li>Install and activate <strong>GIA \u2014 GA4 Ecommerce Tracking for WooCommerce<\/strong><\/li>\n<li>Complete the onboarding wizard (or go to <strong>GIA GA4 \u2192 Settings<\/strong>)<\/li>\n<li>Enter your <strong>GA4 Measurement ID<\/strong> (<code>G-XXXXXXXXXX<\/code> or <code>GT-XXXXXXXXXX<\/code>)<\/li>\n<li>(Recommended) Add your <strong>GA4 API Secret<\/strong> for server-side purchase tracking<\/li>\n<li>Visit your store in an incognito window and confirm events in GA4 <strong>Realtime<\/strong> or <strong>DebugView<\/strong><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20without%20google%20tag%20manager%3F\"><h3>Does this work without Google Tag Manager?<\/h3><\/dt>\n<dd><p>Yes. That is the default path. Enter your GA4 Measurement ID and events fire via gtag.js. GTM is optional for stores that already use it.<\/p><\/dd>\n<dt id=\"why%20are%20ga4%20purchases%20lower%20than%20woocommerce%20orders%3F\"><h3>Why are GA4 purchases lower than WooCommerce orders?<\/h3><\/dt>\n<dd><p>Common causes: ad blockers, consent denied, or comparing GA4 Realtime to orders still processing. Enable the <strong>GA4 API Secret<\/strong> for Measurement Protocol backup and set <strong>Purchase trigger<\/strong> to match when you consider an order final. Browser and server events share the same <code>event_id<\/code> so GA4 deduplicates instead of double-counting.<\/p><\/dd>\n<dt id=\"does%20it%20support%20woocommerce%20blocks%20checkout%3F\"><h3>Does it support WooCommerce Blocks checkout?<\/h3><\/dt>\n<dd><p>Yes. Cart and checkout blocks are supported through the WooCommerce Store API and dedicated Blocks JavaScript. <code>view_cart<\/code>, <code>begin_checkout<\/code>, cart changes, coupons, shipping, payment, and checkout errors are tracked on block-based stores. WooCommerce Blocks' built-in Google Analytics script is dequeued to prevent duplicate events.<\/p><\/dd>\n<dt id=\"how%20does%20purchase%20deduplication%20work%3F\"><h3>How does purchase deduplication work?<\/h3><\/dt>\n<dd><p>Browser and server <code>purchase<\/code> events share the same <code>event_id<\/code> (<code>giawc_purchase_{order_number}<\/code>). GA4 deduplicates matching event IDs from the same client.<\/p><\/dd>\n<dt id=\"is%20it%20gdpr%20compatible%3F\"><h3>Is it GDPR compatible?<\/h3><\/dt>\n<dd><p>The plugin implements Google Consent Mode V2, defaults consent to denied, integrates with popular CMPs, and can apply geo-based consent defaults. You are responsible for your store's legal compliance and privacy policy.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20subscriptions%3F\"><h3>Does it work with WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>Yes. Subscription lifecycle events fire in the browser; renewal payments without a session are sent as <code>purchase<\/code> via Measurement Protocol.<\/p><\/dd>\n<dt id=\"what%20is%20the%20view-to-purchase%20report%3F\"><h3>What is the view-to-purchase report?<\/h3><\/dt>\n<dd><p>The Products tab compares locally counted product page views with WooCommerce order line items \u2014 useful for spotting products with high views but low conversion. View counts do not require Google API access.<\/p><\/dd>\n<dt id=\"can%20i%20use%20sku%20instead%20of%20product%20id%20in%20ga4%3F\"><h3>Can I use SKU instead of product ID in GA4?<\/h3><\/dt>\n<dd><p>Yes. Change <strong>Product identifier<\/strong> in settings to SKU. List attribution still works via internal product ID mapping.<\/p><\/dd>\n<dt id=\"does%20gia%20ga4%20track%20profit%20or%20ad%20spend%3F\"><h3>Does GIA GA4 track profit or ad spend?<\/h3><\/dt>\n<dd><p>No. GIA GA4 focuses on accurate GA4 ecommerce measurement. Use GA4, Google Ads, or dedicated finance tools for profitability and attribution analysis.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5<\/h4>\n\n<ul>\n<li>Improvement: Measurement Protocol sends <code>session_id<\/code>, <code>event_id<\/code>, and <code>engagement_time_msec<\/code> on purchase\/refund<\/li>\n<li>Improvement: <code>item_list_id<\/code> \/ <code>item_list_name<\/code> persist from <code>select_item<\/code> through cart and purchase events<\/li>\n<li>Improvement: Full <code>items[]<\/code> payloads on add-to-cart and remove-from-cart (classic + Blocks)<\/li>\n<li>Improvement: Sale <code>discount<\/code> on GA4 line items when products are on sale<\/li>\n<li>Improvement: <code>view_promotion<\/code> for on-sale products and store notices<\/li>\n<li>Improvement: Blocks checkout uses official WooCommerce cart\/payment stores and checkout failure events<\/li>\n<li>Improvement: <code>payment_failure<\/code> documented as always-on (not behind Extra GA4 events)<\/li>\n<li>Fix: Blocks <code>add_shipping_info<\/code> and <code>add_payment_info<\/code> used non-existent store APIs (corrected against WooCommerce core)<\/li>\n<li>Fix: Mini-cart remove links now tracked via <code>data-ga4-item<\/code> attribute<\/li>\n<li>Fix: Product JSON in HTML attributes uses WooCommerce <code>wc_esc_json()<\/code> for safe encoding<\/li>\n<li>Refocus: GA4 ecommerce event tracking (removed profit\/COGS, journey analytics, Meta CAPI, ad spend)<\/li>\n<li>Renamed from Trackify to GIA GA4<\/li>\n<li>Streamlined dashboard: Overview weekly insights, Traffic, Products, Customers, Settings<\/li>\n<li>Removed profit columns from product reports and weekly insights<\/li>\n<li>Fix: Dequeue WooCommerce Blocks built-in Google Analytics script to prevent duplicate gtag configuration and double-fired events on block cart\/checkout<\/li>\n<li>Fix: Validate order key on thank-you page before firing browser purchase events<\/li>\n<li>Improvement: Blocks cart\/checkout prices use Store API line totals and cart totals (WooCommerce minor-unit format)<\/li>\n<li>Improvement: Accept Google Tag measurement IDs (<code>GT-<\/code>) in addition to <code>G-<\/code> IDs<\/li>\n<li>Improvement: Blocks mini-cart tracking on all WooCommerce Blocks stores with deduplicated remove-from-cart events<\/li>\n<li>Improvement: Per-event enable\/disable toggles for core GA4 ecommerce events<\/li>\n<li>Improvement: Cross-domain linker settings (domains + incoming parameters)<\/li>\n<li>Improvement: Product Bundles use minimum bundle price in GA4 item data<\/li>\n<li>Improvement: Admin warning when Google Analytics for WooCommerce or Site Kit snippet may duplicate GIA GA4 tracking<\/li>\n<li>Improvement: Settings page reorganized into Connection, Privacy, Events, and Advanced tabs<\/li>\n<li>Fix: Tabbed settings panels render fields correctly (WooCommerce table wrapper compatibility)<\/li>\n<li>Richer GA4 item data, improved server-side deduplication, and Blocks checkout tracking fixes. Recommended for all stores.<\/li>\n<\/ul>\n\n<h4>0.4<\/h4>\n\n<ul>\n<li>Improvement: Tabbed analytics dashboard (overview, products, customers)<\/li>\n<li>Improvement: First-touch UTM attribution saved to order meta<\/li>\n<li>Improvement: HPOS-compatible traffic source queries<\/li>\n<li>Improvement: Server-side purchase deduplication and new vs returning customer on purchase<\/li>\n<li>Improvement: Coupon, shipping, payment, and payment failure checkout events<\/li>\n<li>Improvement: Product image, GTIN, hierarchical categories, and brand in item data<\/li>\n<li>Improvement: WordPress script enqueue compliance (<code>wp_add_inline_script<\/code>)<\/li>\n<li>Improvement: Namespace prefix <code>giawc_<\/code> throughout<\/li>\n<\/ul>\n\n<h4>0.3<\/h4>\n\n<ul>\n<li>Improvement: WordPress.org compliance updates (prefixes, PHPCS, enqueue standards)<\/li>\n<li>Improvement: Database query optimization and HPOS compatibility<\/li>\n<li>Removed: Meta and TikTok tracking<\/li>\n<\/ul>\n\n<h4>0.2<\/h4>\n\n<ul>\n<li>Fix: PHP fatal error in settings API compatibility<\/li>\n<li>Improvement: Code standards compliance<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Complete GA4 ecommerce tracking for WooCommerce \u2014 every funnel event, server-side purchase backup, Consent Mode V2. No Tag Manager. No bloat.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/275230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=275230"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/userelements"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=275230"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=275230"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=275230"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=275230"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=275230"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=275230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}