Changelog

Follow up on the latest improvements and updates.

RSS

Lots of performance improvements and fixes with our new rollouts, as below.
Reporting
  • Dramatically faster reports
    — Offer, lander, and category reports are now up to 55x faster. Time-based drilldowns (Hour of Day, Day of Week, etc.) are roughly 2x faster.
  • Cost now visible on offer reports
    — Offer, Offer Group, Offer Category, and Offer Source reports previously showed $0 cost. Cost is now distributed proportionally based on node views.
  • Accurate category groupings
    — Reports grouped by Funnel Group, Lander Category, Offer Category, or Offer Source now reflect your current asset organization, not outdated groupings from when events were recorded. This is part of our major backend assets DB changes.
  • URL Tracking Field drill-down chains fixed
    — Multi-level drilldowns through traffic → lander → traffic patterns now expand correctly.
  • Drilldown filtering fixed
    — Tracking field value filters now apply correctly when expanding drilldown rows.
  • Postback logs
    — Improved default sorting.
  • Raw events
    — Column widths now size correctly on load.
UI Performance
  • New Improved Caching
    — we have added improved caching across the board so that reports do not reload unnecessarily. Navigating the app between pages should feel much faster, and the report builder + others now save the previous report data rather than refreshing on each load.
  • Faster navigation
    — Dashboard charts and QuickStats are now cached, so switching between pages no longer reloads data unnecessarily.
  • Improved chart tooltips
    — Timestamps are now formatted for easier reading.
Funnel Builder
  • Smoother canvas panning
    — Significantly improved panning performance, especially on larger funnels.
  • Heatmap overlay fixes
    — Cards now display at the correct size, and long node names truncate cleanly instead of breaking layout.
  • Rotator weights update instantly
    — Edge percentage labels now reflect saved rotator weights immediately, without needing a full funnel save.
  • Auto-naming respects manual edits
    — Node auto-naming only applies to new unsaved nodes; your manual names are no longer overwritten.
  • Linked Funnels removed
    — This feature has been retired and removed from Advanced Funnel Settings.
Data Management
  • Improved cost upload
    — Column mapping is now auto-detected from your uploaded file, and template download is separated from the upload flow for a cleaner experience.
  • Reset data fix
    — The campaign filter in the reset data form was sending incorrect selections; now resolved.
Bug Fixes & Stability
  • Fixed redirect type overrides (301/307) not being applied correctly in some cases
  • Fixed table row reshuffling when navigating between reports.
  • Fixed form tabs resetting unsaved values when switching between them.
  • Resolved 78+ tracked error reports — various edge-case crashes and UI glitches across the application.
  • Duplicate "Uncategorized" rows fixed — Category drilldowns no longer show two separate "Uncategorized" header rows.
  • Advanced settings toggles fixed — Cost modifier, revenue modifier, and postback throttling toggles now initialize correctly from your saved values.
  • Zero values preserved — Toggling advanced settings off and on no longer resets a saved value of 0 back to the default.
New Feature: Campaign Cost Updates
From the Campaign Analysis page, you can now do a rapid scoped update of cost for a campaign row, as below:
Screenshot_4
Screenshot_3
This will apply the total cost to whatever the current date range is, for that campaign ID and traffic source, making it easy to do quick cost updates and corrections.
Improvements
  • All reporting should be faster, particularly anything involving traffic source
  • Updated dropdowns for pages to handle large lists. Now if there are >500 items, it will use a searchable list and only load the first 200 to prevent UI lag
  • Updated to new, cleaner change-parent and duplicate APIs for assets - faster and reduces the risk of data issues
Bug fixes
  • Fixed numerous issues with V2 reporting on lander/offer related attributes
  • Fixed issue with duplicating a newly created node
  • Fixed a bug where if node IDs were set to the same IDs used in assets, it would fail to map names correctly
  • Fixed an issue with the order of attributes in API requests impacting the results returned
We have now completed migration of our reporting and ledger (assets system) to version 2 services.
For the most part this should have no direct impact for typical users, but is a significant refactor on our side that helps with our development velocity.
We have also rolled out a bit of UI/UX polish.
Here's the quick list of changes/impact:
  • We tightened up app design a bit -- menu nav, table icons, colours etc.
  • When moving entities to new parents (e.g. funnel groups or categories), you should no longer have issues where the asset data appears in old and new locations at the same time
  • All assets now have bulk actions when archiving/deleting parents, so you can e.g. delete a category and choose to delete all children at the same time. Same with archiving.
  • Page groups and conditions have moved to a new "Global Nodes" section. Page Groups here now show analytics data and are split into lander/offer tabs.
  • Made the column selector UI nicer to use
  • Improved page list UI in page groups -- sliders now are much smoother, moving items up and down in list is likewise nicer.
  • Overall, you should hopefully see no major changes or disruptions, other than a bit of UX polish.
Reporting in general should have fewer issues -- but again, please report any scenarios where you get unexpected data, as this helps us polish every little edge case and complex grouping.
We have rolled out two new feature changes -- to rotators, and conditions.
Rotator Stickiness Settings
We've had a few requests in the past for "smart" rotation where you can make sure the same user always gets rotated to the same page -- or the opposite, where a user is always routed to a new destination if they visit the same rotator multiple times.
This affinity and anti-affinity logic is now available in rotator node settings:
Screenshot_9
Note this data is at the session level, so is limited by the session persistence. A user coming back after seven days will no longer have session data (even if we recover the session ID from cookies). So this functionality is aimed at repeat visitors within a short timeframe, e.g. in a 24 hour window.
Condition Node Updates
  • Tracking field and referrer properties can now use the
    IS EMPTY
    and
    IS NOT EMPTY
    operators
  • This will allow you to more easily redirect users based on URL parameters being present or not, or having no value. Likewise with direct visits that have no referrer value
Screenshot_8
Domain API Updates
  • Domains can now be managed via API directly, rather than only via the frontend.
  • For users who need programmatic domain control this is likely very helpful news!
  • Now, our backend domain API handles all the management of adding to our assets, Cloudflare, and updating billing. It will be relatively high latency when adding domains since it has to do all these processes behind the scenes (e.g. 5-10 seconds).
  • We have updated our API docs here to reflect all our recent API changes
Billing systems improvements
  • The billing page now shows better breakdowns of charges and estimates upcoming billing
  • You can now trial addons for 14 days. As we roll out new addons this will become more important, allowing you to test functionality
  • Cancelled and paused subscriptions should now show a reactivate button to resume normal billing
  • Fixed an issue where overage were counting from 1 M instead of the included 2 M.
Upcoming Migrations
Just mentioning this now, and will mention again soon, but we are in the middle of migrating our entire assets database system and rolling out a new backend service for this.
Likewise, reporting V2, and soon will be migrating to a new auth system. These all enable us to move faster with development, improve performance, and remove some annoying historic issues.
We expect no downtime or issues, but like with all things, migrations can be complex and small bugs can appear, so we'll announce in advance and appreciate your patience with any things that pop up.
We've rolled out a few quality of life changes.
New PII data passthrough, dedupe IDs and logs
  • We have added passthrough of PII email, phone, zip code data to all our tracking endpoints, which will pass data automatically to our integrations like Facebook, TikTok etc.
  • Added new
    dedupe_event_id
    -- this will pass through event IDs for deduplication with APIs from Facebook and similar, so you can match with JS tracking. We recommend using hit_transaction ID for this
  • Phone numbers passed now get stripped/normalised so that integrations can always pass the correct formats (for non-hashed data)
Postback log page changes
  • The postback logs reporting now has columns for PII and event dedupe ID data, to show if values were passed onwards
  • The column selector is now more convenient
Bug fixes
  • Improved validation in condition nodes for various properties that were not allowing spaces, IPv6 etc.
  • Campaign ID filtering in reporting now properly allows multiple entries
Want to track extra data with your conversions?
Event data is here!
Previously, you could only use transaction ID with conversions to track conversion-specific info.
Now, we have introduced two new "event data" attributes that are passable in postbacks, JS and API uploads.
You can find them in the tracking codes section:
Screenshot_30
You can also show them in the report builder, and as columns in raw events:
ui
Screenshot_31
These fields will allow you to send cusotm data about conversions AND custom events. They do not impact deduplication like transaction IDs do.
The fields support up to 1024 characters, so you can also send multiple bits of data with some separators, or some JSON that you can digest and use later with API-based queries.
Use listicles or complex pages with a lot of actions?
Then you'll appreciate this new node type: the Action Proxy, now available in the funnel builder.
How does it work?​
The action proxy will take any incoming action and bounce out to the same action. It's a passthrough node.
How is this useful?​
Imagine you have a listicle with 20 buttons each going to a different offer. You have to make connections from your lander to each destination offer individually.
So far so good.
But now what if you have half a dozen landers you want to test, and you want them to be separate nodes?
It starts to get messy, with each lander needing to make 20 separate connections to the offers, causing a criss-crossing mess.
This is where the action proxy simplifies things:
9b035a33d900da153652168b4177cf35c33335eeb312b7ba3913d672acfaab1aScreenshot_10
Here, I connect all my landers to the action proxy and use our multiple actions feature -- you can edit an action and have many different numbers go down the same path. Above I have 5 actions on the first page, three on the second, all going to the middle action proxy node.
Then, I can connect each action number to it's intended destination. Whatever action I click on from the lander, it goes down that path after the action proxy node.
Now I can add more listicles as nodes (if I don't want them inside an existing lander group node), make a single new connection, and have it all route fine.
And if I want to split test offers, it's much easier to add new items, or throw a rotator into the mix to split things even further -- without as much visual clutter.
We've rolled out some other updates too but we will announce their details early next week.
Raw Event Improvements
We have updated our Raw Events page to now have better sorting and filtering.
  1. You can now sort by timestamp and others, and it will now sort properly (before, the row limit would cut off the results and not give you the latest data expected).
  2. You can now filter by a specific visitor or hit ID to find all it's data. Check the filters menu.
image
  1. Column settings are now easier to use and show you the 15 column limit more intuitively:
image
Other Fixes
  • Fixed a bug on tables that caused duplication not to immediately show the new row in the table
Hi all,
We're excited to release a major reporting update: Action Data.
A lot of people have asked in the past about seeing exactly which action users clicked and the conversions that came from those.
We have now added this to journey reporting and heatmaps, along with some new attributes.
Within the report builder you can now see a few more journey attributes that have "w/ actions" in them.
Using these you can add action steps to the breakdown:
Screenshot_4
You can now see the breakdown of clicks and CTRs for each action, as well as the downstream conversions, conversion rates, and ROI.
This leans into the power of having a visual funnel builder and flexible flows. Now you can easily break down the performance of different CTAs and paths at the action level.
We have also added a new "Pages > Action Number" attribute that provides a simpler breakdown:
Screenshot_2
These are all under the "Journey Mapping" category in the attributes list.
Additionally, you can now see analytics data on actions in the funnel builder's heatmap:
Screenshot_1
​Here, we have added data on the action connections when available, to show clicks, CTR, and other data depending on the report selected.
Note that unfortunately this data is only available from now, after our update -- not for past data. Be aware of this when using these reports across a wider time range.
As this stems from journey data, it's important you group by funnel first in the report builder, then these types of attributes, to avoid confusing data.
We have rolled out some backend UI updates to improve tracking and the ease of accessing and understanding tracking codes.
UI updates
On the tracking codes page, our JS and links are now better presented alongside all their parameters.
You no longer need to search through help docs.
There's a lot of attributes you can use in postbacks/JS that you may not know about, and now you can see them all in the tracking codes section.
image
Fingerprinting
For "black box" scenarios like Shopify checkouts or clients that can only place conversion tracking JS + don't allow much tracking, we have added a new fingerprint solution.
The use case for this is creating a fingerprint on the page just before the "black box" -> user then clicks through -> in later conversion code, the same fingerprint can be used to connect the dots with the previous session.
This allows for tracking conversions or continuing a session after some bridge that may have completely blocked tracking continuity.
You can find more info in the tracking codes section. Note this should only be used in those cases, it should not be used for normal tracking that is working fine -- will generally slow things down and provide no benefit there.
Session robustness
One challenge with sessions (our vid) is that they are temporary, and the expiry is not completely controlled (it will be say 72 hours but will be limited by the storage capacity of our edge session servers).
To improve this and reduce the occurrence of "organic traffic" or failed clickthroughs, we have added a new session recovery cookie mechanism.
When someone loads a redirect/direct link, we drop a new cookie that can be used later to recover initial session data, allowing reconstruction of the original data -- like traffic source, URL parameters, etc.
If you have a lot of repeat visitors or people who come back after many days, this will help maintain tracking and reduce organic traffic, which can't send events back to an original traffic source.
Billing section changes
In case you missed it, the billing section is now revamped and allows you to pick addons, and shows the upcoming addons we are working on.
image
Other small fixes:
  • Updated our domains page to use a new consolidated API. This gives more reliable redirect checks, and API users will now be able to add/remove domains programmatically. Documentation to come
  • Updated our Reddit API integration to use their new V3 API
  • Improved table loading and sorting as you navigate between pages
  • Updated the navigation menu to open to where you are, when reloading pages (before it always collapsed and didn't highlight your current page)
  • Fixed conversion_time overrides that were not working correctly in postbacks
Lots more updates on the way!
Load More