Changelog

Welcome to the changelog section of Freemius, here you'll find our weekly technical update notes. You can subscribe to all posts via Newsletter or follow us on Twitter to stay updated.

Fixed analytics for trial cancellations

We found an issue in the analytics system where the ‘Trial cancellations’ metric wasn’t getting indexed. We fixed the issue and you should be able to see trial cancellations on the Sales Analytics page.

Developer Dashboard improvements – Security email + better UX for countries picker

Added a new security email to the profile page

Following our last security disclosure, we received feedback from our partners that they would like the security emails to be sent to a separate address. In response, we have added a new section in the “Profile” page of the Developer Dashboard.

security email freemius developer dashboard profile page

From here, you can add an email address where Freemius will send you security-related notifications. Please note that Freemius will send the notification to both the main email as well as the “Security email”.

Better UX for country pickers

Following yet another bit of feedback, we’ve improved the areas in the Developer Dashboard where we present a dropdown for selecting a country. For example:

  • Billing Information
  • Gifts & Surprises
  • Payout Bank Account

etc.

As you can see, you can now easily search for the country you intend to pick.

Improvements to the Analytics Date selection logic and UI + Additional fixes

We’re super excited to bring you the most-requested analytics feature in the Developer Dashboard.

Starting today:

  • We’ve removed the restriction of selecting the date in the main dashboard.
  • You can now pick any date range with any resolution (daily, weekly, monthly, yearly) and both the start and end dates will be used when populating the data, without getting rounded off.
  • The analytics charts are now faster than before.

The problem of rounding the date range

Previously, the server would round off the dates whenever you selected a date range that was not an hour or a day. For example:

  • If you set the start date as 12 July and the end date as 25 December (with a monthly resolution), the server would round it off as data between 1 July and 31 December.
  • Similarly, if you set the date to a weekly resolution, the server would round the start date to the first Sunday of the selected week and the end date to the last Saturday of the selected week.

This not only created confusion when viewing the charts and the UI (since they represented different dates), but we also had to restrict not showing the custom date picker in the main dashboard. This is because the rounded date range being shown there would not be the same as the selected dates.

Freemius Dashboard - Date Selection UI

Fixing the restriction of picking custom dates

After we enhanced the stats API, we can now provide data in any requested range and period that starts and/or ends at any date. The API will adjust the data to ensure it represents the requested date range instead of rounding it off.

As a result:

(1) The custom date picker in the main dashboard is back.

Custom date picker in the Freemius Dashboard

You can now get reports of aggregated data for any input.

(2) Charts and UI now correspond to the same date range.

Sync between charts and Date Picker UI - Freemius Sales Analytics

As seen in the above image, the start date (and the data) of the chart now corresponds to the same date as the UI. To make it even easier to spot and avoid any confusion, we’re now showing the full date range when hovering over a chart point.

Under the hood: Making the charts faster

While working on the fix, we did some major refactoring of the underlying system. We realized we were doing many calculations ad-hoc and using more processing time than needed. During the refactoring, we made some adjustments and saw immediate improvements in the snappiness of the charts.

But no performance improvement is worth mentioning without a benchmark. So let’s see the results:

Benchmark of chart tooltip rendering - 70% performance improvement

The benchmark itself was very simple. We took the main Net Payments & Transactions chart and hovered over the 7 data points while showing results for the last 7 days in Daily resolution. Co-incidentally, we also saw a 70% improvement in the rendering time 😁

Additional Fixes

Following upgrades of the dependencies, we noticed the New Bank Account… button on the Profile page was not working.

Adding New Bank Account - Freemius Profile page

We fixed it in this iteration — apologies for any inconvenience!

Deployment Summary – 17th July, 2023

Freemius API & Backend

  • We fixed our composer integration which was raising some warnings due to package name mismatches.
  • We added a permission for the developer role to generate secure download links for licenses.

Developer Dashboard

We removed the code snippet that includes the secret_key of a product in the SDK integration code. Previously, we included an update to give clear instructions on how to activate development mode in the SDK.

We believe removing the secret_key from the main product file is the safer approach, since one can forget to remove it before doing manual deployments to the WordPress.org repository.

Checkout and backend improvements – Fixing the Dunning app

Fixed the Dunning app on Freemius Checkout

We fixed an integration issue with our Checkout Dunning app and the new security layer. Due to a bug in the system, the dunning app would be stuck in limbo when the security layer was throwing a reCAPTCHA error and would not show the UI to render the reCAPTCHA.

Freemius Checkout dunning app

As a part of the fix, we also improved the error messages shown to the end user that may come from the firewall. The dunning app will also work well if the security layer asks for a 2FA authentication.

Freemius Checkout Dunning app 2FA

Other Backend Changes (API)

  • Fixed an API endpoint issue that meant a product’s settings could not be updated if the product was not a theme or a plugin.

Improvements to the SDK Integration instructions

Over time, we’ve made improvements to our WordPress SDK and its integration code for both production and local development and testing.

Integrating the SDK with your WordPress plugin or theme for the first time can be slightly challenging — especially getting the correct flow of the Opt-In screen. By default, Freemius may send a confirmation email during opt-in. If you’re using a “local” email address in your localhost environment (like ‘[email protected]’) or the same email address you used to sign-up with Freemius, you might not receive the email, and the activation will be stuck.

However, skipping email activation in testing or development mode is easy. We need to put three constants in the wp-config.php file. Previously, the information about these was hidden on the SDK Integration page, far below.

To make it easier for first-time developers, we’ve rearranged the SDK Integration instructions in our Developer Dashboard.

Freemius Developer Dashboard SDK Integration testing code improvement

The steps now clearly state what code you need to put inside your plugin/theme and what code you need to put inside the wp-config.php file.

This improvement of the Developer Dashboard was led by our new team member Aleksandr Manukyan who joined us as a full-stack engineer.

Miscellaneous changelog Jun 5th, 2023

Freemius Blog

We made our blog a little faster by updating the under-the-hood build system. Hat tip to our new WordPress Developer Laurence Bahiirwa who led this.

Additionally, we also did a cleanup and sweeping to update some internal systems.

Developer Dashboard

We added a new “Perk” to the “Partner Perks” section.

If you haven’t yet, please check the “Partner Perks” under the Profile menu on the top-right corner of the Developer Dashboard. This menu unlocks only after you’ve crossed a certain threshold with us and we provide discounts on various promotional sites, services, and products to help you grow your business.

User Dashboard

We fixed a regression in the UI where the reCAPTCHA would not show up in some edge cases, even though the API server expects a reCAPTCHA.

Freemius Checkout Improvements

We’ve made various under-the-hood improvements to the Freemius Checkout app. Here are the notable ones.

Improving the error messages and the UI

We’ve updated the error message to improve the UX when the server returns an error.

Freemius Checkout Error Message

Previously, it was showing an obscure message. While the message was relevant to attackers, it was misleading to legit customers. We hope the new message will clearly indicate to a legit customer the next steps they need to take.

Improvement of the 2FA mechanism

We found quite a few edge cases, where the 2FA mechanism was breaking the UX due to some browser policy. To make the 2FA work – regardless of whether the browser is blocking cookies – we completely overhauled the system. Now, the 2FA should work no matter if it is embedded in an iframe and regardless of whether the browser or some extension is blocking cookies.

Improvements in the localization

We improved a few of the translations and their plural forms to make them compatible with transifex.

Deployment summary 28th May, 2023

Backend

  • Fixed a minor and edge case issue in the logic determining a product’s business model (free vs. freemium vs. premium only).

Checkout

  • Fixed a regression in the dunning app that appeared after adding support for localization.

Developer Dashboard

  • Fixed static product deployment UI regression post the AngularJS update.
  • Improved the product account upgrade dialogue to guide the developer to contact our support if they need to add a team member or a webhook and their product does not have the capability to do so.

User Dashboard

  • Added a FAQ item to guide users if they want to reactivate a canceled subscription.

Miscellaneous changelog May 21st 2023

  • Fixed limit and offset params for the bundle installs API endpoint.
  • Added a prompt in the User Dashboard’s account deletion mechanism to confirm that once deleted, no refunds can be processed.

Updated supported localhost and staging URLs in the Developer Dashboard

Following requests from our partners, we’ve updated the list of supported localhost and staging sites that come right out of the box from Freemius. We now also include the following providers:

  • WP Sandbox
  • Newer URL patterns from WPEngine
  • Cloudways
  • DesktopServer
  • Pressable
  • WPMU DEV
  • Vendasta
  • InstaWP
  • Pantheon
  • Kinsta

You can read more about license utilization on staging/dev sites here.

Checkout localization improvements

We made some small but useful improvements to the new feature we rolled out last week: supporting localization in our checkout.

  • The URL query parameter language will now serve as an alias to the locale parameter.
  • You can supply a valid (and supported) language code too, instead of the full locale code. For example, this will work https://checkout.freemius.com/...?language=fr as well as https://checkout.freemius.com/...?language=fr_FR.
  • We improved the UX of the language selector UI to show a loading animation while the selected locale is loaded in the background.

Updated AWS S3 connection mechanism to strict TLS 1.2

AWS announced a while back that TLS 1.2 will become the minimum requirement for all their API endpoints. We use AWS S3 to store assets like your product icons, store icons, screenshots etc. To ensure the smooth continuation of service, we audited our implementations and tested with a strict TLS 1.2 connection to the S3 API endpoints.

Updating asset URLs

We have been serving asset URLs in protocol-relative formats, for example:
//s3-us-west-2.amazonaws.com/...

While this will continue to work in our own apps because we host our apps in a strict https environment, this can break image rendering if such links are used on a http page. To make the impact minimal, we will now be serving (both existing and new) all asset links with https URL format:

https://s3-us-west-2.amazonaws.com/...

So in case, you’ve been adding the protocol to the URL for your own use case, please remove them and expect a full https URLs from our API.

Improvements to License Expiration notification email

As part of our Marketing Automation, we send an email when a license is about to expire. To make it convenient for the user, we include special authorized links to quickly update or add a payment method if it was not there already. This comes in handy for partners who migrate customers from other platforms.

As an enhancement to the system, we’ve added a check to not include pricing for licenses that do not have any values set. This came as a request from one of our partners who recently migrated to Freemius.

Load more