Saifullah.id - Safelink sangat penting dimiliki oleh seorang blogger terutama yang berkecimpung di situs download aplikasi, software, film, musik, dan file. Salah satu tujuan utama penanaman safelink di dalam blog tentu saja karena masalah uang dan keamanan.
PENGHASILAN SAFELINK
Mungkin masih sedikit yang tahu bahwa, safelink yang dibuat dan dipasang sendiri lebih menguntungkan dibanding safelink converter dari penyedia layanan lain.
Keuntungan yang didapat dari safelink pribadi bisa mencapai 8 kali lipat lebih banyak dibanding bergabung dengan safelink converter diluar sana.
Jika dihitung pakai kurs 1$ = Rp 14.238, maka rata-rata diluar sana 1000 klik hanya dibayar 3$ (Rp 42.714), sedangkan safelink yang dibuat sendiri bisa menghasilkan 25$ (Rp 355.930) per 1000 klik. Jauh sekali perbedaanya bukan?
SAFELINK SEBELUMNYA
Sebetulnya saya sudah pernah memberikan tutorial cara membuat safelink otomatis diblog utama pada postingan yang lalu. Bahkan lengkap dengan penjelasan tentang fungsi, jenis, dan cara kerja safelink untuk Blogger dan Wordpress.
Jika kamu belum pernah membacanya, silakan kunjungi link berikut:
SAFELINK RANDOM POST
Safelink yang akan saya bahas kali ini adalah Safelink Random Post. Kelebihan safelink random post adalah bisa menggiring pengunjung ke beberapa postingan secara acak sebelum mendownload file tujuan. Sehingga postingan yang lain ikut merasakan dampak positif berupa penambahan jumlah pembaca / pengunjung. Hal ini bisa mempermudah postingan menjadi cepat trending.
CARA KERJA SAFELINK RANDOM POST
Cara kerja safelink cukup simple. Pertama, link eksternal akan di encrypt secara otomatis menjadi kode base64 atau md5 sehingga link asli akan tersembunyi.
Ketika link tersebut di klik, pengunjung akan diarahkan ke halaman / postingan yang sudah kita tentukan. Kita bisa mengatur lebih dari dua postingan yang berbeda-beda sebagai halaman safelink. Halaman ini akan bergantian secara acak ketika ada yang menekan tombol Download.
Di halaman safelink pengunjung biasanya diminta untuk menunggu sejenak beberapa detik dan menekan tombol yang mengarah ke alamat tujuan. Setelah itu baru kemudian pengunjung bisa mendownload / membuka file.
Tutorial Membuat Safelink Otomatis Random Post
Ada 2 langkah utama yang akan kita kerjakan, yaitu: 1) Membuat halaman Safelink dan 2) Menanam kode otomatis di template Blog.
1. Membuat Halaman Safelink
Kode safelink bisa disisipkan di halaman baru, atau bisa juga di input ke postingan yang sudah ada. Di sini saya kasih contoh pakai halaman baru saja agar mudah dimengerti. Nanti bisa dimodifikasi jika sudah tahu sistem kerjanya.
- Masuk ke blogger.com
- Klik menu Halaman
- Lalu tekan Halaman Baru
- Kasih judul sesuai keinginan, misalnya: Safelink
- Lalu pilih < > Tampilkan HTML
- Kemudian Copy kode berikut dan Paste ke dalam halaman tadi.<div class='ad-placement'><!--[ Ganti dengan kode iklan ]--></div><div class='safelink-button' id='safelink'><div style='text-align: center'><div class='button outline' id='safelink-wait'>Please wait...</div><script>/*<![CDATA[*/ var currentURL = location.href; var str = currentURL; var res = str.replace('https://alamatblog.com/p/safelink.html' + '?url=', " "); function changeLink(){ var decodedString = Base64.decode(res); window.open(decodedString, '_blank')}; document.write('<a href="#getLink" id="safelink-download" class="button">Create link</a>'); var linkDL = document.getElementById("safelink-download"); var notif = document.getElementById("safelink-wait"); var time = 10; var textTime = document.createElement("span"); linkDL.parentNode.replaceChild(textTime, linkDL); var id; id = setInterval(function () { time--; if (time < 0) { textTime.parentNode.replaceChild(linkDL, textTime); clearInterval(id); notif.style.display = "none"; linkDL.style.display = "inline-block"; } else { textTime.innerHTML = "Link will appear in " + time.toString() + " second"; }}, 1000); /*]]>*/</script></div></div><div class='safelink-content'><!--[ Ganti dengan artikel ]--></div><div class='safelink-create' style='text-align:center'><div class='ad-placement'><!--[ Ganti dengan kode iklan ]--></div><div id='getLink'><a class='button' href='javascript:;' onclick='changeLink();' rel='noreferrer noopener'>Get link</a></div><div class='ad-placement'><!--[ Ganti dengan kode iklan ]--></div></div>
- Selanjutnya tekan Publikasikan
- Lalu Edit Halaman Safelink yang baru saja di Publikasikan. Ganti semua teks yang sdah ditandai pakai warna.
- Warna Biru: Hapus yang diberi tanda biru, lalu ganti dengan kode iklan, misalnya Google Adsense, Mgid, Ad Now, dll.
- Warna Hitam: Ganti dengan artikel atau tulisan apapun yang kamu inginkan. Jika kamu rasa tidak perlu pakai artikel, maka biarkan saja / jangan diubah.
- Warna Hijau: Adalah waktu mundur dalam hitungan detik, silakan ganti angkanya sesuai keinginan. Perbesar angka untuk memperlambat, dan perkecil angka untuk mempercepat.
- Warna Kuning: Jika pengunjungnya mayoritas orang Indonesia, sebaiknya ganti dengan bahasa Indonesia karena orang Indonesia kebanyakan masih gaptek dan jarang yang bisa bahasa Inggris.
- Warna Merah: Ganti dengan alamat URL Halaman Safelink. Misalnya menjadi https://www.saifullah.id/p/safelink.html
Cara Mengambil Alamat URL Halaman Safelink
- Klik Kanan icon Mata 👁
- Pilih Copy Link
- Lalu Paste ke dalam kode warna merah, sehingga tulisan merah berganti menjadi alamat blog kamu sendiri. Selajutnya tekan Publishkan.
- Perlu diingat, usahakan blog kamu support "https" agar lebih responsif.
Terapkan langkah di atas satu persatu dengan teliti, terutama pada bagian tulisan warna merah, karena jika salah, bisa menyebabkan safelink tidak berfungsi.
2. Menanam Kode Otomatis Di Template Blog
- Klik menu Tema
- Tekan icon Segitiga Terbalik
- Pilih Edit HTML
A. Memasang CSS
- Cari kode ]]></b:skin> supaya cepat gunakan Ctrl + F
- Letakkan kode di bawah ini tepat di atas ]]></b:skin>/* Safelink Saifullah.id*/
:root {
--link-outline-color: #48525c ;
--link-bg-color: #204ecf ; // Warna background tombol link
}
.button{display: inline-flex;align-items: center;margin: 15px 15px;padding: 10px 20px;outline: 0;border: 0;border-radius: 2px;color: #fefefe;background-color: var(--link-bg-color);font-size: 14px;white-space: nowrap;overflow: hidden;max-width: 100%;line-height: 2em}
.button.outline{color: var(--link-outline-color);background-color: transparent;border: 1px solid #ebeced}
.button.outline:hover{border-color: var(--link-bg-color)}
.safelink-button, .safelink-create > *{margin: 1.8em 0}
.safelink-button span{display: block;font-size: 12px}
#getLink{margin: 5px 0}
#getLink .button{display: none}
#getLink:target .button{display: inline-flex}
B. Memasang Javascript Redirect ?m=1
- Cari kode </head> atau <!--<head/>-->
- Letakkan kode di bawah ini tepat di atasnya
- Script diatas berfungsi untuk menghapus kode "&m=1" yang muncul ketika blog diakses melalui mobile (Smartphone / HP).
- Jika kode "&m=1" tidak dihapus maka safelink tidak bisa berfungsi ketika pengunjung mengaksesnya memalui perangkat mobile. Kode ini juga berfungsi untuk mengalihkan pengunjung melalui 'http' ke 'https'. Jika blog Anda belum disetting support 'https' maka Anda bisa menghapus bagian yang sudah di blok warna biru pada kode diatas.
<b:if cond='data:view.isPage'>
<script>/*<![CDATA[*/ var uri = window.location.toString(); if (uri.indexOf("?m=1","?m=1") > 0) {var clean_uri = uri.substring(0, uri.indexOf("?m=1"));window.history.replaceState({}, document.title, clean_uri); }; var protocol = window.location.protocol.replace(/\:/g,''); if(protocol == 'http'){ var url = window.location.href.replace('http','https'); window.location.replace(url);} /*]]>*/</script>
</b:if>
C. Memasang Javascript Encode URL
- Cari kode </body> biasanya ada di paling bawah template.
- Lalu tambahkan kode dalam kotak tepat di atas </body>
<b:if cond='data:view.isSingleItem'>
<script>/*<![CDATA[*/ var Base64 = {_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", encode: function (input) {var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = Base64._utf8_encode(input); while (i < input.length) {chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) {enc3 = enc4 = 64;} else if (isNaN(chr3)) {enc4 = 64;} output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);} return output; }, decode: function (input) {var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) {enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) {output = output + String.fromCharCode(chr2);} if (enc4 != 64) {output = output + String.fromCharCode(chr3);} } output = Base64._utf8_decode(output); return output;}, _utf8_encode: function (string) {string = string.replace(/\r\n/g, "\n"); var utftext = ""; for (var n = 0; n < string.length; n++) {var c = string.charCodeAt(n); if (c < 128) {utftext += String.fromCharCode(c);} else if ((c > 127) && (c < 2048)) {utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128);} else {utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); }} return utftext;}, _utf8_decode: function (utftext) {var string = ""; var i = 0; var c = c1 = c2 = 0; while (i < utftext.length) {c = utftext.charCodeAt(i); if (c < 128) {string += String.fromCharCode(c); i++;} else if ((c > 191) && (c < 224)) {c2 = utftext.charCodeAt(i + 1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2;} else {c2 = utftext.charCodeAt(i + 1); c3 = utftext.charCodeAt(i + 2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3;}} return string; }}; var protected_links = ""; var a_to_va = 0; var a_to_vb = 0; var a_to_vc = ""; function auto_safelink() {auto_safeconvert();}; function auto_safeconvert() {var a_to_vd = window.location.hostname; if (protected_links != "" && !protected_links.match(a_to_vd)) {protected_links += ", " + a_to_vd;} else if (protected_links == "") {protected_links = a_to_vd;} var a_to_ve = ""; var a_to_vf = new Array(); var a_to_vg = 0; a_to_ve = document.getElementsByTagName("a"); a_to_va = a_to_ve.length; a_to_vf = a_to_fa(); a_to_vg = a_to_vf.length; var a_to_vh = false; var j = 0; var daftarPostingan = [ "https://alamatblog.com/p/safelink.html" ]; var randomPostingan = daftarPostingan[Math.floor(Math.random()*daftarPostingan.length)]; var a_to_vi = ""; for (var i = 0; i < a_to_va; i++) {a_to_vh = false; j = 0; while (a_to_vh == false && j < a_to_vg) {a_to_vi = a_to_ve[i].href; if (a_to_vi.match(a_to_vf[j]) || !a_to_vi || !a_to_vi.match("https")) {a_to_vh = true;} j++; } if (a_to_vh == false) {var encryptedUrl = Base64.encode(a_to_vi); a_to_ve[i].href = randomPostingan + "?url=" + encryptedUrl; a_to_ve[i].rel = "noopener noreferrer"; a_to_vb++; a_to_vc += i + ":::" + a_to_ve[i].href + "\n";} } var a_to_vj = ""; var a_to_vk = ""; if (a_to_vj) {a_to_vj.innerHTML += a_to_vb;} if (a_to_vk) {a_to_vk.innerHTML += a_to_va;} }; function a_to_fa() {var a_to_vf = new Array(); protected_links = protected_links.replace(" ", ""); a_to_vf = protected_links.split(","); return a_to_vf;}; /*]]>*/</script>
<!--[ Protect link from encode ]-->
<script>protected_links = "facebook.com, instagram.com, twitter.com"; auto_safelink(); </script>
</b:if>
<script>/*<![CDATA[*/ var Base64 = {_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", encode: function (input) {var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = Base64._utf8_encode(input); while (i < input.length) {chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) {enc3 = enc4 = 64;} else if (isNaN(chr3)) {enc4 = 64;} output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);} return output; }, decode: function (input) {var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) {enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) {output = output + String.fromCharCode(chr2);} if (enc4 != 64) {output = output + String.fromCharCode(chr3);} } output = Base64._utf8_decode(output); return output;}, _utf8_encode: function (string) {string = string.replace(/\r\n/g, "\n"); var utftext = ""; for (var n = 0; n < string.length; n++) {var c = string.charCodeAt(n); if (c < 128) {utftext += String.fromCharCode(c);} else if ((c > 127) && (c < 2048)) {utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128);} else {utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); }} return utftext;}, _utf8_decode: function (utftext) {var string = ""; var i = 0; var c = c1 = c2 = 0; while (i < utftext.length) {c = utftext.charCodeAt(i); if (c < 128) {string += String.fromCharCode(c); i++;} else if ((c > 191) && (c < 224)) {c2 = utftext.charCodeAt(i + 1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2;} else {c2 = utftext.charCodeAt(i + 1); c3 = utftext.charCodeAt(i + 2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3;}} return string; }}; var protected_links = ""; var a_to_va = 0; var a_to_vb = 0; var a_to_vc = ""; function auto_safelink() {auto_safeconvert();}; function auto_safeconvert() {var a_to_vd = window.location.hostname; if (protected_links != "" && !protected_links.match(a_to_vd)) {protected_links += ", " + a_to_vd;} else if (protected_links == "") {protected_links = a_to_vd;} var a_to_ve = ""; var a_to_vf = new Array(); var a_to_vg = 0; a_to_ve = document.getElementsByTagName("a"); a_to_va = a_to_ve.length; a_to_vf = a_to_fa(); a_to_vg = a_to_vf.length; var a_to_vh = false; var j = 0; var daftarPostingan = [ "https://alamatblog.com/p/safelink.html" ]; var randomPostingan = daftarPostingan[Math.floor(Math.random()*daftarPostingan.length)]; var a_to_vi = ""; for (var i = 0; i < a_to_va; i++) {a_to_vh = false; j = 0; while (a_to_vh == false && j < a_to_vg) {a_to_vi = a_to_ve[i].href; if (a_to_vi.match(a_to_vf[j]) || !a_to_vi || !a_to_vi.match("https")) {a_to_vh = true;} j++; } if (a_to_vh == false) {var encryptedUrl = Base64.encode(a_to_vi); a_to_ve[i].href = randomPostingan + "?url=" + encryptedUrl; a_to_ve[i].rel = "noopener noreferrer"; a_to_vb++; a_to_vc += i + ":::" + a_to_ve[i].href + "\n";} } var a_to_vj = ""; var a_to_vk = ""; if (a_to_vj) {a_to_vj.innerHTML += a_to_vb;} if (a_to_vk) {a_to_vk.innerHTML += a_to_va;} }; function a_to_fa() {var a_to_vf = new Array(); protected_links = protected_links.replace(" ", ""); a_to_vf = protected_links.split(","); return a_to_vf;}; /*]]>*/</script>
<!--[ Protect link from encode ]-->
<script>protected_links = "facebook.com, instagram.com, twitter.com"; auto_safelink(); </script>
</b:if>
- Warna Pink: Tambah dengan alamat situs yang tidak ingin di teruskan ke halaman safelink, sebaiknya semua situs sosial media dimasukkan di sini dengan cara dipisah pakai koma ( , ) dan jangan lupa masukkan juga alamat URL blog kalian di sini supaya link pribadi tidak mengarah ke Safelink.
- Warna Merah: Ganti dengan alamat URL Halaman Safelink. Jika ingin membuat random post di sini kuncinya. Tambahkan URL baru yang dipisah tanda koma. Contoh:
Jika ingin pakai 1 halaman:
var daftarPostingan = [ "https://alamatblog.com/p/safelink.html" ];
Jika ingin pakai 2 Random Post:
var daftarPostingan = [ "https://alamatblog.com/p/safelink.html","https://alamatblog.com/p/safelink2.html" ];
Jika ingin pakai 3 Random Post:
var daftarPostingan = [ "https://alamatblog.com/p/safelink.html","https://alamatblog.com/p/safelink2.html","https://alamatblog.com/p/safelink3.html" ];
var daftarPostingan = [ "https://alamatblog.com/p/safelink.html" ];
Jika ingin pakai 2 Random Post:
var daftarPostingan = [ "https://alamatblog.com/p/safelink.html","https://alamatblog.com/p/safelink2.html" ];
Jika ingin pakai 3 Random Post:
var daftarPostingan = [ "https://alamatblog.com/p/safelink.html","https://alamatblog.com/p/safelink2.html","https://alamatblog.com/p/safelink3.html" ];
Jika sudah, Simpan Tema
Jika tutorial di atas sulit di ikuti, membingungkan, atau malas untuk membuatnya sendiri, kalian bisa menggunakan Jasa Pembuatan Safelink Otomatis Blogger & Wordpress
Pembuatan Safelink di blog utama sudah selesai. Jika mengikuti langkah di atas dengan benar, pasti safelinknya berfungsi dengan baik. Silakan lakukan pengujian dengan menekan tombol download di blog kamu.
Jika kamu ingin mengubah tampilan efek loading, kamu bisa menggunakan tools animasi loading yang terdapat dalam menu Tools di website ini. Untuk tutorialnya bisa kamu lihat 👉 di sini