Changelog
Follow up on the latest improvements and updates.
RSS
improved
Reporting
Tracking
September updates
A quick update from us — not much in the way of features to announce over the last 4 weeks as we have been working on two major tasks:
AI nodes
This will be our first "premium" feature (i.e. that costs extra), which will use Bayesian statistics to route traffic automatically to nodes and pages based on conversion rates and revenue per view.
We plan to release a basic version in beta first (which will be free for a while), before fully releasing the feature and some extended versions that will be suitable for higher volume customers.
Frontend app rebuilding
We have been rebuilding our frontend app - a time-consuming process that is taking 2-3 months. The main reasons for this is to make our development faster overall, to allow vastly improving the reporting performance, and generally to allow us to roll out new features faster.
At some point after many years, things can get convoluted and in need of a refresh.
We hope to finish both of these closer to the end of September.
Aside from that, there are a few small things we have done:
- Added a toggle to reporting to allow attribution by entrance time, rather than event time. For those of you with quite delayed conversions or revshare, this will allow you to see revenue and conversions aligned with the day the visitor entered the funnel. This makes conversions, revenue, ROI, etc. by date and time more accurate in these situations.
- We updated our default logic for processing repeat conversions (those where a conversion with the same hit/tx has already happened). Now they will overwrite as usual but will NOT send a repeat postback to the traffic source.
- Added a handful of templates
- Fixed some issues with the FB UI
- Fixed an issue with tracking fields in conditions
new
fixed
Reporting
User Interface
Knowledgebase updates and various changes
We have made significant updates to our knowledgebase. Frankly, I think we have the best documentation in the industry 🙂
Documentation changes
- Massive sweeping updates of our documentation, including new onboarding guides/videos
- We have now translated our entire knowledgebase into Spanish, Portuguese, Russian, Chinese, Korean and Japanese, to make it easier for non-native English speakers
- We are in the process of translating all our onboarding guide videos into these languages as well, and will soon add many other languages to the knowledgebase (however, we can't translate videos into all languages, as it's quite expensive)
- Added a smartlink technical case study to demonstrate setting up tracking, then general optimisation and testing
- If you have a language you'd like to request, let us know. We also plan to internationalise the UI in due time
New features and updates
- Added revenue share feature for postbacks, for both conversions and custom events. You can now add ...&rev_share=60to do a 60% adjustment to incoming revenue values automatically. Values between 0.01 and 99.99 are supported
- Added and updated templates for Explodely, Clickbank, News Break, BigBangAds, PropellerAds
- Added referrer and referrer path to raw events API. It will be added to the UI soon.
- Added node type icons back to the raw events page
General fixes/changes
- Changed to new caching service for reporting to improve performance
- Fix for organic traffic, which was failing to process correctly in some cases
- Added calculatedMetricsto the reporting API, which will provide derived metrics like CTR, CVR etc. We will migrate our UI to this and later provide information to API users.
- Similarly, we added custom events as individual metrics to query in the reporting API (rather than returning payloads of all events together). We will eventually phase out the old approach and provide a migration window to API users
- Fixed issues on the billing page that were giving the wrong event counts
- Fixed an issue with reporting filters not saving state correctly, so filters were applied but not visible in the UI
- Fixed times on the FB/Google UI pages, so that selecting a single day gives the correct query
- Fixed an issue where updating the category of an asset to uncategorized didn't work
- Fixed an issue with tables showing odd results when deleting the last item in a group
new
improved
fixed
Tracking
Outgoing postback throttling and other updates
New Features
- We added an outgoing postback probabilityfeature to traffic sources > advanced settings. Now you can throttle postbacks to your traffic source. For example, you can set a value of 70 to only send 70% of events to the source (useful in cases where you send events but not revenue and want to throttle things to manipulate algorithms).
- Added "Initial Referrer" attribute to condition nodes. This will be the referrer from the initial (traffic source) entrance, whereas the "Referrer" attribute uses whatever is in the most recent request info.
Improvements
- Made some changes to the app to hopefully make updates more streamlined with purging of old data
- Fixed the device language attribute in conditions to now work more reliably. Additionally, the attributes like "All English" now work correctly, matching for en-US, en-GB, etc.
- The Tracking Field attribute in conditions now checks URL buffer data, allowing you to route by URL parameters you have passed into links/action URLs that are not part of the traffic source's data
- Additional tokens set in node settings now get pushed to the accumulated URL parameter buffer, overwriting existing fields and these are then accessible with {data-xxx} tokens
- Updated our Clickbank templates and guide documents as they now support postbacks. No need to use the old archaic IPN, yay!
- Added a new check for user-agent changes if a session cookie is provided, and if so, create a new session. This specifically applies to TikTok/Pangle traffic where we see odd session sharing across independent users (possibly some weird thing they are doing with a proxy app in the middle).
- Improved tracking of direct navigation between pages with JS, which is now less likely to lose the session.
Bug fixes
- We found an issue where custom events were not appearing in the conversion tracking section if you didn't have aliases set. This is now fixed, sorry for that one!
- Fixed Kosovo country code, which was not listed and returning errors
new
Reporting
User Interface
Funnel Building
Tracking
Major updates to triggering events!
We've released quite a lot of update so this is a long one – it took us a while to get these out due to overlapping functionalities.
Custom events triggered by actions
We have now completed the last major step in our development of custom events.
Now, you can trigger custom events in your funnel builder directly on action connections (i.e. on clickthrough).
This makes it easy for you to fire events server side to platforms like FB/Google that would otherwise require JS on pages.
For those of you doing email submits, this will be great news as you can shift to fully server-side sending of your events to the traffic source.
Additionally, we have added new options to action connections that let you set revenue overrides for the conversion/custom event, as well as transaction ID overrides.
New advanced settings for traffic sources
You can now set optional overrides for traffic sources:
- Incoming cost overrides
- Outgoing revenue overrides
- Disabling of zero revenue postbacks
The incoming cost overrides will be key for those of you running platforms with high click loss that can pass cost data (e.g. pops).
Now, if you have e.g. 10% click loss, you can enable this setting -> set a value of 110% to modify incoming costs to compensate.
Outgoing revenue overrides will allow you to modify what values get sent to traffic sources. Use this to manipulate algorithms. This will not affect your data inside FunnelFlux.
Disabling of zero revenue postbacks lastly allows you to prevent postbacks to your traffic source if the payout is zero. This can be handy if you have some initial conversions at zero revenue that are later updated to a real revenue, where you want to keep them as the same conversion event, but avoid double-posting to the source.
Raw Events page
The raw events page has been revamped and simplified. Now, you no longer have to select funnels and traffic sources. Instead, you can optionally add filters to your data, much like on the reporting page.
There's a lot more filtering available here, as well as include/exclude options, making it easier to pull specific data reports.
New postback service
We are migrating all postback handling to a new service.
This has added postback logs on our backend, which we will be able to add to the UI in due time.
I'm sure a lot of users will appreciate this for debugging traffic source conversion tracking - has been a long-time coming.
Other minor changes
- Added disable postbacks toggle to the update conversions page
Fixes
- Tracking field data was not displaying correctly in quickstats, where custom event counts were absent
- Fixed device main language in conditions, which was not allowing saving
- Fixed some issues with column data formatting
We've rolled out a few small updates over the past week.
Most of our time has been spent getting
on action
events completed, which will allow you to trigger conversion and custom events via actions in the funnel builder (including with tx/revenue overrides).Here are our recent changes.
API changes
- Conversion time overrides are now fully working and available via postbacks, JS and API uploads. They will be added to the UI later when we refactor the update conversions page.
- Added API docs for creating funnels, which is quite nuanced/complex
Integrations
- We have updated the Snapchat integration to use their new V3 API
Templates
- Added Pinterest
- Updated Snapchat
- Updated BigoAds
- Updated Ads.com
Fixes
- Fixed an issue with condition route auto-naming
- Updated tracking fields in conditions to allow blankvalues so that you can route based on the field being absent or empty
- Fixed the {conversion-time}token when used for custom events - it now returns the custom event time as expected
Infrastructure
- We have made various updates to our health/failover logic to improve latency during spikey traffic
We've rolled out a number of general updates, and are still working on finalising our custom event features.
General Updates
- Added Bigo Ads integration and custom scenario
- Updated some asset pages to be a little faster in their reports
- Added custom event JS to the tracking codes page
Infrastructure and performance
- Infrastructure improvements have been made to improve latency globally -- particularly in Asia
- We had some DB issues arising from excessive API queries. We have now added workload management to reporting such that user queries cannot consume excessive resources so easily. If you're an API user please take note of our new API best practices page here.
API Changes
- Updated Raw Events API to allow a lot more data - most columns, limits of up to 10,000 rows.
- There's limitations for now but you can check the API docs for more information
- Added best practice documentation
- Added hit ID to default JS responses, so you no longer need additional code to get hit IDs from JS
Fixes
- Fixed an issue with custom event counts/revenue not showing correct totals in footer
- Removed "no offer source" from the offer sources page as it's a little confusing to show data coming from no related source
- Patched some issues with the new conversion tracking settings for custom events (a little fiddly to make sure all old assets updated correctly on open/save)
- Fixed an error with day of the week attribute in conditions
- Fixed the {conversion-time} token for custom events
- Fixed device main language reporting
- Fixed an issue with the traffic source > tracking fields attribute showing incorrect sums.
new
improved
fixed
Custom event improvements
A few changes have been rolled out, particularly addition of the next step of custom events.
Custom Event Postbacks
- You can now set individual postbacks or custom scenario settings per custom event, in your traffic source settings
Conversion Time Overrides
- You can now add conversion_time=timestamp_valueto postbacks to override the conversion time of the event
- These timestamps are ideally unixtimestamp formats but a few others are supported
- If the timestamp is invalid or before hit time, time will default to the hit's time.
- If the timestamp is in the future, it will default to current time instead
- You can also provide conversionTimein JS and API-based conversion uploads, though we have not yet updated the API docs or added this to the UI yet, as we will need to make the UI for uploads a bit easier with so many pieces of data now possible
Bugfixes
- We have adjusted JS tracking to ignore deleted nodes when first attempting to attribute a view, where no explict node/pages hage been provided. This should reduce issues with funnel navigation where the JS has to guess, based on URL or page ID, what node the user is visiting
- We found an issue where tokens used in domain hostnames could cause https:///responses that specifically affected Safari and have improved URL handling
Ongoing issues
- We are still investigating issues that cause reporting caching to give odd results, e.g. new assets disappearing temporarily or IDs showing instead of names. Ultimately we will resolve this with a larger task of migrating to a new assets database.
We have rolled out a number of technical improvements to postbacks, JS tracking and API uploads that enables some useful features:
Disabling traffic source postbacks
- You can now pass disable_postbacks=trueinto postback URLs to prevent firing of events to your traffic source for a conversion. This is particularly important for search arbitrage users where you may want real time tracking followed by delayed postbacks to update revenue
- Likewise you can also pass this into your conversion API uploads (see updated docs) and set the same parameter in JS tracking events
Event statuses
- You can now pass status=valueinto postbacks to set a pseudo event status. This is not yet a field in our database or reporting.
- However, when you send a status of pending,holdorpreapproved, our system will adjust revenue to0.01.
- When status is set to rejected,reject,trashorcancelled, the revenue will be set to-1and this will delete the conversion
- This has been added to assist with networks where they can only set a single postback, but can send a dynamic status value for the various events.
- Let us know if there are other values you need caught here, or if you'd prefer a revenue of 0instead of0.01for the pending conversions.
- We intend to add a mutable event status column to our database later
POST support in postbacks
- Incoming postbacks using POST rather than GET are fully supported
- We will check the POST body for relevant parameters for hit, revenue and transaction ID - we have a list of possible names here we will check through
- The standard keys/values in the query string will take priority
Other changes
- We have moved our reporting system's caching back to an old version to remedy the issues some users were having with asset pages not showing updates reliably (e.g. you delete an offer and it reappears on refresh of the table).
We have FINALLY released the long-awaited custom events feature.
You can now find information on these in the tracking codes area, set aliases under system settings, and can see our help article here.
This is an initial release so not all aspects are finished, but you can now:
- Send 1-10 custom events back to FunnelFlux via postback URL and JavaScript
- Send optional revenue with those events
- Set aliases for use in the reporting UI
- In all reporting pages, you can see custom event count, event revenue, completion rates per visit, revenue per custom event, and cost per custom event
We have some upcoming further changes to complete custom event implementation:
- Ability to set postbacks for each one in traffic source conversion tracking (an obvious feature that we should release in the coming days)
- Ability to trigger custom events in the funnel builder as users perform an action
- Ability to upload custom events via API much like conversions
- Addition of custom events to the raw events reporting
- Adding total revenue columns to reporting to sum all revenue sources, and updating ROI/P&L metrics to use these as well (right now, "revenue" is actually conversionrevenue only).
Please note custom events have the following limitations:
- Custom events can only happen once per user. Our current database design prevents duplicates of custom events. We intend to change this in the future, as we feel there's many scenarios where you want to send custom events multiple times.
- Custom events cannot pass unique transaction ID data
- You can only trigger custom events using their number when using postbacks/JS. We won't allow triggering by alias (e.g. event_name=lead), because if you ever changed aliases in our UI you could break existing events or make them switch to new event columns in our database, fragmenting your data.
Other important changes
In order to make custom events more convenient, we also made a significant change to our hit design.
Previously, only hits (views) to offers could convert. We have now made it possible for all page view events to convert, i.e. lander views as well.
Other fixes/updates
- We added a "disable VID append" feature to data passing. This is for rare cases where VID may break a downstream system and you want to disable our auto-appending of it on redirect
- We have added some initial logics to prevent excessive sessions sizes, which is happening to some odd traffic originating from TikTok/Pangle (we think somehow they are caching cookies across users and causing the same VIDs to get used when they should not)
- We have updated various API schema to use new restrictToMetrics associated with custom events
- Improved some issues with reporting which were causing updated asset changes to not reflect in the UI (e.g. you delete an asset, it reappears).
We've made a number of small changes and additions as below:
- We have added a cpm_prefix that you can use with cost tokens for when a CPM bid value is passed, rather than a cost per click. Thus if cost is passed as..&c=cpm_value, our system will takevalue / 1000as the incoming cost. See documentation here.
- We added currency conversion to our Facebook Ads UI, which will note if your account is not in USD and will convert spend values to USD if so (thus, we are assuming your FunnelFlux revenue reporting is in USD). We plan to add this to the Google UI shortly as well.
- The FB app is still going through approval hurdles with Facebook (they are a bit ridiculous) but can be readily used by reaching out to us to be added as a tester
- We now have encode/encrypt functions you can add to tokens for when passing data to a page (e.g. an affiliate offer). Available functions are base64, bin2hex, rot13 and md5. Only the latter is irreversible, the others are encoding not encrypting. You can see our documentation here.
- Patched the 404 URL in system settings, which was failing to redirect as expected
Bug fixes
- Fixed an issue with URL tracking field filters
- Fixed a datepicker issue on the dashboard that was crashing the app
- Improved our memory caching in our edge servers to better handle extremely large assets, such as funnels with a huge number of nodes
- Fixed an issue with unique metric calculations
- Fixed an issue stopping funnels/funnel groups from archiving and unarchiving correctly
Load More
→