1. Home
  2. Documentation
  3. Selling with Freemius
  4. Your Opt-in Message

Your Opt-in Message

The default message provided with the Freemius SDK is obviously customizable to whatever other message you’d like your users to see.

Here’s the default opt-in message that new users that activate your product will see:

“Hey {first_name}, never miss an important update – opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with freemius.com.”

After experiencing with many opt-in messages, this version has proven to be great for conversion optimization, as the average opt-in rate with it is over 60%. It highlights the benefits of usage-tracking for the user, and also align expectations that the user might be receiving emails (instead of asking for favors).

The default opt-in message that your existing users (people who have already had your product activated, prior to your integrating Freemius into it) will see is:

“Hey {first_name}, please help us improve {product_title}! If you opt-in, some data about your usage of {product_title} will be sent to freemius.com. If you skip this, that’s okay! {product_title} will still work just fine.”

That message’s tone is obviously more conscious to the fact that it is addressing a different kind of audience (your existing users), and tries to prevent from losing any of them. That is the reason why it has a considerably lower opt-in rate which stands on about 35%.

Message Customization

To customize either of these default messages – simply use the following filters we’ve created:

  • connect_message_on_update to override the default message existing users will see

  • connect_message to override the default message new users will see

Here’s an example of how that can be done:

    function my_fs_custom_connect_message_on_update(
    ) {
        return sprintf(
            __fs( 'hey-x' ) . '<br>' .
            __( 'Please help us improve %2$s! If you opt-in, some data about your usage of %2$s will be sent to %5$s. If you skip this, that\'s okay! %2$s will still work just fine.', 'my-text-domain' ),
            '<b>' . $product_title . '</b>',
            '<b>' . $user_login . '</b>',

    my_fs()->add_filter('connect_message_on_update', 'my_fs_custom_connect_message_on_update', 10, 6);

Important recommendation: When customizing the opt-in message your users will see when they activate – we recommend aligning it with the overall tone that’s been used on your product, so it does not seem foreign.

Icon Customization

When you are running your plugin or theme on a localhost environment, if your product is hosted on WordPress.org, the SDK will automatically attempt to download the featured profile icon from WordPress.org and store it in /freemius/assets/img/{slug}.{png|jpg|gif|svg}. If it works, all you need is to deploy the zip with the downloaded file and you are good.

If you don’t have a free product version on WordPress.org or would like to load an alternative icon, the best way is to use the plugin_icon filter:

function my_fs_custom_icon() {
    return dirname( __FILE__ ) . '/local/path/to/your/icon.{png|jpg|gif|svg}';

my_fs()->add_filter( 'plugin_icon' , 'my_fs_custom_icon' );

Buttons Customization

You can easily customize the button labels by using Freemius i18n override function. Example:

if ( function_exists( 'fs_override_i18n' ) ) {
    fs_override_i18n( array(
        'opt-in-connect' => __( 'Ok - I am in!', 'your-text-domain' ),
        'skip'           => __( 'Maybe later', 'your-text-domain' ),
    ), 'your-slug' );

This will set the primary opt-in button label to Ok – I am in! and replace the default skip label with Maybe Later.

Tip: You can use the same mechanism to override any of the Freemius strings. Check out /freemius/includes/i18n.php file for more details.