Last updated
Revenue First Analytics tracks Easy Digital Downloads sales automatically. When EDD is active, the plugin saves the buyer’s visitor and session on the payment at checkout and records the revenue when the payment completes, attributed to the buyer’s first visit. Refunds and status changes are picked up from EDD’s own hooks, so the reports stay net, and the Products card lists your downloads, download categories and download tags.
Do I need to set anything up?
No. The plugin detects Easy Digital Downloads when the plugin is active and starts tracking right away. The only control is in Settings, under Integrations: the toggle Easy Digital Downloads revenue tracking, described as “Automatically track revenue from EDD orders.” It is on by default. If EDD is not installed, the toggle is disabled and reads “Easy Digital Downloads is not installed. Install it to enable revenue tracking.”
Turning the toggle off stops the plugin from recording new EDD payments and from sending EDD cart, checkout and purchase events. Revenue already recorded stays in the reports.
Which payments count as conversions?
Unlike WooCommerce, EDD has no status chooser. A payment is recorded when EDD marks it complete. The visitor and session are captured first, on the checkout request, through the edd_built_order and edd_insert_payment hooks, and stored as order meta. This happens before any off-site payment page, so gateways that confirm later (PayPal, Stripe) still attribute correctly. See How Sales Are Attributed to Traffic Sources for the first-touch logic, which is the same for both platforms.
| EDD event | Hook | Effect |
|---|---|---|
| Purchase completes | edd_complete_purchase | One revenue row is recorded with the payment total, currency, product names, customer name, email hash and billing country, attributed to the buyer’s first session. |
| Status changes to Complete again after a reversal | edd_transition_order_status | The payment is recorded again (it was removed by the reversal). |
| Partial refund | edd_refund_order | The refund’s negative total is applied, so the payment’s revenue becomes the net amount. |
| Full refund | edd_refund_order | The revenue row and the payment’s purchase event are removed. |
| Status changes to Refunded, Revoked, Failed, Cancelled or Trash | edd_transition_order_status | The revenue row and purchase event are removed. |
Pending payments are not conversions. A buyer who is still on PayPal, or whose receipt page shows a pending payment, is counted only once EDD completes the payment. Each payment is recorded once, guarded by a _rfa_tracked flag in the order meta. EDD 2.x payment status changes (edd_update_payment_status) are handled with the same rules.
How are refunds handled?
EDD 3 stores a refund as a separate order of type “refund” with a negative total. The plugin ignores those refund records as sales (only orders of type “sale” are recorded) and uses them to adjust the original payment:
- Partial refund: the refund total is added to the stored amount (it is negative), leaving the net revenue. The payment still counts as one order.
- Full refund: when EDD reports that everything was refunded, the revenue row is deleted along with the purchase event used by goals and funnels, and the payment no longer counts as an order.
As with WooCommerce, the change is applied to the payment’s original date, so a refund lowers the revenue of the day the payment was made. The general rules are in Refunds, Cancellations and Subscription Renewals.
How does EDD tracking differ from WooCommerce tracking?
| Area | WooCommerce | Easy Digital Downloads |
|---|---|---|
| Conversion trigger | Order status chosen in Settings (default Completed); Completed always counts | Payment marked Complete; no setting |
| Reversal statuses | Refunded, Cancelled, Failed, trash, delete | Refunded, Revoked, Failed, Cancelled, Trash, full refund |
| Products card tabs | Product, Category, Tag (WooCommerce products, product categories, product tags) | Product, Category, Tag (downloads, download categories, download tags) |
| Product visitors | Views of the single product page detected by the tracker | Unique visitors to the download’s page URL, matched by the download slug |
| Subscription renewals | WooCommerce Subscriptions renewals skipped | No renewal detection |
| Thank-you page purchase event | WooCommerce thank-you page | EDD receipt page, only for completed payments |
The metric tiles keep the same labels on both platforms: Revenue, Orders, Conv. rate and Rev/visitor. In the plugin’s terminology a WooCommerce order and an EDD payment are both conversions. The dashboard uses EDD’s currency symbol when WooCommerce is not installed.
Which EDD events can I use in goals and funnels?
Three server-side events are sent for EDD, the same names as for WooCommerce:
add_to_cart: a download is added to the cart, with its name, price and quantity.begin_checkout: the EDD checkout page is viewed with items in the cart, once per session.purchase: the payment completes, with the order total, currency and product names.
Use them as goals or as funnel steps, for example “Add to cart, Begin checkout, Purchase”. See Creating Goals and Building Conversion Funnels. The same events are also pushed to window.dataLayer and, with marketing consent, to the Facebook Conversions API.
Can I run WooCommerce and EDD at the same time?
Yes. Both integrations can be enabled, and each records its own conversions. The Revenue and Orders tiles, the chart, the Traffic Sources card and every other breakdown add up both platforms, since every revenue row is stored with its source (woocommerce or edd). Goals and funnels see purchase events from both.
The one exception is the Products card. It can show only one catalog, and when EDD is active and enabled it shows the EDD downloads, categories and tags; WooCommerce products are not listed in that card while EDD tracking is on. Disable the EDD toggle if you want the card to show WooCommerce products instead. Details of the card are in Product Performance Report.