In the last lesson we covered how to host landers on LanderLab. It DOES make it convenient to host landers, but it also comes at a monthly cost. So if you've wanting to save money and aren't afraid to get your hands a bit dirty, this lesson will show you how to host your landers for FREE, and show how to set it up step-by-step.
If you haven't already registered a domain name for your landers in the LanderLab lesson, we'll need to do so now. We'll also need to get nameservers with fast redirection speed to allow the landers to start loading as early as possible.
And last but not least, we'll need to set up a CDN service to serve your landers from locations across the globe, to make pages load fast for visitors from different countries. As you'll see in a future lesson, page load speed is ESSENTIAL especially when it comes to pop traffic, because nobody is going to sit around waiting for an intrusive ad to load.
Please Note: We will be using Namecheap as the domain registrar, Route 53 as the DNS service provider, Amazon S3 as the webhost, and Amazon Cloudfront as the CDN. If you want to substitute any of these services, please feel free to do so, but know that if you run into problems, you'll be on your own (you can still ask questions in the forum and try to get other members to help - just that I may not be able to help you because I'm weak when it comes to tech).
Lots of instructions to follow today so LET'S BEGIN!
***********************************
ACTION
1)REGISTER A DOMAIN AT NAMECHEAP
(IMPORTANT: If by any chance you've registered a landing page domain and added it to Landerlab, please avoid using the same domain for this lesson. Registering a new domain would be best. Even if you delete the domain from Landerlab, you will still cause a conflict when you try to add the domain to Amazon S3 by following this lesson.)
-Register an account on Namecheap.com if you don't yet have one.
-Sign in, click on "Domains" > "Domain Name Search".
-Think of a domain name for your landing pages. If you have a vertical you would like to focus on, you can come up with a domain name that is related to that vertical (e.g. for sweeps, something like daily-prize-rewards.com). If you haven't decided on what kind of offers to promote, then just register something generic, such as:
bestinternetoffers
specialpromostoday
extreme-deals-site
....you get the idea.And if you can come up with shorter names without spammy-looking hyphens, all the better!
I wouldn't suggest spending too much time on trying to come up with the perfect domain name, because nowadays, domains get banned by google quite frequently.
Enter your desired domain name into the search field and press ENTER. Domain names that have already been taken will say "TAKEN" and show a "make offer" icon at the end of the row. Domain names that are available will show an "add to cart" icon.
And no, it doesn't have to have a .com extension. For example, .xyz, .club, and .life domains are cheaper. However, keep in mind 2 things:
a)People tend to trust .com sites more - I haven't personally split-tested this myself though, so have no idea how much impact domain extensions can have on conversion rates.
b)Some people believe that .com domains are less likely to be flagged/banned by google, and that they may be faster: https://stmforum.com/forum/showthrea...ns-For-Landers
For tracker domains I'd recommend getting a .com. For lander domains, if you run high volume pop traffic, lander domains can get flagged by google quite often so .com's can get expensive.
You're encouraged to do your own experimentation. For your first domain, don't overthink - get a .com for now and switch to other extensions later.
-Once you've decided on a domain name, click on "add to cart" as shown in the screenshot above, then click on the shopping cart icon at the top, then "View Cart" where you'll need to complete the purchase.
No need to buy their additional services such as Web Hosting, SSL, VPN, etc.
Purchasing for 1 year would be enough - you can always pay for another year if the domain isn't flagged by google by then. "AUTO-RENEW" I would suggest to leave at OFF for the same reason (although you could leave it on, and come back to turn it off if the domain gets flagged by google - your choice).
Get WhoisGuard (now "free forever" on Namecheap), as many pop landers are at least somewhat scammy in nature, so it would be best to not have your name associated with those landers.
No need to get Premium DNS - we'll be using Amazon Route 53, as you'll see later.
I purchased a domain for use with this tutorial as an example - the domain name is winbignow.xyz.
2)SET UP HOSTING ON AMAZON S3
This is the method taught by Caurmen in this post. Parts of this section are copied from that post (thanks Caurmen-the-Great!)
-Register an account at AWS if you don't yet have one: https://aws.amazon.com/
-Sign into the AWS Console. Type "S3" into the search field and click on the search result.
-Click on "Create bucket".
-In the "Create bucket" window, put your domain name (can include the extension) as the "Bucket name", set "Region" to "US East (N. Virginia) us-east-1" if it isn't already.
Note: It doesn't much matter what this bucket name is, as long as you remember which domain it's for. However, the name DOES need to be unique among all the buckets on Amazon (from all users and not just you). For my particular domain, I named my bucket "winbignow.xyz".
-Continuing down the page to the section "Block Public Access settings for this bucket". Uncheck "Block all public access". Click to checkmark the top two items, i.e. "Block public access to buckets and objects granted through new access control lists (ACLs)" and "Block public access to buckets and objects granted through any access control lists (ACLs)".
Checkmark to acknowledge the message "Turning off block all public access might result in this bucket and the objects within becoming public".
-Continuing down the page, leave "Bucket Versioning" at "Disabled" for now if you're not sure. Enabling bucket versioning will allow you to recover objects (lander files and images) from accidental deletion or overwrite. If this is what you want, you can enable it.
-Continuing down the page...leave the "Tags" section at default (i.e. no tags) and leave the "Default encryption" at "Disable".
-Under "Advanced settings" > "Object Lock", leave at the default "Disable".
-Finally - click on "Create bucket" at the bottom.
-Find your bucket from the list of buckets, and click on your bucket name.
-Click on the "Permissions" tab, scroll down to "Bucket policy" and click "Edit". Paste the following code into the "Policy" area, and replace "winbignow.xyz" with your domain (DO NOT FORGET THIS!). Click "Save changes" at the bottom.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::winbignow.xyz/*"
}
]
}
-Scroll back to the top, click on the "Objects" tab, then click on " Create folder".
-Type in the name "sweeps" (or whichever vertical you've chosen). Leave "Server-side encryption" at "Disable". Click "Create folder".
-On your desktop, open any text file editor (notepad would be fine for example), and write a line of text similar to the following, then save it as index.html:
You can also save it as index.txt, and then change the file name to index.html.Nothing to see here!
-Back in Amazon S3, still on the "Objects" tab, click on "Upload", and then either click on "Add files" and choose the index.html you've just created, or drag the index.html file from your computer onto the webpage. Leave everything else at default, scroll to the bottom and click "Upload".
-> NOTE: Please follow the current step for all files you'll be uploading to this bucket in the future.
-Click on "Close" to go back to the "Objects" tab.
-Click on the "sweeps" folder you created earlier. Click on "Create folder", type in the name of the first prize of the sweeps offers you're planning to test - e.g. "iphone12" (no spaces) - and click "Create folder".
-Click on the "iphone12" folder, then click on "Create folder", and type in the language you've chosen to target first. You can type in the whole word or the 2-letter code for the language. Let's say you're wanting to run offers in Kenya, so the target language would be English (you can look it up on this page). In this case you can type in the folder name as either "english" or "en" (you can look up 2-letter country codes on this page). Click "Create folder".
-Download the sample landing page below - you can choose from .zip or .7z depending on which compression software you use (if you don't have winzip, download 7 zip from here):
https://www.dropbox.com/s/ej0yvur8zk...urvey1.7z?dl=0
https://www.dropbox.com/s/ifxtknmnll...rvey1.zip?dl=0
Unzip the downloaded file.
-Back in Amazon S3, click on the "en" folder, then click on "Upload", then drag the unzipped "survey1" folder to the browser window, and click "Upload". Click "Close".
-Click on the folder "survey1", then click on the file "index.html". Right-click on the link under "Object URL" and choose "Open link in new tab" (or if you're not using the chrome browser, do whatever you need to do to open that link in a new browser tab).
You should now see this landing page:
If you do, it means you've set up the bucket policy and permissions correctly, so that the landing page is now accessible. Browsing to the landing page like this to make sure it is accessible, would always be a good check for every lander you upload in the future - because it you can't access it, then chances are your visitors won't be able to either.
3)SET UP CDN ON AMAZON CLOUDFRONT
-In your Amazon AWS Console, type "cloudfront" into the search field and select it.
Or just go to: https://console.aws.amazon.com/cloud...ion=us-east-1#
-Click the "Create Distribution" button at the bottom.
-For "Select a delivery method for your content", we want to choose Web, so click on the "Get Started" button in the "Web" section.
-You'll be in the "Create Distribution" screen. Click in the "Origin Domain Name" field and choose the S3 Bucket you've created above.
-For "Restrict Bucket Access", set to "Yes". For "Origin Access Identify", choose "Create a New identify". For "Grant Read Permissions on Bucket", set to "Yes, Update Bucket Policy".
-Then scroll to the bottom and click "Create Distribution".
You should then see a screen like this:
If you don't see that screen, go to the left menu and click on "Distributions".
Find the distribution you've just created. Take a good look at the link in the "Domain Name" column - we'll be referring to it in a subsequent step.
(The "In Progress" will change to "Deployed" within minutes - no need to wait for this to happen before continuing with the next step.)
4)SET UP HOSTED ZONE ON ROUTE 53
-In the AWS Console, type "route 53" into the search field and select it.
Or just go to: https://console.aws.amazon.com/route...ion=us-east-1#
-In the left menu (click on hamburger to expand) select "Hosted zones", then click "Create hosted zone".
-Fill in the "Domain name" field with the domain you registered from before (without the http://), then click "Create hosted zone" at the bottom (leaving everything else at default).
-Pay attention to the "NS" row - the 4 nameservers in the "Value/Route traffic to" column. We'll need to copy/paste these values into Namecheap next.
5)ADD NAMESERVERS TO NAMECHEAP
-Log into namecheap, click "Domain List" in the left menu, find your domain and click on "Manage". On the "Domain" tab > "NAMESERVERS" section > click to change from "Namecheap BasicDNS" to "Custom DNS".
-Click on "ADD NAMESERVER" 2 times to add 2 additional entries so there would be 4 blank fields in total.
Then paste those 4 nameservers from Route 53 that we were looking at earlier. Don't forget to click on the little green checkmark to save.
-It will take time for DNS to propagate - which will typically take less than 30 minutes. But you don't need to wait before proceeding to the next step.
6)REQUEST FOR FREE SSL CERTIFICATE
-Go to https://aws.amazon.com/certificate-manager/, click "Get started with AWS Certificate Manager".
-Double-check the upper right corner to make sure that the location is set to "N. Virginia". If not please select this location before proceeding.
-Click on "Request a certificate".
-"Request a public certificate" should be selected. Click on button "Request a certificate".
-In the "Add domain names" section, in the "Domain name*" field, put your domain name without "http://www.". So in my case, it would be "winbignow.xyz".
-Click "Add another name to this certificate" to add another blank field, then put into it your domain name preceded by "*.". So in my case I would put "*.winbignow.xyz". Click "Next".
-For "Select validation method", the option "DNS validation" should already be selected (if not, select it). Click "Next'".
-Leave the "Add tags" section at default. Click "Review". Then click "Confirm and request".
-You'll then see that the "Validation status" of both versions of your domain will say "Pending validation". Click on the little black arrow/chevron in front of each one of the domain versions to expand the section. Click "Create Record in Route 53". Then click "Create". If all goes well you should see a "Success" message.
(Be sure to perform this step for both domain versions, i.e. expand the section, create record in route 53, then "Create".)
-Click "Continue" at the bottom to go back to the Certificates Manager page. You will see that the entry is "Pending validation". It may take a few minutes for this status to turn into "Success" and "Issued". You can refresh the browser periodically until this happens. Do not proceed to the next step until it does.
7)ADD SSL CERTIFICATE TO CLOUDFRONT
(Huge thank you to @edgekao who showed us this method in this post!)
-Back in Cloudfront, go to "Distributions" in the left menu, click to choose the cloudfront distribution for your site, then click "General" -> "Edit".
-In "Alternate Domain Names (CNAMEs)", type in there both the "www" version of your domain name and the version without "www" - both without "http://":
-For "SSL Certificate", select "Custom SSL Certificate (example.com)", click inside the empty field, and find and click on the new certificate that just got validated. Scroll down and click on "Yes, Edit" to save changes.
8)ADD MORE RECORDS ON ROUTE 53
Next we need to point our domain name to the Cloudfront CDN.
-In the AWS Console, type "route 53" into the search field and select it.
Or go to: https://console.aws.amazon.com/route...ion=us-east-1#
-Click "Hosted zones" in the left menu. Then click on your new domain name. Then click "Create record".
-In "Record name" type "www" in font of your domain name. For "Record type" leave at the default "A = Routes traffic to an IPv4 address and some AWS resources". For "Value" click on "Alias" to toggle it on, then click on the "Choose endpoint" box and select "Alias to CloudFront distribution". Then in the "Choose distribution" box click and select that cloudfront distribution you created earlier (remember the cloudfront distribution domain name I asked you to take a good look at earlier?) Leave "Routing policy" to "Simple routing". Leave "Evaluate target health" at "No".
-Click "Add another record". Fill out everything the same way as in the previous step except for "Record type", choose "AAAA - Routes traffic to an IPv6 address and some AWS resources".
-Next, we want to repeat the last 2 steps to add 2 records for the "naked" version of your domain, i.e. the one without "www". In other words, repeat the previous 2 steps, but without putting "www" in the "Record name" field.
-Lastly - click on "Create records" at the bottom.
9)LASTLY...
-How do you know whether DNS has finished propagating? There are 2 things you can do. Firstly, you can check dnschecker.org. You can check both the "www" version and the one without, and if you see all green checkmarks then you're OK. If you see red crosses, maybe wait some more before checking again. If after a few hours you're still not seeing ANY green checkmarks, then it may be time to go over all the instructions above to make sure you've set up everything correctly.
-Another way to see if DNS has propagated, would be to simply browse to the sample landing page via your real domain, to see whether you can see the landing page. So, browse to:
http://your-domain-name.whatever/swe...ey1/index.html
In my particular case I would browse to:
http://winbignow.xyz/sweeps/iphone12...ey1/index.html
You should also verify that your SSL certificate is working, by browsing to the https version of your lander url, e.g.:
https://winbignow.xyz/sweeps/iphone1...ey1/index.html
If you can see your landing page, then you're all set!If you can't, or get an error of some sort, then it may be because either DNS hasn't finished propagating, or you've made a mistake in the setup.
-Also: If you can't seem to make things "work" even after verifying all the settings are correct, it may be because you've been changing some of the settings, but CDN is still serving up cached pages that were generated based on old settings. What you can try is go to Cloudfront, click on your distribution, click on the "Invalidations" tab, click "Create Invalidation", put a "*" in the "Object Paths" field, and click "Invalidate". When the "Status" goes from "In Progress" to "Completed", check to see if you can access your landers in the browser again.
***********************************
Please scroll down for the EXPLANATION and READING sections!
Special thanks to @jeremie for getting me "unstuck" when I got stuck at one point while updating the instructions above!
Special note: If you're wanting to use subdomains for your landers, please implement @jeremie's suggestion in this post:
https://stmforum.com/forum/showthrea...l=1#post409806
Amy