Cara Membuat Safelink Auto Generate dengan Random Artikel - Code Pelajar
Cara Membuat Safelink Auto Generate dengan Random Artikel

Jumpa kembali dengan saya admin Code Pelajar. Sudah lama sekali saya tidak update disini karena alasan kesibukan dunia nyata (karena saya bukan seorang nolep). Banyak sekali yang request "Gan bikin safelink donk!" dan "Gan bikin tutor safelink donk" dan bla bla bla masuk pesan saya dan email juga pada request safelink. Ada apa sih dengan safelink? bukannya sudah banyak di internet yang menyediakan tutor dan templatenya secara gratis? "tapi masih ada link creditnya dan gak sesuai gan." Hargailah pembuat template gratisan karena itu nyamanlah dengan credit linknya. "Pengen bisa bikin juga dan banyak tutorial tapi gak ada yang berhasil satupun". It's impossible, itu mungkin sobatnya saja kurang teliti dan mengekplor kodingannya. Jadi mulai belajarlah!.


Cara Membuat Safelink Blogger Auto Generate dengan Random Artikel


Oke karena kali ini saya sedang dalam keadaan mood yang baik maka saya akan memberikan tutorial singkat "Bagaimana sih cara membuat safelink? apalagi yang random artikel". Kalau saya perhatikan semua tutorial safelink terutama di blog lokal itu 90% sama semua. Hanya saja beda penerapan dan juga beberapa di kasih bumbu-bumbu agar dianggap "Ini buatan gue!". Oke tanpa berlama-lama mari kita simak tutorialnya.


1. Siapkan Blog untuk safelink dengan beberapa artikel

Langkah pertama membuat safelink di blogger adalah dengan membuat blog untuk safelinknya sendiri. Blog baru ini kamu buat dan isi dengan beberapa artikel yang HPK (High Pay Kerword) dengan template yang bebas dan saran saya menggunakan template yang banyak slot iklannya atau biasa kita sebut High CTR Templates.


2. Buat file JS yang dihost ke CDN

Langkah selanjutnya membuat safelink di blogger adalah membuat file js safelinknya dahulu yang dihost ke Github dan layanan CDN lainnya. Script yang harus di host yakni seperti di bawah ini:


 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 encode = document.getElementById('encode'),
    decode = document.getElementById('decode'),
    output = document.getElementById('output'),
    input = document.getElementById('input');
var User_ID = "";
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;

    /*TAMBAH DISINI LINK POSTINGANNYA*/
    
    var daftarPostingan = [
      "masukan url postingan blog safelink kamu disini",
      "masukan url postingan blog safelink kamu disini",
      "masukan url postingan blog safelink kamu disini",
      "masukan url postingan blog safelink kamu disini",
      "masukan url postingan blog safelink kamu disini",
    ];
    /* Jika ingin menambah postingan, copas saja */

    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("http")) {
                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 = "nofollow";
            a_to_vb++;
            a_to_vc += i + ":::" + a_to_ve[i].href + "\n";
        }
    }
    var a_to_vj = document.getElementById("anonyminized");
    var a_to_vk = document.getElementById("found_links");
    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;
}


Mari kita perhatikan sejenak kode yang diatas tadi. Kalian akan menemukan variabel daftarPostingan dengan tipe data array. Nah untuk value atau nilainya diisi dengan url postingan dari blog safelink yang kamu buat tadi. Bebas berapapun juga. Simpan dan host file js tersebut dan jangan lupa kasih nama dan mengubahnya ke raw menggunakan githack


3. Memasang script khusus safelink di template blogger

Pada langkah ini agar safelinknya bekerja dengan baik kamu harus memasang script khusus safelink pada blog safelink kamu. Adapun kodenya seperti berikut ini:


 <b:if cond='data:view.isPost'>
    <script>
      var timeout,interval
      var threshold = 5000; // timer ini bisa di atur sesuai kebutuhan
      var secondsleft=threshold;

      window.onload = function(){startschedule();}

      function startChecking(){
        secondsleft-=1000;
        document.querySelector(&quot;.wait&quot;);  
        if(secondsleft == 0) {
          //document.getElementById(&quot;clickme&quot;).style.display=&quot;&quot;;
          clearInterval(interval);
          document.querySelector(&quot;.wait&quot;).style.display=&quot;none&quot;;
          document.querySelector(&quot;.to&quot;).style.display=&quot;&quot;;
        }
      }

      function startschedule(){
        clearInterval(interval);
        secondsleft=threshold;
        document.querySelector(&quot;.wait&quot;);  
        interval = setInterval(function(){ startChecking();},1000)              
      }

      function resetTimer(){
        startschedule();
      }
    </script>
    <div class='wait'>
      <center>
        <span>Tunggu Bentar...</span>
      </center>
    </div>
    <style type='text/css'>.to {text-align: center;}</style>

    <div class='to' style='display: none;'>
      <a href='#download' onclick='generate()'>
        Klik 100x Disini!
      </a>
    </div>
    </b:if>

Kode diatas adalah untuk memunculkan sebuah tombol klik untuk mengelabui Audien agar terjebak untuk mengklik iklan yang kita siapkan pada blog safelink kita. bisa diperhatikan kata "Klik 100x Disini!" itu adalah text dari tag <a> yang dipasang attribut href='#download' yang nantinya ketika di klik tulisan ini maka akan menuju tombol download yang akan kita siapkan pada langkah berikutnya. Oh iya kode link ini bisa kamu modifikasi menggunakan css seperti dibuat mirip dengan tombol.


4. Memasang Script Tombol Safelink di Setiap Postingan

Umumnya yang saya temui di beberapa tutorial safelink adalah menyertakan kodenya berikut ini pada setiap postingan di buat. Tapi berbeda dengan safelink yang saya buat ini yaitu kita menempelkannya agar semua postingan yang dibuat otomatis terpasang kode tombol safelink ini. Artinya kamu tidak perlu lagi menempelkan satu-satu di setiap postingan untuk memanggil tombol next atau go download pada postingan di blog safelink kamu. Caranya seperti berikut ini:


Pertama cari kode berikut ini:

<data:post.body/>

Kode blogger diatas adalah untuk menampilkan konten postingan pada blogger. Nah setelah ketemu barulah kamu simpan kode berikut ini tepat dibawahnya:


 <b:if cond='data:view.isPost'>
    <!-- Masukan URL FILE JS yang kamu host barusan pada langkah kedua -->
      <script src='URL-FILE-JS-YANG-DIHOST' type='text/javascript'/>
      <script type='text/javascript'>
        function changeLink() {
          var e = Base64.decode(res);
          window.open(e, &quot;_blank&quot;)
        }
        var currentURL = location.href,
            str = currentURL,
            res = str.replace(&#39;<data:post.url/>&#39; + &#39;?url=&#39;, &quot;&quot;);
                              //<![CDATA[//
                              document.write('<div class="redirect-button-wrapper" style="text-align:center">');
                              document.write('<button target="_self" class="btn-succes redirect" style="display:inline-block; line-height:1.6;padding:10px 24px font-size:16px; border:none; background:red;color:#fff; font-weight:bold;border-radius:3px;"  id="download" onclick="changeLink()">Continue</button>');
                              document.write('</div>');
        onload: generate();
        //]]>//
      </script>
      </b:if>


Pastikan kamu memasukan URL yang di host dengan benar yaitu dengan memasukan link yang sudah di raw menggunakan cdn seperti githack. Dan jika kamu ingin custom tombol downloadnya maka kamu tinggal hapus saja inline style yang saya buat dan atur menggunakan css dan blog safelink pun siap digunakan


5. Memasang Script Pemicu Safelink di Blog Utama

Pada tahapan ini adalah bagaimana cara membuat safelink yang tadi kita buat bisa bekerja dan caranya dengan memasang script berikut sebagai pemicu / autogenerate ke blog safelink yang kita buat tadi. Maka buka blog utama sobat dan buat widget HTML untuk menyimpan kode berikut ini:


<script src='URL-FILE-JS-YANG-DIHOST' type='text/javascript' />
<script type="text/javascript">
//<![CDATA[
protected_links = "facebook.com,twitter.com"; // link yang tidak ingin di protect
auto_safelink();
//]]/></script>

protected_links adalah variabel yang berguna untuk mengecualikan link yang tidak akan digenerate menjadi url safelink. kamu bisa menambahkannya seperti pada contohnya diatas.


Nah pada tutorial kali ini safelink harusnya sudah bisa bekerja dengan baik. seperti pada safelink yang kami gunakan di blog code pelajar ini. Yah walaupun temenya acak-acakan tapi safelinknya bisa berjalan dengan baik tanpa kendala. Mau itu di pc ataupun mobile. Namun ada juga bug dimana di versi mobile safelink di blogger tidak bekerja. Ini dikarenakan url blogger pada versi mobile ini menambahkan parameter m=1 sebagai blog yang diakses perangkan mobile. paramater ini tentu saja mengganggu pada script yang ada di langkah ke empat.


Cara FIX Safelink di Mobile View

Untuk mengatasi masalah ini ada script yang saya comot untuk menghilangkan parameter m=1 di url blogger. simpan kode berikut ini tepat di atas tag penutuh head / ≶/head>


<script defer='defer' type='text/javascript'>
/*<![CDATA[*/
var uri = window.location.toString();
if (uri.indexOf("%3D","%3D") > 0) {
  var clean_uri = uri.substring(0, uri.indexOf("%3D"));
    window.history.replaceState({}, document.title, clean_uri);
}
var uri = window.location.toString();
if (uri.indexOf("%3D%3D","%3D%3D") > 0) {
  var clean_uri = uri.substring(0, uri.indexOf("%3D%3D"));
    window.history.replaceState({}, document.title, clean_uri);
}
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 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);
}/*]]>*/
</script>


Terima kasih telah mengikuti tutorial yang saya posting di sini. Jika ada kesulitan dan masalah atas tutorial yang saya buat. bisa dengan berkomentar di bawah setelah postingan ini selesai. See you next time @ Anti Mainstream Blogger Code Pelajar dan Nantikan tutorial lainnya jika saya sempat dan ada waktu luang disini.


Baca Juga: Cara Mengatur Rasio Thumbnail di Blogger dengan Benar

Table Of Content

    Contact Form

    Kirim