Welcome to Geeklog, Anonymous Friday, May 03 2024 @ 10:09 pm EDT

Geeklog Forums

Migrating To A Pay For Subscription Site (Technical Tweaks)


Status: offline

winnerdk

Forum User
Full Member
Registered: 04/24/05
Posts: 339
Location:Panama City, Republic of Panama
My primary site is www.panama-guide.com and for the past five years the site has been wide-open to allow anyone to access all of the site content. Unregistered users can read the full articles, and others must register in order to post comments, rate articles, or access other areas of the website. This was done mostly to prevent spammers from leaving trackback and comment spam.

There are now almost 9,000 articles on the website and we're getting more than 84,000 unique visitors per month. I am contemplating migrating toward charging a low annual subscription rate (like $20 bucks a year) for full access to the website.

My plan is to leave the introductions of the articles (first paragraph) free and open access to the public, but then restrict the ability to see the full article only to paying members.

First of all, I'm going to be needing some kind of a billing program or script that can accept payments from Paypal, Credit Cards, or other online payment systems. And, it has to be fully compatible with GL 1.6 and higher.

Secondly, there are already more than 6,000 users registered on the website. I want them to stay as registered users, but then I need to be able to take them through a registration process to upgrade their access after having paid the annual subscription fee. I will need to set it up so that once the change is implemented, even registered users will be taken to an article or a static page to get them to sign up for continued full access. Anyone choosing to opt out or not subscribe will still have access to the website, but not full access to all of the articles.

Third - I was reading some old threads on similar topics and there was one from like 2003 or so in which a user was contemplating the same kinds of issues. The suggestion from Dirk was to possibly put the articles into a "paid access" group instead of the "Story Admin" group. Would it be possible to migrate all of the existing 9,000+ articles from "Story Admin" to "Paid Access" via database manipulation? In other words, all of those users who currently have access to articles via "Story Admin" would suddenly not be able to get to the articles in the "Paid Access" group. Would this approach work?

As you can tell, I'm just starting to contemplate all of the ramifications of trying to make this change with a large database and a currently active, running, and long-established site. Any thoughts, suggestions, or insights would be greatly appreciated.

Don
www.panama-guide.com


 Quote

Status: offline

Dirk

Site Admin
Admin
Registered: 01/12/02
Posts: 13073
Location:Stuttgart, Germany
Quote by: winnerdk

My plan is to leave the introductions of the articles (first paragraph) free and open access to the public, but then restrict the ability to see the full article only to paying members.


Just brainstorming ...

The way this should be working is to use Geeklog's permission system. This would make handling or paying / non-paying users much easier.

Technically, you would also have to consider access to the comments, the printable version of the article, and feeds. These would all also have to honor these restrictions.

As for the permission: Assume there was a permission "story.viewfullstory" (can't think of a better name right now). You could create a group "Paying Users" that has that permission and assign all paying users to that group (and unassign when they stop paying).

That would be elegant. The problem is that it also needs to work on a site without a paywall (say, geeklog.net). I don't like the idea of changing the built-in groups (like All Users and Logged-in Users), but they would all need that permission to be able to see the full story on a free site. Not good (and not elegant) ...

Or maybe there could also (in addition to that new permission) be a new config option "restrict access to full story text". Only when that option is enabled would the above permission come into play. Not perfect (I would prefer a solution entirely based on the permissions), but should work.

In any case, it would require quite a bit of coding and care not to leave any loopholes open.

The idea is not new and sounds sensible. I would welcome the addition of code to make this possible into the Geeklog core ...

bye, Dirk
 Quote

Status: offline

Laugh

Site Admin
Admin
Registered: 09/27/05
Posts: 1468
Location:Canada
Interesting problem.

One thing to consider is search engines spidering your site. Locking away half the content for paid users would also make it inaccessible to Google. Google has said in a number of posts that you shouldn't show their spiders anymore content than a normal user would see. One way around this maybe would be to allow a number of full story views before limiting access to a user before they have to pay.

Just a though.
One of the Geeklog Core Developers.
 Quote

Status: offline

LWC

Forum User
Full Member
Registered: 02/19/04
Posts: 818
Many pay sites somehow let Google in but disable cache view. So they basically use Google as their preview guide (when you enter you see nothing but a "please register" message). Some forums do it too.
 Quote

Status: offline

jmucchiello

Forum User
Full Member
Registered: 08/29/05
Posts: 985
Instead of a config option, I would do it at the topic level. Add a flag to the topics saying "Premium Content?". If the flag is set, you need the story.viewfullstory feature to access the full story text. If the flag is not set, then normal permissions allows you to see the full story. This way you can have a stories that are premium and stories that are not at the same time. (Announcement stories for example should not require paid access.) This way you don't a weird config option. Still it requires a decent number of code changes. How it affects search, I have no idea.
 Quote

Status: offline

winnerdk

Forum User
Full Member
Registered: 04/24/05
Posts: 339
Location:Panama City, Republic of Panama
Since I started looking at the possibility of migrating to a site that requires payment for access to premium content, I've modified my original plan somewhat.

Now I plan to leave access to all of the 9,000 existing articles as is - anyone can see them or access them. I thought it could possibly create too much of "negative blow-back" if I suddenly started charging to access the entire database. All of my current readers are accustomed to having full access, and I don't want to lose any of them.

The new plan is to simply begin to create new, premium content. Only those who pay a small annual fee would have access to that content. It seems like this would be somewhat easier to implement, rather than trying to go back and somehow restrict access to the entire database.

In looking at the responses so far (thanks), it seems like using the New Topic approach would be the easiest and simplest approach to implement. Any solution that requires "a lot of new code" will be well beyond my modest capabilities. I'm lucky if I can successfully find an modify a few lines of existing code, and even then only when someone is leading the way and telling me what to do.

Therefore, with that having been said, what would I have to do in order to create a new, restricted access topic. For starters I can manually set user permissions if necessary, once they have paid. I think this can be done with the existing code, but I just don't know what I specifically have to change.

For example, is it possible to "remove" a single article from the RSS feed? What are some of the elements of any single Premium Content article that I would have to change or modify so that "regular" users wouldn't be able to suck it off of the site through some other channel. I know nothing is perfect but the idea is to make it clean and easy for paying customers and hard and challenging for everyone else.

And again, any help or advice would be greatly appreciated.

Don
www.panama-guide.com
 Quote

Status: offline

winnerdk

Forum User
Full Member
Registered: 04/24/05
Posts: 339
Location:Panama City, Republic of Panama

OK, this seems to be working pretty nicely.

I just went to Admin Home, selected Groups, and then selected "Create New."

From there, I just created a new group called "Premium Content" and I did not assign (meaning, I did not select any of the click boxes) to give the new group any of the previously existing Security Groups or Rights. I also did not click the box to make this new group and Admin group.

With that done, I then created a new Topic called "Premium Content" and I assigned this topic to the Premium Content group. For this topic I selected the permissions of R/E for Owner, and R for Group, but then deselected R/E permissions for both Members and Anonymous users. Therefore, the only people who should be able to access these articles are members who are assigned to the "Premium Content" group.

Then I created a test article called New Test Article for Premium Content Topic Category. If you click on that article (and if you are not logged in as a paying member of the "Premium Content" group) then you should get bounced to the front door of the website, and not be given access to the article. I logged out and tried it, and so far everything seems to be working perfectly according to plan. With regards to RSS, it seems like my concern somehow took care of itself. I just opened up my RSS feed reader and checked the feed from the website, and for some reason the new "test" article did not go out on the feed (good.) What remains to be seen is how Google handles these articles. Anyway, in the meantime, this seems to be about a 99% solution. I can now also go back and "cherry pick" selected articles from the database to update and migrate into the new "Premium Content" topic, one at a time, in order to populate the new section. Ideas? Feedback? Thoughts or suggestions? Don www.panama-guide.com

 Quote

Status: offline

winnerdk

Forum User
Full Member
Registered: 04/24/05
Posts: 339
Location:Panama City, Republic of Panama
Very Cool. Apparently the concern over Google has been taken care of in this approach as well.

Specifically, by doing a Google using their advanced search feature, I searched for the title of the new test article specifically within my website;

http://www.google.com/advanced_search?q=New+Test+Article+for+Premium+Content+Topic+Category+site:www.panama-guide.com&hl=en&lr=

And the results came back with nothing at all, like the article is not even there.

Then to check I searched for an article that was posted just minutes before about a construction contract that was awarded yesterday;

http://www.google.com/search?hl=en&as_q=Construtora+Norberto+Odebrecht+S.A.+Makes+Lowest+Bid+For+New+Water+Treatment+Plant&as_epq=&as_oq=&as_eq=&num=10&lr=&as_filetype=&ft=i&as_sitesearch=www.panama-guide.com&as_qdr=all&as_rights=&as_occt=any&cr=&as_nlo=&as_nhi=&safe=images

And, the results come back with that article, just fine.

So, I don't know how, but apparently the new Group and Topic, and the articles posted to that "Premium Content" topic with the restricted access set the way they are, means that the articles don't go out in either the RSS feed or get picked up by Google.

So far, so good. Again, any thoughts, ideas, or feedback would be welcomed.

Don
www.panama-guide.com

 Quote

Status: offline

jmucchiello

Forum User
Full Member
Registered: 08/29/05
Posts: 985
I thought you wanted the articles to be visible (titles and intros) but not readable (clicking through fails). Why are you surprised the permissions are working exactly as they are supposed to?
 Quote

Status: offline

::Ben

Forum User
Full Member
Registered: 01/14/05
Posts: 1569
Location:la rochelle, France
Hello Don,

Yes permissions are working well Smile

If you change a story to a private topic you will loose the google indexation for that story.

::Ben
I'm available to customise your themes or plugins for your Geeklog CMS
 Quote

Status: offline

winnerdk

Forum User
Full Member
Registered: 04/24/05
Posts: 339
Location:Panama City, Republic of Panama
Quote by: jmucchiello

I thought you wanted the articles to be visible (titles and intros) but not readable (clicking through fails). Why are you surprised the permissions are working exactly as they are supposed to?

Well, I'm just happily surprised because I've never used this aspect of Geeklog before. I've modified my original plan. Rather than allowing everyone to see an intro paragraph, now I'm just going to establish a fenced-off "Premium Content" section, and the only people who can see those articles are paying customers. If I want to create a "teaser" paragraph or something to entice new users to sign up, I can still write a separate lead-in paragraph and include that in a "normal" category that everyone can see, and then at the end of the teaser section I can include a link to the full content in the Premium Content section. So that way I can create a visible intro paragraph and clicking through will fail for non-paying members. Best of both worlds, no new coding required. Also, I can always take any of the existing articles and migrate them into the restricted area, one at a time. At this point, I'm a happy camper... I just announced the new scheme to my readers. Don www.panama-guide.com
 Quote

Status: offline

winnerdk

Forum User
Full Member
Registered: 04/24/05
Posts: 339
Location:Panama City, Republic of Panama
Quote by: cordiste

Hello Don,

Yes permissions are working well Smile

If you change a story to a private topic you will loose the google indexation for that story.

::Ben



True, any of the older articles I decide to migrate to the new section will be lost to Google, right? No matter, because my new strategy calls for me to write a "visible" or "public access" introduction paragraph with a link at the end to the full article, which will reside in the restricted access "Premium Content" section. Google will index that "public access" article, so I end up with the best of both worlds.

And, the primary idea behind these "premium content" is to produce articles, studies, and analysis that is much more comprehensive and in-depth than the normal drive-by news article. I can also used these open-access "teaser" introductory paragraphs to let people know it's there, to entice new readers to subscribe to the premium content, and to get the leader out on Google and other indexes.

By golly, I think this is going to work.

Don
www.panama-guide.com

 Quote

Status: offline

::Ben

Forum User
Full Member
Registered: 01/14/05
Posts: 1569
Location:la rochelle, France
my new strategy calls for me to write a "visible" or "public access" introduction paragraph with a link at the end to the full article, which will reside in the restricted access "Premium Content" section. Google will index that "public access" article, so I end up with the best of both worlds.


A little plugin could make the job Smile

::Ben
I'm available to customise your themes or plugins for your Geeklog CMS
 Quote

Status: offline

jmucchiello

Forum User
Full Member
Registered: 08/29/05
Posts: 985
Actually the autotag plugin might be good enough. You create an autotag that takes a story ID: [premium:2009080304384954]. The code for the autotag looks at the user's permissions and if they cannot see the story the tag is replaced with a link to your (presumed staticpage) where you advertise the premium section (and with a rel="nofollow"Wink. If they can see the content, the normal article url is returned by the autotag. Your teaser article just has to include the premium autotag and the user gets the proper link automatically.
 Quote

Status: offline

winnerdk

Forum User
Full Member
Registered: 04/24/05
Posts: 339
Location:Panama City, Republic of Panama
Quote by: jmucchiello

Actually the autotag plugin might be good enough. You create an autotag that takes a story ID: [premium:2009080304384954]. The code for the autotag looks at the user's permissions and if they cannot see the story the tag is replaced with a link to your (presumed staticpage) where you advertise the premium section (and with a rel="nofollow"Wink. If they can see the content, the normal article url is returned by the autotag. Your teaser article just has to include the premium autotag and the user gets the proper link automatically.



Actually, what I'm planning to do right now is to simply write the article and place it in the Premium Content topic (and group) so that only paying members can see it. Once it's written...

It's relatively quick and easy to just copy and paste the introductory paragraph into a "new" article that can be seen by the world. There's not a lot of new work that needs to be done because the article will already be written, so it's simple. At the end of that paragraph, I'll place a link to the "actual" article that resides in the Premium Content section. Paying customers will be taken to see it, and any non-paying customers who click on that link will bounce back to the front page. I'm going to use these as "teaser" articles to entice new users to sign up. I'll also be placing the PayPal button right there for anyone who wants to sign up on the spot.

I have a question regarding the potential use of an autotag at the end of these "teaser" articles. In your example you used [premium: 2009080304384954]. In that example, is "premium" the name of the topic? Does this feature already exist (and I just didn't know it?) And regarding the rel="nofollow" part, how to I get the autotag to redirect those users who are not authorized to see the material to the article or static page of my choice? I mean, it sounds good, but how do I do it?

Don
www.panama-guide.com
 Quote

Status: offline

jmucchiello

Forum User
Full Member
Registered: 08/29/05
Posts: 985
What you plan to do is unchanged except that at the end of the teaser you would include the autotag.

It is an autotag you would have to create. Everything in my post requires coding. If you have the autotag plugin you would create a function
Text Formatted Code

// I don't have to make this code that actually works
function phpautotag_premium($p1, $p2, $something_I_have_forgotten_what_it_is) {
    global $_CONF;

    if (SEC_hasRights('story.premium')) {
        return COM_createLink($_CONF['site_url'] . '/article.php/sid=' . $p1, 'link to story');
    } else {
        return COM_createLink($_CONF['site_url'] . '/staticpages/index.php?id=premium_content_signup', 'link to story', Array('rel' => 'nofollow'));
    }
}
 

Then you create a staticpage that contains your advert for "Why should I signup for premium content?" The value of having it redirect to the staticpage is you won't confuse people. Otherwise your forums will fill with "When I click on the story link I get redirected to the front page, is that a bug?"

I leave actually getting this to work seemlessly (and with multiple language support) as an exercise for the reader. Smile
 Quote

All times are EDT. The time is now 10:09 pm.

  • Normal Topic
  • Sticky Topic
  • Locked Topic
  • New Post
  • Sticky Topic W/ New Post
  • Locked Topic W/ New Post
  •  View Anonymous Posts
  •  Able to post
  •  Filtered HTML Allowed
  •  Censored Content