Tag Archives: manager

Thumbnail

WordPress Notifications Made Easy




WordPress Notifications Made Easy

Jakub Mikita



WordPress doesn’t offer any kind of notification system. All you can use is the wp_mail() function, but all of the settings have to be hardcoded, or else you have to create a separate settings screen to allow the user tweak the options. It takes many hours to write a system that is reliable, configurable and easy to use. But not anymore. I’ll show you how to create your own notification system within minutes with the free Notification plugin. By notification, I mean any kind of notification. Most of the time, it will be email, but with the plugin we’ll be using, you can also send webhooks and other kinds of notifications.

While creating a project for one of my clients, I encountered this problem I’ve described. The requirement was to have multiple custom email alerts with configurable content. Instead of hardcoding each and every alert, I decided to build a system. I wanted it to be very flexible, and the aim was to be able to code new scenarios as quickly as possible.

The code I wrote was the start of a great development journey. It turned out that the system I created was flexible enough that it could work as a separate package. This is how the Notification plugin was born.

Suppose you want to send an email about a user profile being updated by one of your website’s members. WordPress doesn’t provide that functionality, but with the Notification plugin, you can create such an email in minutes. Or suppose you want to synchronize your WooCommerce products with third-party software by sending a webhook to a separate URL every time a new product is published. That’s easy to do with the plugin, too.

Lessons Learned While Developing WordPress Plugins

Good plugin development and support lead to more downloads. More downloads mean more money and a better reputation. Learn how you can develop good-quality products with seven golden rules. Read more →

In this article, you’ll learn how to integrate the plugin in your own application and how to create an advanced WordPress notification system more quickly and easily than ever.

In this article, we’ll cover:

  1. how to install the plugin,
  2. the idea behind the plugin and its architecture,
  3. creating a custom scenario for notifications,
  4. creating the action (step 1 of the process),
  5. creating the trigger (step 2 of the process),
  6. creating the custom notification type,
  7. how to enable white-label mode and bundle the plugin in your package.

Installing The Plugin

To create your own scenarios, you are going to need the Notification plugin. Just install it from the WordPress.org repository in your WordPress dashboard, or download it from the GitHub repository.

Large preview

Later in the article, you’ll learn how to hide this plugin from your clients and make it work as an integrated part of your plugin or theme.

The Idea Of The Plugin

Before going into your code editor, you’ll need to know what the plugin’s architecture looks like. The plugin contains many various components, but its core is really a few abstract classes.

The main components are:

  • The notification
    This could be an email, webhook, push notification or SMS.
  • The trigger
    This is what sends the notification. It’s effectively the WordPress action.
  • The merge tag
    This is a small portion of the dynamic content, like post_title.

To give you a better idea of how it all plays together, you can watch this short video:

The core of the Notification plugin is really just an API. All of the default triggers, like Post published and User registered are things built on top of that API.

Because the plugin was created for developers, adding your own triggers is very easy. All that’s required is a WordPress action, which is just a single line of code and a class declaration.

Custom Scenario

Let’s devise a simple scenario. We’ll add a text area and button to the bottom of each post, allowing bugs in the article to be reported. Then, we’ll trigger the notification upon submission of the form.

This scenario was covered in another article, “Submitting Forms Without Reloading the Page: AJAX Implementation in WordPress”.

For simplicity, let’s make it a static form, but there’s no problem putting the action in an AJAX handler, instead of in the wp_mail() function.

Let’s create the form.

The Form

add_filter( 'the_content', 'report_a_bug_form' );
function report_a_bug_form( $content ) 

    // Display the form only on posts.
    if ( ! is_single() ) 
        return $content;
    

    // Add the form to the bottom of the content.
    $content .= '<form action="' . admin_url( 'admin-post.php' ) . '" method="POST">
        <input type="hidden" name="post_id" value="' . get_ID() . '">
        <input type="hidden" name="action" value="report_a_bug">
        <textarea name="message" placeholder="' . __( 'Describe what's wrong...', 'reportabug' ) . '"></textarea>
        <button>' . __( 'Report a bug', 'reportabug' ) . '</button>
    </div>';

    return $content;

}

Please note that many components are missing, like WordPress nonces, error-handling and display of the action’s result, but these are not the subject of this article. To better understand how to handle these actions, please read the article mentioned above.

Preparing The Action

To trigger the notification, we are going to need just a single action. This doesn’t have to be a custom action like the one below. You can use any of the actions already registered in WordPress core or another plugin.

The Form Handler And Action

add_action( 'admin_post_report_a_bug', 'report_a_bug_handler' );
add_action( 'admin_post_nopriv_report_a_bug', 'report_a_bug_handler' );
function report_a_bug_handler() 

    do_action( 'report_a_bug', $_POST['post_id'], $_POST['message'] );

    // Redirect back to the article.
    wp_safe_redirect( get_permalink( $_POST['post_id'] ) );
    exit;


You can read more on how to use the admin-post.php file in the WordPress Codex.

This is all we need to create a custom, configurable notification. Let’s create the trigger.

Registering The Custom Trigger

The trigger is just a simple class that extends the abstract trigger. The abstract class does all of the work for you. It puts the trigger in the list, and it handles the notifications and merge tags.

Let’s start with the trigger declaration.

Minimal Trigger Definition

class ReportBug extends BracketSpaceNotificationAbstractsTrigger 

    public function __construct() 

        // Add slug and the title.
        parent::__construct(
            'reportabug',
            __( 'Bug report sent', 'reportabug' )
        );

        // Hook to the action.
        $this->add_action( 'report_a_bug', 10, 2 );

    

    public function merge_tags() {}

}

All you need to do is call the parent constructor and pass the trigger slug and nice name.

Then, we can hook into our custom action. The add_action method is very similar to the add_action() function; so, the second parameter is the priority, and the last one is the number of arguments. Only the callback parameter is missing because the abstract class does that for us.

Having the class, we can register it as our new trigger.

register_trigger( new ReportBug() );

This is now a fully working trigger. You can select it from the list when composing a new notification.




(Large preview)

Although the trigger is working and we can already send the notification we want, it’s not very useful. We don’t have any way to show the recipient which post has a bug and what the message is.

This would be the time, then, to register some merge tags and set up the trigger context with the action parameters we have: the post ID and the message.

To do this, we can add another method to the trigger class. This is the action callback, where we can catch the action arguments.

Handling Action Arguments

public function action( $post_ID, $message ) 

    // If the message is empty, don't send any notifications.
    if ( empty( $message ) ) 
        return false;
    

    // Set the trigger properties.
    $this->post    = get_post( $post_ID );
    $this->message = $message;

}

Note the return false; statement. If you return false from this method, the trigger will be stopped, and no notification will be sent. In our case, we don’t want a notification to be submitted with an empty message. In the real world, you’d want to validate that before the form is sent.

Then, we just set the trigger class’ properties, the complete post object and the message. Now, we can use them to add some merge tags to our trigger. We can just fill the content of the merge_tags method we declared earlier.

Defining Merge Tags

public function merge_tags() 

    $this->add_merge_tag( new BracketSpaceNotificationDefaultsMergeTagUrlTag( array(
        'slug'        => 'post_url',
        'name'        => __( 'Post URL', 'reportabug' ),
        'resolver'    => function( $trigger ) 
            return get_permalink( $trigger->post->ID );
        ,
    ) ) );

    $this->add_merge_tag( new BracketSpaceNotificationDefaultsMergeTagStringTag( array(
        'slug'        => 'post_title',
        'name'        => __( 'Post title', 'reportabug' ),
        'resolver'    => function( $trigger ) 
            return $trigger->post->post_title;
        ,
    ) ) );

    $this->add_merge_tag( new BracketSpaceNotificationDefaultsMergeTagHtmlTag( array(
        'slug'        => 'message',
        'name'        => __( 'Message', 'reportabug' ),
        'resolver'    => function( $trigger ) 
            return nl2br( $trigger->message );
        ,
    ) ) );

    $this->add_merge_tag( new BracketSpaceNotificationDefaultsMergeTagEmailTag( array(
        'slug'        => 'post_author_email',
        'name'        => __( 'Post author email', 'reportabug' ),
        'resolver'    => function( $trigger ) 
            $author = get_userdata( $trigger->post->post_author );
            return $author->user_email;
        ,
    ) ) );

}

This will add four merge tags, all ready to use while a notification is being composed.

The merge tag is an instance of a special class. You can see that there are many types of these tags, and we are using them depending on the value that is returned from the resolver. You can see all merge tags in the GitHub repository.

All merge tags are added via the add_merge_tag method, and they require the config array with three keys:

  • slug
    The static value that will be used in the notification (i.e. post_url).
  • name
    The translated label for the merge tag.
  • resolver
    The function that replaces the merge tag with the actual value.

The resolver doesn’t have to be the closure, as in our case, but using it is convenient. You can pass a function name as a string or an array if this is a method in another class.

In the resolver function, only one argument is available: the trigger class instance. Thus, we can access the properties we just set in the action method and return the value we need.

And that’s all! The merge tags are not available to use with our trigger, and we can set up as many notifications of the bug report as we want.




(Large preview)

Creating The Custom Notification Type

The Notification plugin offers not only custom triggers, but also custom notification types. The plugin ships with two types, email and webhook, but it has a simple API to register your own notifications.

It works very similarly to the custom trigger: You also need a class and a call to one simple function to register it.

I’m showing only an example; the implementation will vary according to the system you wish to integrate. You might need to include a third-party library and call its API or operate in WordPress’ file system, but the guide below will set you up with the basic process.

Let’s start with a class declaration:

class CustomNotification extends BracketSpaceNotificationAbstractsNotification 

    public function __construct() 

        // Add slug and the title.
        parent::__construct( 
            'custom_notification',
            __( 'Custom Notification', 'textdomain' )
        );

    

    public function form_fields() {}

    public function send( BracketSpaceNotificationInterfacesTriggerable $trigger ) {}

}

In the constructor, you must call the parent’s class constructor and pass the slug and nice name of the notification.

The form_fields method is used to create a configuration form for notifications. (For example, the email notification would have a subject, body, etc.)

The send method is called by the trigger, and it’s where you can call the third-party API that you wish to integrate with.

Next, you have to register it with the register_notification function.

register_trigger( new CustomNotification() );

The Notification Form

There might be a case in which you have a notification with no configuration fields. That’s fine, but most likely you’ll want to give the WordPress administrator a way to configure the notification content with the merge tags.

That’s why we’ll register two fields, the title and the message, in the form_fields method. It looks like this:

public function form_fields() 

    $this->add_form_field( new BracketSpaceNotificationDefaultsFieldInputField( array(
        'label'       => __( 'Title', 'textdomain' ),
        'name'        => 'title',
        'resolvable'  => true,
        'description' => __( 'You can use merge tags', 'textdomain' ),
    ) ) );

    $this->add_form_field( new BracketSpaceNotificationDefaultsFieldTextareaField( array(
        'label'       => __( 'Message', 'textdomain' ),
        'name'        => 'message',
        'resolvable'  => true,
        'description' => __( 'You can use merge tags', 'textdomain' ),
    ) ) );


As you can see, each field is an object and is registered with the add_form_field method. For the list of all available field types, please visit the GitHub repository.

Each field has the translatable label, the unique name and a set of other properties. You can define whether the field should be resolved with the merge tags with the resolvable key. This means that when someone uses the post_title merge tag in this field, it will be changed with the post’s actual title. You can also provide the description field for a better user experience.

At this point, your custom notification type can be used in the plugin’s interface with any available trigger type.




(Large preview)

Sending The Custom Notification

In order to make it really work, we have to use the send method in our notification class declaration. This is the place where you can write an API call or use WordPress’ file system or any WordPress API, and do whatever you like with the notification data.

This is how you can access it:

public function send( BracketSpaceNotificationInterfacesTriggerable $trigger ) 

    $title   = $this->data['title'];
    $message = $this->data['message'];

    // @todo Write the integration here.


At this point, all of the fields are resolved with the merge tags, which means the variables are ready to be shipped.

That gives you endless possibilities to integrate WordPress with any service, whether it’s your local SMS provider, another WordPress installation or any external API you wish to communicate with.

White Labeling And Bundling The Plugin

It’s not ideal to create a dependency of a plugin that can be easily deactivated and uninstalled. If you are building a system that really requires the Notification plugin to be always available, you can bundle the plugin in your own code.

If you’ve used the Advanced Custom Fields plugin before, then you are probably familiar with the bundling procedure. Just copy the plugin’s files to your plugin or theme, and invoke the plugin manually.

The Notification plugin works very similarly, but invoking the plugin is much simpler than with Advanced Custom Fields.

Just copy the plugin’s files, and require one file to make it work.

require_once( 'path/to/plugin/notification/load.php' );

The plugin will figure out its location and the URLs.

But bundling the plugin might not be enough. Perhaps you need to completely hide that you are using this third-party solution. This is why the Notification plugin comes with a white-label mode, which you can activate at any time.

It also is enabled as a single call to a function:

notification_whitelabel( array(
    // Admin page hook under which the Notifications will be displayed.
    'page_hook'       => 'edit.php?post_type=page',
    // If display extensions page.
    'extensions'      => false,
    // If display settings page.
    'settings'        => false,
    // Limit settings access to user IDs.
    // This works only if settings are enabled.
    'settings_access' => array( 123, 456 ),
) );

By default, calling this function will hide all of the default triggers.

Using both techniques, white labeling and bundling, will completely hide any references to the plugin’s origin, and the solution will behave as a fully integrated part of your system.

Conclusion

The Notification plugin is an all-in-one solution for any custom WordPress notification system. It’s extremely easy to configure, and it works out of the box. All of the triggers that are registered will work with any notification type, and if you have any advanced requirements, you can save some time by using an existing extension.

If you’d like to learn more details and advanced techniques, go to the documentation website.

I’m always open to new ideas, so if you have any, you can reach out to me here in the comments, via the GitHub issues or on Twitter.

Download the plugin from the repository, and give it a try!

Smashing Editorial
(ra, yk, il)


Excerpt from: 

WordPress Notifications Made Easy

Thumbnail

Landing Page Video Best Practices – Is Animated or Live Action Better?

landing page video 2018

Just because landing page videos have been seen to increase conversions doesn’t mean you can throw up any shoddy video and expect results. There are a few landing page video best practices that you’ll want to review first, such as whether to use live-action style or animation. The answer to this question depends on your industry, competition and several other factors to be discussed in this piece. As a general rule, taking the road less traveled to differentiate yourself from your competition is a good start. But I don’t want you making important decisions without knowing the pros and cons…

The post Landing Page Video Best Practices – Is Animated or Live Action Better? appeared first on The Daily Egg.

Visit link:  

Landing Page Video Best Practices – Is Animated or Live Action Better?

9 marketing trends you should track in 2018

“Growth marketing” has become mainstream. Experimentation is revolutionizing organizational culture and breaking down internal silos. Testing is bridging sales, marketing,…Read blog postabout:9 marketing trends you should track in 2018

The post 9 marketing trends you should track in 2018 appeared first on WiderFunnel Conversion Optimization.

More:

9 marketing trends you should track in 2018

How to Turn a Long Landing Page Into a Microsite – In 5 Easy Steps

Landing pages can get really long, which is totally fine, especially if you use a sticky anchor navigation to scroll people up and down to different page sections. It’s a great conversion experience and should be embraced.

However, there are times when having a small multi-page site, known as a microsite (or mini-site) can offer significant advantages.

This is not a conversation about your website (which is purely for organic traffic), I’m still talking about creating dedicated marketing-campaign-specific experiences. That’s what landing pages were designed for, and a microsite is very similar. It’s like a landing page in that it’s a standalone, controlled experience, but with a different architecture.

The sketch below shows the difference between a landing page and a microsite.

The landing page is a single page with six sections. The microsite has a homepage and 5 or 6 child pages, each with a persistent global navigation to conect the pages.

They are both “landing experiences”, just architected differently. I’ve noticed that many higher education landing experiences are four-page microsites. The pharmaceutical industry tends to create microsites for every new product campaign – especially those driven by TV ads.

What are the benefits of a microsite over a long landing page?

To reiterate, for most marketing campaign use cases, a single landing page – long or short – is your absolute best option. But there are some scenarios where you can really benefit from a microsite.

Some of the benefits of a microsite include:

  1. It allows more pages to be indexed by Google
  2. You can craft a controlled experience on each page (vs. a section where people can move up and down to other sections)
  3. You can add a lot more content to a certain page, without making your landing page a giant.
  4. You can get more advanced with your analytics research as there are many different click-pathways within a microsite that aren’t possible to track or design for on a single page.
  5. The technique I’m going to show you takes an Unbounce landing page, turns it into a 5-page microsite.

How to Create a Microsite from a Long Landing Page

The connective tissue of a microsite is the navigation. It links the pages together and defines the available options for a visitor. I’ll be using an Unbounce Sticky Bar as the shared global navigation to connect five Unbounce landing pages that we’ll create from the single long landing page. It’s really easy.

First, Choose a Landing Page to Work With

I’ve created a dummy landing page to work with. You can see from the zoomed-out thumbnail on the right-hand side how long it is: 10 page-sections long to be specific. (Click the image to view the whole page in a scrolling lightbox.)

The five-step process is then as follows:

I’ll explain it in more detail with screenshots and a quick video.

  1. Create the microsite pages, by duplicate your landing page 5 times
  2. Delete the page sections you don’t want on each microsite page
  3. Create a Sticky Bar and add five navigation buttons
  4. Set the URL targeting of the Sticky Bar to appear on the microsite pages
  5. Add the Unbounce global script to your site
  6. Click “Publish” << hardly a step.

Step 1: Create Your Microsite Pages

Choose “Duplicate Page” from the cog menu on your original landing page to create a new page (5 times). Then name each page and set the URL of each accordingly. In the screenshot below you can see I have the original landing page, and five microsite pages Home|About|Features|FAQ|Sign Up.

Step 2: Delete Page Sections on Each Microsite Page

Open each page in the Unbounce builder and click the background of any page section you don’t want and hit delete. It’s really quick. Do this for each page until they only have the content you want to be left in them. Watch the 30 sec video below to see how.

Pro Tip: Copy/Paste Between Pages

There is another way to do it. Instead of deleting sections, you can start with blank pages for the microsite, and copy/paste the sections you want from the landing page into the blank pages. This is one of the least-known and most powerful features of Unbounce.

The best way is to have a few browser tabs open at once (like one for each page), then just copy and paste between browser tabs. It’s epic! Watch…

Step 3: Create the Navigation With a Sticky Bar

Create a new Sticky Bar in Unbounce (it’s the same builder for landing pages and popups). Add buttons or links for each of your microsite pages, and set the “Target” of the link to be “Parent Frame” as shown in the lower-right of this screenshot.

Step 4: Set URL Targeting

This is where the connective tissue of the shared Sticky Bar comes together. On the Sticky Bar dashboard, you can enter any URLs on your domain that you want the bar to appear on. You can enter them one-by-one if you like, or to make it much faster, just use the same naming convention (unique to this microsite/campaign) on each of the microsite page URLS.

I used these URLs for my pages:

unbounce.com/pam-micro-home/
unbounce.com/pam-micro-about/
unbounce.com/pam-micro-features/
unbounce.com/pam-micro-faq/
unbounce.com/pam-micro-signup/

For the URL Targeting, I simply set one rule, that URLs need to contain “pmm-micro”.
For the Trigger, I selected “When a visitor arrives on the page.”
for the frequency, I selected “Show on every visit.” because the nav needs to be there always.

Step 5: Add the Unbounce Script

We have a one-line Javascript that needs to be added to your website to make the Sticky Bars work. If you use Google Tag Manager on your site, then it’s super easy, just give the code snippet to your dev to paste into GTM.

Note: As this microsite solution was 100% within Unbounce (Landing Pages and Sticky Bar), you don’t actually have to add the script to your website, you can just add it to the each of the landing pages individually. But it’s best to get it set up on your website, which will show it on your Unbounce landing pages on that domain, by default.

Click Publish on #AllTheThings!

And that’s that!


You can see the final microsite here.
(Desktop only right now I’m afraid. I’ll set up mobile responsive soon but it’s 2am and this blogging schedule is killing me :D).


I’ve also written a little script that uses cookies to change the visual state of each navigation button to show which pages you’ve visited. I’ll be sharing that in the future for another concept to illustrate how you can craft a progress bar style navigation flow to direct people where you want them to go next!

A Few Wee Caveats

  • This use of a Sticky Bar isn’t a native feature of Unbounce at this point, it’s just a cool thing you can do. As such, it’s not technically supported, although our community loves this type of thing.
  • As it’s using a shared Sticky Bar for the nav, you’ll see it re-appear on each new page load. Not perfect, but it’s not a big deal and the tradeoff is worth it if the other benefits mentioned earlier work for you.
  • The close button on the Sticky Bar needs to be hidden (I need to bug a developer for some help and will add it back in here).

Aall in all, this type of MacGyvering is great for generating new ways of thinking about your marketing experiences, and how you can guide people to a conversion.

I’ve found that thinking about a microsite from a conversion standpoint is a fantastic mental exercise.

Have fun making a microsite, and never stop experimenting – and MacGyvering!
Cheers
Oli

p.s. Don’t forget to subscribe to the weekly updates for the rest of Product Awareness Month.

Visit site – 

How to Turn a Long Landing Page Into a Microsite – In 5 Easy Steps

Profiting With Instagram Stories Ads: What You Need To Know

instagram story ads

When it comes to social media marketing, Facebook and Instagram are probably the most important two players on the market in these days. There are more than 2.7 billion monthly active users on Facebook and 700 million Instagram users. Almost four times the audience of Instagram however, does not make Facebook better. In many ways, for marketing and advertising purposes, Instagram may deliver better results. Let’s see why: At its core, Instagram is a mobile app focused on visual information. Why is this relevant? According to Marketing Land, nearly 80% of social media time spent in today’s context is spent…

The post Profiting With Instagram Stories Ads: What You Need To Know appeared first on The Daily Egg.

Credit – 

Profiting With Instagram Stories Ads: What You Need To Know

Thumbnail

Revenge of the Social Media Manager: What’s YOUR Time Worth?

time commitment

We all know that social media is a black hole for time… Sucking us in… forever lost in the continuous newsfeed messages and Pinterest pins. So when I say “time commitment,” I can almost see your eyeballs roll as you nod in agreement. Mornings are started late after we take a quick scroll through our newsfeed and check our personal accounts. And yes, personal accounts usually come before business ones. Then afternoons disappear after we follow one hashtag on Instagram, and end up looking at some interesting photos on Tumblr. Source: Placeit.net Professional social media managers, however, knows how to…

The post Revenge of the Social Media Manager: What’s YOUR Time Worth? appeared first on The Daily Egg.

Continue at source:

Revenge of the Social Media Manager: What’s YOUR Time Worth?

How to Generate Leads with Twitter Video Ads

Twitter Video Ads

Twitter Video Ads are still one of the brightest features for marketers who use Twitter to get the word out about products and services. Since their introduction in 2012 in the form of Twitter Cards, Video Ads have been quite important to businesses that prefer outreach using audio and visual cues to attract customers. Industry consensus aligns with common sense: video ads will continue to flourish in the coming years, as video is the prime medium for brands and the most powerful visual tool in their marketing arsenal. Source Below is the definitive guide to generating leads with Twitter Video…

The post How to Generate Leads with Twitter Video Ads appeared first on The Daily Egg.

View the original here:

How to Generate Leads with Twitter Video Ads

A Swift Transition From iOS To macOS Development

Today started just like any other day. You sat down at your desk, took a sip of coffee and opened up Xcode to start a new project. But wait! The similarities stop there. Today, we will try to build for a different platform! Don’t be afraid. I know you are comfortable there on your iOS island, knocking out iOS applications, but today begins a brand new adventure. Today is the day we head on over to macOS development, a dark and scary place that you know nothing about.

To create a new macOS project in Xcode, open New Project, hit the macOS icon at the top, the select Cocoa App, and press Next

The good news is that developing for macOS using Swift has a lot more in common with iOS development than you realize. To prove this, I will walk you through building a simple screen-annotation application. Once we complete it, you will realize how easy it is to build applications for macOS.

The post A Swift Transition From iOS To macOS Development appeared first on Smashing Magazine.

Continue at source: 

A Swift Transition From iOS To macOS Development

Real Estate Landing Pages (Our Customer Favorites + Why We Think They’re Great)

Whether you’re an independent realtor or work at a real estate agency, you can gain a competitive advantage if you have owned digital properties to drive your paid and social traffic to.

Owned properties — like landing pages — provide you more control in real estate versus relying on popular listing sites where the journey isn’t always clear, you can’t customize your call to action or match your branding.

In short, real estate marketing can really benefit from lead capture landing pages because they allow you to:

  • Establish and grow your mailing list, ensuring you can follow up with and remarket to interested prospects later.
  • Showcase properties especially well, creating urgency and delivering especially compelling offers (like granting early access to listings, for example).
  • Track social and paid campaigns better. With a listing site you don’t have access to metrics and can’t determine ROI as quickly as you can with a landing page.

Ultimately, you can use landing pages to understand exactly who is interested in a property, entice prospects to book appointments (or other offers) and wow new clients with on-brand design.

In this post I’ll break down some of the best ways to start using real estate landing pages with a few examples from Unbounce customers.

1. Showcase your listings (and grow your mailing list)

At minimum, every real estate broker needs a place to share listings online. But ideally, you’ll want to own the experience.

RE/MAX agents Matthew Davidson and Kimbe MacMaster know this first-hand.

These independent agents use Unbounce landing pages to showcase an overview of a property: quick stats, a photo gallery, a video and details on the community. And while a property is available, prospects can book a showing as the call to action:

Featuring trendy parallax scroll, this page converts at 0.38%. Click to view full-length landing page.

Once the listing is sold (nice work Matthew and Kimbe!), the CTA changes to allow interested parties to sign up for early notice for similar listings in the future:

This post-sale CTA swap is a terrific way to build your email list for advertising similar properties in the future.

Having used the Unbounce Loft template, Matthew and Kimbe can simply duplicate this page each time they need a dedicated place to feature a listing. This allows the duo to be listing-specific when they link from a Facebook or search ad, ensuring a seamless ad-to-landing-page experience for potential buyers.

According to the Unbounce Conversion Benchmark Report, 41.6% of marketers in real estate have at least one page that converts under 1.3%, so Matthew and Kimbe’s conversion rate above is in line with what we see for many real estate marketers.

See how your conversion rates stack up in real estate (and nine other popular industries)

Download the Unbounce Conversion Benchmark Report to see how your landing page performance compares to your competitors.

By entering your email you’ll receive other resources to help you improve your conversion rates.

2. Entice buyers with exclusive pre-sale info, floor plans, price lists and more

Booking viewings of individual properties is great, but what if the real estate you’re selling is still in development?

Working with large and small-scale real estate developers, Rennie helps their developer clients plan and execute all aspects of their marketing and sales strategy, including online advertising. As part of their online strategy, they create project-specific landing pages and direct all paid traffic to those pages to gather leads.

Here’s an example created for The Pacific by Grosvenor:

This real estate landing page currently converts at 7.92%. Click to view full-length page.

Jennie Sebastian, Rennie’s Digital Marketing & CRM Manager, shared that the marketing team typically has a kick-off meeting five to six weeks before a campaign. Once they determine targeting and put together a media schedule, creative — including development of the landing page — can begin.

The campaigns typically employ search ads, display, Facebook, Instagram and WeChat, but the team is always looking for new ways to reach their target audiences.

As many real estate marketers can likely empathize with, Jennie shared:

One of the biggest challenges in online marketing is coming up with a strong call to action that entices users to provide us with their personal information.

Depending on the phase of the project and assets available, CTAs range from, “Sign up now for early access” and “Download all floorplans now,” to “Book a private appointment now.”

Through numerous A/B tests the Rennie team has found that more specific CTAs convert significantly better than more generic ones, as they clearly articulate to a prospect what they are receiving in exchange for their information.

Which brings us to landing page idea number three…

3. Get prospects to picture themselves in their dream home with a virtual tour

Just as Jennie from Rennie told us above, compelling CTAs are very important in real estate marketing, and offering a virtual tour has proven to be very effective for their team:

We recently offered a virtual tour using special 360 degree photography for one of our projects in Calgary. After updating the CTA to “Take a virtual tour now,” we saw a significant increase in the conversion rate.

Here’s an example page of theirs, which converts at 4.15%:

Click to view the full-length landing page.

Clicking the CTA button triggers a form gating the tour:

Even if you can’t wrangle 360 photography, you can still get prospects to picture themselves in their dream home.

Simple videos, photo galleries, or even the hero image on your landing page can do the trick. But be sure to test.

Example test of hero image variants

Here’s an example from Coronation Properties via digital agency Rocket. They test variations of their pages with different key elements of a property featured in the hero image.

Here’s a variant wherein the bedroom is the hero shot:

And another where the kitchen takes the spotlight:

The takeaway here?

Get creative with videos, 360 tours, or even experimenting with your hero shot, to give clients a glimpse into the property that’s right for them.

4. Offer up relevant listings to abandoning visitors

While landing pages clearly offer a competitive advantage in real estate, you also want to ensure you’ve optimized your website for conversions.

As our customers at Brixio know, you can try out an Unbounce overlay to ensure you’re not missing out on conversion opportunities. Overlays allow you to show relevant offers to specific users at the perfect time, making them less likely to leave your website without converting

Unbounce Convertables

We love their idea for an overlay triggered to appear on exit to those leaving a website, tempting potential real estate buyers with off-market or exclusive listings.

Here’s a preview of what they had in mind:

With Unbounce, you can launch your overlay at any point during someone’s visit on your website: on exit, on arrival, after delay, on scroll and on click. Find out how Unbounce overlays work here.

5. Test a simple value prop to prompt more commitment-heavy offers

For marketers in the business of custom real estate, your offer of a tailor-made home is much more commitment-heavy than simply moving into an existing place.

This poses an interesting challenge: interested prospects likely have many questions, may be exploring many options and need a reason to trust you immediately.

Here’s agency Rocket’s solution: an on-brand, clear landing page (where prospects can “enquire today”):

This page converts at 1.84%. Click to view full-length landing page.

This small offer accompanied by all the fine details serves as a type of micro conversion, ensuring Manor Homes’ prospects have the chance to reach out and get the conversation started about a custom home.

Get creative with your own micro conversion incentives! For example, you may want to consider inviting prospects to download a collection of your custom homes to preview at their leisure.

6. Offer up relevant content marketing (so you can nurture leads later)

Plenty of businesses use content marketing to reach their target audience, and as Edina Realty knows, this applies to the real estate industry too.

As a subsidiary of Home Services of America, Edina Realty’s licensed pros guide customers through home buying and selling. To provide the most value to their clients, they deliver unique and useful content via custom landing pages.

Check out this Unbounce landing page they created to distribute their Ultimate Guide to Selling Your Home – it converts at a whopping 18%:

Click to view full-length landing page.

By combining content strategy with retargeting, Edina Realty is able to reach prospective leads throughout the funnel and deliver quality leads to their agents.

Hannah Kaeter, Digital Marketing Manager at Edina Realty, told us about the importance of educating leads:

One of the key challenges in our market is a low inventory of homes for sale at lower price points. With this challenge comes an opportunity to educate potential sellers — many of them first-time sellers — about the process so they can evaluate and make informed decisions about their own property and situation.

Ready to build your digital property?

Overall, the above examples illustrate the importance of having a dedicated place to send your paid and social traffic, which can make all the difference in whether you can track the ROI of your real estate marketing. This beats relying on common listing sites — especially in the case of condo developments or offers that require sophisticated branding or high commitment, like custom homes.

Replicate the success of these realtors with Unbounce’s real estate templates, and be sure to download our Conversion Benchmark Report for a breakdown of where you stand in this industry.

View this article – 

Real Estate Landing Pages (Our Customer Favorites + Why We Think They’re Great)

Thumbnail

Exploring Animation And Interaction Techniques With WebGL (A Case Study)

Two years ago, I decided to start a series of short WebGL experiments on Codepen. Earlier this year, I finally found the time to compile them all together on a single website named “Moments of Happiness”. Since its incarnation, I’ve found ways to explore and learn different animation and interaction techniques, which I’ve implemented in these interactive toys.

Exploring Animation And Interaction Techniques With WebGL (A Case Study)

As you’ll see, the gameplay is very different in each one, but all of the experiments share one principle: The behavior of each character responds programmatically to user input. No precalculated animation — every movement is defined at runtime. Breathing life into these characters with only a few lines of code was the main challenge.

The post Exploring Animation And Interaction Techniques With WebGL (A Case Study) appeared first on Smashing Magazine.

View this article:  

Exploring Animation And Interaction Techniques With WebGL (A Case Study)