Google Tag Manager for Easy Digital Downloads
GTM4WP connects Easy Digital Downloads to Google Tag Manager. It writes what visitors do in your store into the data layer, in the format Google Analytics 4 expects for ecommerce, so you can build Google Analytics 4 and Google Ads tracking in Google Tag Manager without adding code to your site.

New in 2.1.0. The integration needs Easy Digital Downloads 3.0 or newer. Every option in it is marked beta or experimental until it has more real world use.
GTM4WP 2.0.x: there is no Easy Digital Downloads integration.
Turning it on
Open the GTM4WP settings page and go to the Easy Digital Downloads section. Track e-commerce is the master switch. While it is off, nothing described on this page reaches the data layer, and that includes the cart, customer and order data options. If Easy Digital Downloads is not active, or is older than 3.0, the section shows a notice instead of the options.
Which Easy Digital Downloads events get tracked
| Event | When it is sent |
|---|---|
| view_item_list | A page lists downloads with the [downloads] shortcode or the Easy Digital Downloads downloads block. Long lists are split into several events (Products per impression). |
| select_item | A visitor clicks a download in such a list to open its page. |
| view_item | A download page loads, and again when the visitor picks a price option on it. |
| add_to_cart | A visitor clicks a buy button, or raises a quantity in the checkout cart. |
| remove_from_cart | A visitor removes a download from the checkout cart, or lowers a quantity. |
| view_cart | A page with the [download_cart] shortcode or the full cart block loads while the cart has items. |
| begin_checkout | The checkout page loads while the cart has items. |
| add_payment_info | The visitor switches to another payment method at checkout, or clicks the purchase button. |
| purchase | The purchase confirmation page loads. |
Easy Digital Downloads sells digital products, so there is no add_shipping_info event and the purchase event carries no shipping value.
How downloads appear in the data
- item_id is the download ID, or its SKU when Use SKU instead of ID is on and the download has one.
- A download with several price options keeps a single item_id. The name of the chosen option goes to item_variant and its amount to price. Before an option is chosen, the lowest price is reported.
- item_category comes from the download categories. item_brand comes from a taxonomy you choose, because Easy Digital Downloads has no brand taxonomy of its own.
- Every item also carries the fields Google Ads dynamic remarketing reads: google_business_vertical, and id (destination for the Flights and Travel verticals).
How purchases are counted
The purchase event is sent on the purchase confirmation page. GTM4WP finds the order from the confirmation link Easy Digital Downloads sends the buyer to, or from the buyer’s own purchase session.
Each order is counted once. GTM4WP marks the order as tracked, and the browser remembers it as well, so reloading the confirmation page sends nothing new. An order older than 30 minutes is not tracked on its confirmation page (the Only track orders younger than option).
By default a purchase counts once the order is Pending, Processing or Complete. Pending is included on purpose: with an offsite gateway such as PayPal, the buyer can reach the confirmation page before the payment is confirmed, and the order is not counted a second time when it completes. Remove Pending and Processing if you only want completed orders counted. The settings reference covers every purchase tracking option.
Customer and order data
With Customer data in data layer on, the name, email address, email hash, order count and total spend of a logged-in customer are added to the data layer. The purchase event then also carries the user_data block that Enhanced Conversions for Google Ads reads. That block is built from the order, so guest purchases are covered too.
On the confirmation page, the buyer’s details are only added for a visitor Easy Digital Downloads would show the receipt to. Someone who opens a forwarded confirmation link gets none of them.
Differences from the WooCommerce integration
The settings mirror the WooCommerce integration, and the events are the same, so a Google Tag Manager container built for one mostly works for the other. The differences:
- No shipping step, no shipping value and no “Exclude shipping from revenue” option.
- Price options are reported as item_variant of one download. WooCommerce variations get their own item_id.
- The default purchase statuses are Pending, Processing and Complete, and the order age is measured from when the order was created.
- There are no options for firing view_item on a parent product, a custom thank-you page or CheckoutWC.
Setup guides

Google Analytics 4
Track ecommerce data from your Easy Digital Downloads store in your Google Analytics 4 property.
Google Ads
Conversion tracking, dynamic remarketing and Enhanced Conversions for your downloads, set up in one guide.

Refunds in Google Analytics 4
Send refunds issued in Easy Digital Downloads to Google Analytics 4 from your server, so your reports stop counting revenue you have given back.
Easy Digital Downloads Settings Reference
Every option in the Easy Digital Downloads section of the GTM4WP settings, what it changes in the data layer, what it is set to before you touch it, and when it is worth changing.
