I’ve recently published my extension on the Extension Warehouse, and I’m trying to figure out a way to track user interactions, particularly when users click the Install button on the Extension Warehouse page. Specifically, I want to capture UTM parameters (e.g., from Google Ads, social media, or other marketing campaigns) so I can track the source of traffic leading to the download.
Here’s the scenario:
Website: Users visit my website and download the extension. I’ve set up tracking there, so UTM parameters are captured on my site.
Extension Warehouse: Now that the extension is live on the Extension Warehouse, I would like to track clicks on the Install button or any other install-related events directly from the Extension Warehouse page.
The Question:
Is there a way to capture UTM parameters or trigger an event (like a backend call) when a user clicks on the Install button on the Extension Warehouse page?
If this isn’t possible, what’s the best method to track installs or visits coming from the Extension Warehouse, without relying on external landing pages?
I’m looking for suggestions, best practices, or any ideas that could help me track the source of traffic and installs in a meaningful way from the Extension Warehouse.
One possibility might be to have a routine that runs ONCE upon first run of your extension, that asks the user where they heard of the extension, if the extension subfolder has an “extension_info.txt” file.
These files are specific to the Extension Warehouse and are transparently inserted into the RBZ archive when deployed to the EW. Meaning that an RBZ from anywhere else will not have this txt file.
The key here is to NOT interrupt the application startup and extension load cycle with modal window(s) the stop the load. You can use UI.start_timer to add a delay.
Your only other option would be to create separate RBZ archives for each marketing campaign that has hard-coded data in the RBZ like a @campaign variable within the code.
This would be extra work as each RBZ would need to be individually signed through the signing portal.