Entries Tagged 'Protecting Content' ↓

Creating Member-specific Content

If you have a coaching program, or have clients for whom you’re doing custom work (like if you were a CPA or a web designer), and want to publish content that is available to and downloadable only by that client, then there are THREE ways in which you can do Member-Specific Content in DAP.

1) BEST SOLUTION: Using a combination of a special page for each member PLUS DAP’s “For Your Eyes Only” Shortcode

2) Creating Separate Products for each Member

3) Using DAP’s “For Your Eyes Only” Shortcode

Let’s take a look at each one in detail.

1) BEST SOLUTION: Special page for each member PLUS DAP’s “For Your Eyes Only” Shortcode

This is partly manual, partly automated, but is the absolute best solution for multiple reasons, as explained below.

1) For each new member, you would create a separate page. So, for Joe Customer, you would create a new page in WP – http://YourSite.com/joe-customer/

This page would be created after someone has become a member, of course. But creating a WP page for every member will probably take you about what, 30 seconds? So it’s not going to be a big deal (unless you wish to make it one ;-)

2) Then, assuming Joe Customer’s “userid” in DAP is 144 (you can find this out on the Users > Manage page). So within the above new page, you would add the following shortcode…

[DAP userId="144"]protected content[/DAP]

(See DAP’s “Member-Specific Content” Shortcodes )

3) You can start adding any amount of private content between the shortcode start and end tags (where you see protected content above).

4) You can use a simple, free plugin like Exclude Pages to make sure the customer’s page http://YourSite.com/joe-customer/ does not show up in any of your menu’s. Even if it did, it’s not like anyone else can see the contents of the page – only Joe Customer – after he’s logged in to DAP – can see the contents of the page. So it’s secure from everyone else.

2) Separate Products for each Member

Here, you would create separate products, one per member – and only give that member access to that product. The advantage here, is that you can protect the entire page (not just the content section) and make it available just to that one client, so you can be a lot more creative with this page, use special templates, add sidebar widgets that show content just for that client, use the commenting system to communicate back and forth with the client.

So if you had a client named John Customer, then you would create a DAP Product by name “John Customer”, then take John’s email id and give John access to his product.

And within this DAP Product, you would’ve protected files, pages and posts that only John should get access to. So since only John has access to the product, only he can get access to the content protected as part of this product.

Obviously, it takes a few minutes of additional setup per customer to create a DAP Product specifically for him, but then the few extra minutes of creating a DAP Product would be nothing compared to the few hours (or tens of hours) that you’re actually going to be taking to create the actual custom content for John. So it’s a very small overhead compared to the whole process, where you are actually creating custom content for each member.

3) No special pages, just DAP’s “Member-Specific Content” Shortcode

If you wish to automated this a bit more than Option #2, then one way is to implement this is using DAP’s “Member-Specific Content” Shortcodes, which look like this:

Using the “userId” parameter in the DAP shortcode, you can now protect a piece of content so that only John Customer (who has the user id “144″ in your membership site) user can see it.

[DAP userId="144"]protected content[/DAP]

So on a single page, you may publish a number of these shortcodes, with content meant only for specific members protected within those shortcodes.

And doesn’t matter which one of your members visits the above page, they will all only see content intended only for them, and will be unable to see content intended for others.

So those are the three ways in which you can create Member-Specific Content.

The “Smart Login” Process

DAP has a “Smart Login” feature, where the login process will work slightly differently under different conditions, all designed to make the user-experience for your member more smooth and consistent with general log in standards around the web.

So let’s see the various possible login locations in DAP.

But first, it is important to note that DAP has two main types of logins.

Primary Login

This is where it is considered a “generic” login by your member. For eg., a member came to your web site, and then just generally wants to log in to the member’s area – so they have no “context” – it’s NOT as if they were trying to view a specific page or post, got challenged with a login form, and then logged-in from there. That makes this a “Primary Login“.

Examples of this are…

a) You have a dedicated login page, like http://YourSite.com/login/ – which is what you’ve entered in to “Setup > Config > Login URL“. The body of this page has the DAP merge tag for the login form, which is %%LOGIN_FORM%%

b) Login/Logout Widget on the home page of your web site. This is also considered a primary login, because they just came back to your site, and just wish to log in to their member’s area to see what’s new.

Secondary Login

This is a log in action that HAS “context”. Say, a member landed deep into your site (not the home page, not the dedicated login page) and tried to log in from, say, the widget on the side-bar, or were challenged by the “In Page Error Message” that says something like “Sorry, you must log in before you can view this content” and are presented with a login form right on that very same page. They were trying to read something before they were asked to log in first – which means, they must be returned to the same page they were trying to view BEFORE they were asked to login. So that makes this a “Secondary Login“.

Examples of this are…

a) Login/Logout Widget on any page EXCEPT the home page.

b) Any custom “Error Page”, where you have inserted the DAP merge tag for the login form, %%LOGIN_FORM%%.

c) DAP’s “In-Page Error Message” which says “Sorry, this is private content – you must log in first before you can view this”.

So now that you know what’s a Primary Login and what is a Secondary Login,

Redirection Rules

Based on whether it’s a Primary Login or a Secondary Login, your member will be redirected to a different location.

1) If it is a Primary Login action, then…

a) They’re taken to the “Post-Login URL” if set at a Product-level AND they have access to just one Product.
b) They’re taken to the GLOBAL “Post Login URL” (under Setup > Config) if you have NOT set anything at a Product-level, OR if they have access to more than one Product.

This scenario is the only one where the Post-Login URL is ever used (whether it’s the Product-level or Global-level).

1) If it is a Secondary Login action, then…

They’re always redirected back to the same page they were on (or were trying to access) before they were challenged to log in first to view the content.

Bottom-line:

Primary Login is predictable, and you (the DAP Admin) control where they go right after they login.

Secondary Login depends on “context”, and they’re taken back to whatever page they were before they logged in.

Secure RSS Feeds

Starting DAP v4.2, each of your members can now get their own unique RSS feed link that they can use with a feed reader (like Google Reader, FeedBlitz, iTunes, etc) to get a custom RSS feed with content that they’re eligible to view.

To give each of your members their own unique RSS Feed URL, just insert the following line of code into the top of the “Member Links” or “My Content” type page, or wherever you want your users to see their personalized RSS feed link…

If your blog is in the root…

http://YourSite.com/feed/?key=%%ACTIVATION_KEY%%

If your blog is in a sub-folder (say “/blog”)…

http://YourSite.com/blog/feed/?key=%%ACTIVATION_KEY%%

 

The text %%ACTIVATION_KEY%% in the above URL will be replaced with their own custom key, like…

http://YourSite.comcom/feed/?key=123456789

They can then copy that link, enter that into any feed reader, and it will show content specific to their account.

Custom Feed Link Security

Another useful feature we’ve added, is that the custom feed link also does IP count validation. So if they share  the feed link with others, then after “X” unique IP login attempts (where “X” is configurable by you, the DAP Admin, in Setup > Config), their account will automatically get locked out.

RSS Feed Protection

As of 4.1, DAP does not yet have a unique member-level RSS feed link (coming in v4.2).

So once you protect a page or post in DAP, you can make it either completely disappear from your feed (for all users, members and non-members alike), or you can show partial text (by turning on sneak-peek), but in that case you must make sure you have a “more” tag entered into each of your posts.

So if your blog post is showing in its entirety, then….

1) You may not have protected the post in DAP at all, so it’s an unprotected post, which will (and should) show up in your feed

2) Or, you have turned on Sneak-Peek and haven’t inserted the WordPress “more” tag (<!–more–>) into each of your posts. If you turn on Sneak-peek, then you must insert more tags into all posts.

Also, if you have turned on Sneak-Peek, then you must also do this…

Go to “Settings > Reading” in WP admin, then set “For each article in a feed, show” to “Summary”.

If it is set to “Full text”, then it will show the full text in the feed, which is not what you want.

Hiding Protected Links On Member Home Page

When you have hundreds of posts or pages protected as part of a DAP Product, the list of links on the DAP Member Home Page (that is the result of using the merge tag %%USERLINKS%%) can get quite long and unwieldy.

So you can choose to hide some of those links from being displayed on the member’s home page.

Here’s how you hide a link from being shown on the member’s home page…

1) Go to the DAP Product in question, scroll down to the ContentResponder section

2) Click on the edit link next to the content in question on the right. The “Edit Files” popup will then show up on the left.

3) Set “Display On User’s Home Page” to “N”.

That’s it.

The content is still part of that product, it is still being protected, but the link simply won’t be displayed on the member home page.

DAP’s “Pause Membership” Feature

How It Works

Joe Member joins your site on 01/01/2011.

He stays a member for about 3 months. Let’s say it’s now mid March. He wants to take a couple of months break. So he goes on a 2 month break. Comes back end of May and wants to resume his membership.

DAP allows him to pick up right where he left off – which is continuing to receive content as of April (04/01/2011), even though today’s date is May 25th, 2011.

So while he took a break, other members who did not take a break in membership, continued to pay for those 2 months, and continued to receive content dripped through those months. So it is only fair that when he does come back end of May and resumes his subscription, he does not resume from June’s content, but from April’s content (when he last put his membership on “Pause”).

It’s ok if you’re not dripping content on a monthly-basis, but rather on a “day” basis. So to put it in terms of “days”, when Joe resumes his subscription, since he was already 90 days old in the system when he put his subscription “On Hold”, and comes back another 60 days later (roughly about 2 months), then DAP will start dripping Day #91 content onwards for him, and NOT Day #151 onwards (he didn’t pay for 2 months in between).

This is how DAP works right out of the box. Nothing special to configure. And DAP automatically takes care of pausing the dripping when he is not paying.

WARNING: Just remember that in order for you to put his actual payments on hold, you will need to have a payment gateway like Authorize.net or Paypal Website Payments Pro. Or you must be using a shopping cart like http://1SiteAutomation.com . Using something like Paypal Standard or ClickBank will not allow you to put the actual charging of his credit card on hold.

NOTE: If you actually did want him to start receiving current content even though he left for 2 months, then all you have to do is, once he comes back and starts paying again, just extend his access end date on his account (which will initially be showing 03/31/2011 – end of March, when he left) and modify it and make it 05/31/2011. So when his next payment comes in after he resumes, DAP will extend his access end date to 06/30/2011 – which means, he can now access all of the current content.

Conflict With “Cache” Related Plugins

DAP currently does not work with any “Cache” related plugins, and the reason is quite simple, actually.

Cache plugins are built on the premise that they will “cache” (save and store the contents of) WordPress pages and posts – which usually don’t change for “non-membership” type regular blogs – in a easy to retrieve, static file, so that WordPress doesn’t have to go to the database to load the contents of the page or post each and every time, which will improve the performance and loading time of your WordPress blog in general.

But the fact that such plugins are actually designed to “skip” interactions with the database as much as possible, and will make a “static copy” of your page or post and serve the same static copy to all visitors regardless of who they are, completely goes against the concept of a membership site.

The idea behind using a membership plugin like DAP, it to make sure that different visitors see different content: For ex.,

1) Casual visitors (Non-Members) who have NOT yet signed up for your products, should see content differently than …

2) Members who may have purchased one of your products, but not the product that gives them access to a specific page or post, who should see content differently than…

3) Members who actually have purchased the right product and DO have access to the content, who should see content differently than…

4) Ex-Members who signed up for your subscription-based content in the past, but have since canceled or allowed their access to expire

So, DAP tries to figure out who the visitor is first, and then packages the very same content differently to each category of visitors.

And installing a “cache” plugin kind of makes the whole point of a membership plugin meaningless. Both plugins basically contradict each other in what they’re trying to do.

One (your cache plugin) is trying to speed things up by not going to the database every time, while the other wants to make sure all of the right settings are loaded from the database to make sure your content stays secure from un-authorized access.

So, while cache plugins may work for the average, non-membership, static blog where a single post or page is not really meant to be shown differently to different people, it’s not a good idea to use it on a membership-site.

Content Protection, Security and DRM

We frequently get asked questions like…

“Can DAP protect my Videos/PDF’s/Audio files from being copied? Is there some kind of tracking that I can build into my videos that will let me track the video on torrent sites?”

“Can DAP prevent people from downloading my videos/audio/pdf and uploading it to a torrent or third-party site?”

“Can DAP force people to only watch my videos online? I don’t want my members to download any of my content to their hard disk – I want to force them to see/read/hear/watch everything online.”

Short Answer: No.

Long Answer: Keep reading…

The Nitty-Gritty

There are so many ways to steal your content from your web site – no matter what technology you use.

Let us explain what that means…

1) Let’s say you implement a technology where only paying members can even get to your videos. Like you can already do with DAP. So then a paying member can download your video because they are already a paying member, and they actually have access to the videos. And once your video has been downloaded to their hard disk, you have lost all control over it – no matter what anyone tells you, that’s the truth. Because they can upload it to any illegal warez sharing site, and there’s nothing you can do about it.

Of course, you could spend all your time, money and efforts monitoring the thousands of illegal sharing sites whether your video or ebook is found anywhere – assuming you can even find it in the first place, which would be like finding a needle in a hay stack – no, make that “hay factory” – wait, make that “finding a needle in New York City” – and then write to those site owners and ask them to take it down.

Or you could focus on the 99% of legitimate members of your site, and create great content for them, and keep them paying month after month, and sell more products to them, and keep them happy.

2) Let’s say you use a plugin that only allows true-streaming – like one based on Amazon CloudFront technology, that will not allow the users to directly download your videos, but force them to watch online only. Then there’s any number of “screen-capture” tools – even free ones – that your members can use to capture another video of your video, and then share it with their friends, or upload to illegal sharing sites.

The list goes on and on. No matter how hard you make it, there’s always going to be a way around.

So, unless you’re a NASA, NetFlix, or Amazon or Apple who has a real reason to protect their content that is worth real millions of dollars, there is *no technology* available today that will let you track a video or pdf *after* it has been downloaded. If someone is saying they can do this, then they’re outright lying to you, and playing on your fears.

DAP already has a built-in password-sharing prevention security built in. If someone tries to share their account info with others, DAP will lock their account the moment their account gets log-ins from multiple IP’s (you can configure this setting) and deny further access to any of their content, until you investigate the user and “un-lock” their account.

DAP already protects all of your media from illegal access.

DAP also prevents your Amazon S3 videos and audio and other content from being accessed by anyone directly. Using a script like http://S3MediaVault.com , you can make it such that your videos and audio and other media can only be downloaded from approved sites (where the plugin is installed), and then on top of that, there’s DAP already sitting like a monster watch-dog, making sure only authorized users can even get into the site in the first place.

So hope that helps if you’ve gotten too worried about protecting your content – so worried that you’re missing the big picture.

Don’t Forget What Is Important (Hint: It starts with “Mem” and ends with “bers”)

The best membership sites allow people to consume the content they’ve paid for in multiple ways – view the video, download the video, download mp3 audio version of the video, download the presentation as a powerpoint, download the transcripts as a PDF, and so on.

Instead of making it easy for your members to download the content, if you’re going to spend your limited resources trying to figure out how to prevent people from downloading content that they’ve actually paid for, and force people to only view your content online and not be able to view it offline (like in their spare time or when going for a jog in the park), you run the risk of upsetting 99% of your legitimate paying members, in order to secure your content from the 1% of pirates, who will steal and share your content no matter what.

So forget about the 1%, and focus on the 99%. DAP already has enough security in place to stop the 1%. So don’t worry about that. Your content is very secure with DAP.

Anything else is just a total waste of your time. So don’t get distracted by the noise, and just get on with the real important tasks on hand: Building a long-term recurring income stream by building a large community of highly satisfied, loyal fans who are thrilled about what you have to offer, and will continue to pay month after month because whatever it is that you’re selling, is making their life better in some way.

The hardest thing to do online, with a membership site is still this: Creating great content, Attracting buyers, and then getting your members to keep paying month after month.

And that, is the big picture.

Un-Protecting Content

Once a post or page is added to ANY DAP product, then it becomes protected, and will be available to only those who have authorized access to that Product.

So to completely Un-protect a page or post that you have protected previously, and make it “public” (a.k.a “open”) again, so that any casual visitor to your blog or web site can see it, you just scroll to the right in the “Protected Content” section, and click on the “X” image next to the content that you wish to Un-protect.

Of course, also make sure that you do the same for all products – because if you forget to delete it from even one Product, then it will continue to remain protected.

Protect Entire Blog

If you, for some reason, need to protect your ENTIRE blog from “non-logged in users” – meaning, any part of your blog (menus, sidebars, widgets, etc), including the un-protected pages, should be seen only by someone who is already logged in – be it a free user or a paid user, then here’s how you do it…

  1. Go into your WordPress Admin, click on Appearance > Editor
  2. Make sure your current theme is selected in the drop-down towards the right/top corner.
  3. Click on “Header” (header.php) of your theme.
  4. Enter the following text right towards the very top of that file.

<?php
include_once “./dap/dap-config.php”;

if( !Dap_Session::isLoggedIn() ) {
header(“Location: /dap/login.php”);
exit;
}
?>

The only thing you need to make sure is that you have the path to the dap-config.php correct.

If your blog is in the root, then use the code above as is.

If your blog is in a sub-folder, then replace line in red above, with the line in red below…

include_once “../dap/dap-config.php”;

That’s it!


WARNING

Please remember that if you do this, then you must use the default DAP login page /dap/login.php , and you won’t be able to put the login form within WordPress.

The reason for this, is that the protection code is being applied at the theme level, and the protection will also apply to all WordPress pages and posts – and if you put the DAP login form inside a WP page, then that page will also get protected from everyone, and no one will even be able to get to the login form in order to log in. That makes your site impossible to log in to, which of course makes no sense.