KURSUS SEO WITH NO BULLSHIT!
Semua Teknik Dibuka dan 100% WORK SAMPAI SAAT INI
Materi dirancang untuk para Newbie
Bisa diterapkan disemua platform dan niche
Terbukti sesuai untuk semua Algoritma Google (100% Aman)
Tidak perlu premium tools
Biaya Kursus SEO termurah saat ini
Teknik berfungsi untuk persaingan amat sangat keras (apalagi yang persaingan ringan)
Yang terpenting adalah NO Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Vivo E5. Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Vivo E3. Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Vivo E1T. Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Vivo E1 . Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Xplay A5 . Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Rage 35GN . Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang di butuhkan di atas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka ResearchDowload.exe
- Klik Load Packet di sebelah kiri atas pada research download
- Lanjutkan dengan memasukan file pac yang sudah di download dan di extract tadi
- Klik Start Downloading
- Sambungkan ponsel ke komputer dengan kabel usb dalam keadaan mati sambil menekan tombol Volume Up / Volume Down supaya bisa terditeksi sama komputer dan otomatis flashing akan berjalan
- Tunggu hingga proses selesai di tandai tulisan "Passed"
- Lepaskan kabel usb dan coba hidupkan ponsel nya
- Semoga Sukses :)
Demikian Cara Flashing Hotwav Cosmos V4 Via Research Download. Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Hotwav Cosmos V2 (D8050). Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
- QcomDloader Flashtool + Driver
- Firmware Lenovo A6010 S029_150902_16G_ROW
- Firmware Lenovo A6010 S033_150928_16G_ROW
- Firmware Lenovo A6010 S036_151105_16G_ROW
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver di dalam folder driver (jika sudah pernah install lewatkan langkah ini)
- Sambungkan ponsel dalam keadaan mati ke komputer menggunakan kabel usb
- Bukan QcomDloader.exe
- Klik Load dan masukan folder firmware yang sudah sobat download tadi
- Selanjutnya klik Settings
- Pada kolom Download Mode pilih Upgrade
- Pada kolom Download Settings beri centang pada Validate Downloaded ROM
- Selebihnya biarkan seperti pengaturan default (terkecuali nama file pada kolom eMMC, RAW, dan patch0 di dalam folder firmware tidak sama seperti yang tertera, maka sobat harus melakukan perubahan nama)
- Pastikan Chipset sesuai dengan eMMC
- Klik OK maka proses konfigurasi telah selesai
- Klik tombol Start maka proses flashing akan berjalan
- Tunggu hingga proses selesai 100% dengan di tandai tulisan hijau Passed
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Lenovo A6010 Via QcomDloader. Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 30, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Evercoss B75A . Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 29, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Evercoss B75 . Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 29, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Evercoss B74 . Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 29, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Evercoss AT8D . Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 29, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang di butuhkan di atas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka ResearchDowload.exe
- Klik Load Packet di sebelah kiri atas pada research download
- Lanjutkan dengan memasukan file pac yang sudah di download dan di extract tadi
- Klik Start Downloading
- Sambungkan ponsel ke komputer dengan kabel usb dalam keadaan mati sambil menekan tombol Volume Up / Volume Down supaya bisa terditeksi sama komputer dan otomatis flashing akan berjalan
- Tunggu hingga proses selesai di tandai tulisan "Passed"
- Lepaskan kabel usb dan coba hidupkan ponsel nya
- Semoga Sukses :)
Demikian Cara Flashing Evercoss AT8B Via Research Download. Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 29, 2017 New Google SEO Bandung, Indonesia
BAHAN YANG DIBUTUHKAN
LANGKAH-LANGKAH
- Download dan extract bahan yang dibutuhkan diatas
- Install driver (jika sudah pernah install lewatkan langkah ini)
- Buka flashtool.exe di dalam folder flashtool
- Klik pada Scatter-loading dan pilih file scatternya MT65XX_Android_scatter.txt di dalam folder firmware
- Klik Download / Firmware Upgrade (selalu usahakan firmware upgrade untuk mencegah hal-hal yang tidak di inginkan)
- Sambungkan ponsel dalam keadaan mati sambil menekan tombol Volume (-) / Volume (+) secara bersamaan
- Jika keluar tulisan Download Warning abaikan dan klik Yes
- Jika keluar tulisan PMT changed for the ROM, it must be downloaded berarti sobat harus format dahulu ponsel tersebut di menu format pada flashtool. Pilih Auto Format Flash dan Format whole flash except Bootloader dan klik Start / OK (hal ini beresiko menghilangkan imei pada ponsel. DWYOR!!!)
- Tunggu hingga proses selesai 100% dengan di tandai notifikasi lingkaran hijau kemudian cabut kabel
- Silakan dicoba hidupkan ponsel nya dan semoga sukses.. :)
Demikian Cara Flashing Evercoss AT8A . Terima Kasih Sudah Berkunjung Ke Blog Ini. Semoga Semua Yang Saya Sharing Bisa Bermanfaat Bagi Sobat Semua. Mohon Maaf Bila Ada Kesalahan Silakan Di Comment.. Salam Sukses..Enter The Key April 29, 2017 New Google SEO Bandung, Indonesia
All About Lazada Affiliate Indonesia Payment System!
Hi
Masih memiliki banyak pertanyaan tentang sistem pembayaran untuk program Affiliate Lazada Indonesia?
Still have a lot of questions regarding the payment system for Lazada Affiliate Indonesia?
Simak informasi berikut!
Check out these FAQs!
1. Bagaimana saya tahu jika saya sudah bisa mendapatkan komisi hasil penjualan saya? -- How do I know if I'm eligible for payout?
Masuk ke akun HasOffers Anda, pilih Reports > Conversion Reports dan pilih tanggal yang Anda inginkan. Perlu diingat, yang akan kami bayarkan hanyalah approved payouts. Jika approved payout Anda sudah mencapai minimum IDR 300,000 atau USD 25, Anda akan menerima pembayaran setelah invoice diterbitkan. Jika Anda tidak mencapai payout minimum tersebut, jangan khawatir, payout Anda akan diakumulasi untuk pembayaran kedepannya hingga payout Anda mencapai jumlah minimum. Klik disini untuk melihat conversion report.
Log in to your HasOffers account, go to Reports > Conversion Reports and then adjust the covered dates that you would like to see. Remember that we will only pay the approved payouts. If your Payout reached IDR 300,000 or USD 25, then you should receive a payment once invoices are generated. If you didn't reach the minimum payout, don't worry, it will not be forfeited and will only carry over to the next months until you reach IDR 300,000 or USD 25. Click here to access your conversion report.
2. Apakah yang disebut "Pending Payout"? -- What is pending payout?
Pending payout adalah payout yang belum divalidasi oleh tim Lazada. Validasi penjualan untuk affiliate hanya dilakukan satu bulan sekali (kurang lebih pada tanggal 11 setiap bulannya). Oleh karena itu, akan ada banyak transaksi Anda yang masih berstatus "pending". Jadi jangan khawatir jika Anda melihat ada beberapa transaksi yang statusnya belum berubah menjadi "approved" walaupun barang sudah diterima oleh customer.
These are payouts for transactions which are yet to be validated by the Lazada team. Sales validation is only done once a month (usually during the 11th of each month) so most of your conversions will have a pending status. So don't worry if the payout is not yet approved even if you're sure that the customer has already received the order.
3. Bagaimana cara untuk menginput detail bank saya untuk memproses pembayaran? -- How do I set up my billing details?
Pilih menu My Account dan klik Billing untuk menginput atau merubah detail bank Anda. Klik disini untuk memulai.
Go to My Account and go to Billing to edit your billing information. Click here to set it up.
4. Bagaimana saya bisa mengetahui jika invoice saya sudah diterbitkan? -- How will I know if an invoice has been generated for me?
Anda bisa melihat invoice Anda di menu My Account > Invoices
You can check it under My Account > Invoices
5. Invoice saya sudah diterbitkan, kapan saya akan menerima pembayarannya? -- I already have an invoice, when am I getting paid?
Anda akan menerima pembayaran pada setiap akhir bulan.
You will receive the payment for your invoice at the end of each month
6. Mengapa jumlah yang saya terima di rekening bank saya berbeda dengan jumlah yang tertera pada invoice?
-- Why is it that the amount which I received is not equal to the amount indicated on my invoice?
Jika Anda berlokasi di Indonesia, pembayaran komisi Anda akan dipotong PPh 2.5% - 4% tergantung dari identitas Anda sebagai personal atau perusahaan dan kepemilikan NPWP.
JIka Anda berlokasi di luar Indonesia dan tidak memiliki form DGT, komisi Anda akan dipotong PPh sebesar 20%.
If you are based in Indonesia, your payout will need to be deducted by our local income tax of 2.5% - 4% depending on your business status as personal or company as well as whether or not you have a Tax Identification Number.
If you are based overseas and does not have a DGT form, your payout will be deducted by 20% of income tax.
7. Kurs mata uang apakah yang digunakan Lazada untuk pembayaran komisi? -- In which currency am I getting paid?
Jika Anda berlokasi di Indonesia, komisi Anda akan dibayarkan dengan mata uang Rupiah (IDR). Jika Anda berlokasi di luar Indonesia, komisi Anda akan dibayarkan dengan mata uang USD.
If you are based in Indonesia, then you will be receiving your payout in Rupiah (IDR). And for those who are based in oveaseas, the payout will be converted to USD.
Belum mencapai jumlah minimum komisi? Ayo promosikan Lazada lagi dan raih komisi lebih banyak!
Still haven't reached that minimum payout? Wait no more, start promoting Lazada and grab more commission! Enter The Key April 28, 2017 New Google SEO Bandung, Indonesia
Hi
Masih memiliki banyak pertanyaan tentang sistem pembayaran untuk program Affiliate Lazada Indonesia?
Still have a lot of questions regarding the payment system for Lazada Affiliate Indonesia?
Simak informasi berikut!
Check out these FAQs!
1. Bagaimana saya tahu jika saya sudah bisa mendapatkan komisi hasil penjualan saya? -- How do I know if I'm eligible for payout?
Masuk ke akun HasOffers Anda, pilih Reports > Conversion Reports dan pilih tanggal yang Anda inginkan. Perlu diingat, yang akan kami bayarkan hanyalah approved payouts. Jika approved payout Anda sudah mencapai minimum IDR 300,000 atau USD 25, Anda akan menerima pembayaran setelah invoice diterbitkan. Jika Anda tidak mencapai payout minimum tersebut, jangan khawatir, payout Anda akan diakumulasi untuk pembayaran kedepannya hingga payout Anda mencapai jumlah minimum. Klik disini untuk melihat conversion report.
Log in to your HasOffers account, go to Reports > Conversion Reports and then adjust the covered dates that you would like to see. Remember that we will only pay the approved payouts. If your Payout reached IDR 300,000 or USD 25, then you should receive a payment once invoices are generated. If you didn't reach the minimum payout, don't worry, it will not be forfeited and will only carry over to the next months until you reach IDR 300,000 or USD 25. Click here to access your conversion report.
2. Apakah yang disebut "Pending Payout"? -- What is pending payout?
Pending payout adalah payout yang belum divalidasi oleh tim Lazada. Validasi penjualan untuk affiliate hanya dilakukan satu bulan sekali (kurang lebih pada tanggal 11 setiap bulannya). Oleh karena itu, akan ada banyak transaksi Anda yang masih berstatus "pending". Jadi jangan khawatir jika Anda melihat ada beberapa transaksi yang statusnya belum berubah menjadi "approved" walaupun barang sudah diterima oleh customer.
These are payouts for transactions which are yet to be validated by the Lazada team. Sales validation is only done once a month (usually during the 11th of each month) so most of your conversions will have a pending status. So don't worry if the payout is not yet approved even if you're sure that the customer has already received the order.
3. Bagaimana cara untuk menginput detail bank saya untuk memproses pembayaran? -- How do I set up my billing details?
Pilih menu My Account dan klik Billing untuk menginput atau merubah detail bank Anda. Klik disini untuk memulai.
Go to My Account and go to Billing to edit your billing information. Click here to set it up.
4. Bagaimana saya bisa mengetahui jika invoice saya sudah diterbitkan? -- How will I know if an invoice has been generated for me?
Anda bisa melihat invoice Anda di menu My Account > Invoices
You can check it under My Account > Invoices
5. Invoice saya sudah diterbitkan, kapan saya akan menerima pembayarannya? -- I already have an invoice, when am I getting paid?
Anda akan menerima pembayaran pada setiap akhir bulan.
You will receive the payment for your invoice at the end of each month
6. Mengapa jumlah yang saya terima di rekening bank saya berbeda dengan jumlah yang tertera pada invoice?
-- Why is it that the amount which I received is not equal to the amount indicated on my invoice?
Jika Anda berlokasi di Indonesia, pembayaran komisi Anda akan dipotong PPh 2.5% - 4% tergantung dari identitas Anda sebagai personal atau perusahaan dan kepemilikan NPWP.
JIka Anda berlokasi di luar Indonesia dan tidak memiliki form DGT, komisi Anda akan dipotong PPh sebesar 20%.
If you are based in Indonesia, your payout will need to be deducted by our local income tax of 2.5% - 4% depending on your business status as personal or company as well as whether or not you have a Tax Identification Number.
If you are based overseas and does not have a DGT form, your payout will be deducted by 20% of income tax.
7. Kurs mata uang apakah yang digunakan Lazada untuk pembayaran komisi? -- In which currency am I getting paid?
Jika Anda berlokasi di Indonesia, komisi Anda akan dibayarkan dengan mata uang Rupiah (IDR). Jika Anda berlokasi di luar Indonesia, komisi Anda akan dibayarkan dengan mata uang USD.
If you are based in Indonesia, then you will be receiving your payout in Rupiah (IDR). And for those who are based in oveaseas, the payout will be converted to USD.
Belum mencapai jumlah minimum komisi? Ayo promosikan Lazada lagi dan raih komisi lebih banyak!
Still haven't reached that minimum payout? Wait no more, start promoting Lazada and grab more commission! Enter The Key April 28, 2017 New Google SEO Bandung, Indonesia
Semua Tentang Pembayaran Komisi di Lazada Affiliate Indonesia!
Posted by TeknoBlog on Friday, 28 April 2017
Apa rahasia untuk menjadi ranking 1 di Google? Ini adalah pertanyaan
yang paling banyak diajukan oleh teman-teman blogger ataupun pebisnis
online. Mereka yang pemula selalu saja merasa ada yang dirahasiakan,
jadi artikel ini bertujuan untuk menjelaskan kondisi yang sebenarnya.
Kalau
kalian mau tahu apa rahasia untuk menjadi ranking 1 di Google, maka
jawabnya adalah tidak ada rahasia sama Enter The Key April 25, 2017 New Google SEO Bandung, Indonesia
karena menggunakan virtualmin, sy buka
/var/log/virtualmin
biasanya ada file ratusan mega, itu penyebabnya..
hapuslah itu.. Enter The Key April 21, 2017 New Google SEO Bandung, Indonesia
/var/log/virtualmin
biasanya ada file ratusan mega, itu penyebabnya..
hapuslah itu.. Enter The Key April 21, 2017 New Google SEO Bandung, Indonesia
Failed to write file to disk. ketika update WP, upload gambar atau pasang plugin ini solusinya
Posted by TeknoBlog on Friday, 21 April 2017
Mohon maaf sebelumnya, kita tidak ada maksud membuka aib orang, masalahnya orang ini sudah kelewat batas dengan menyebarkan fitnah yang mengatakan penipu kepada akun CFTSTORE dan juga akun dibawah naungan cyberfrogteam.
Dengan ocehan orang ini kami dari cyberfrogtean dan CFTSTORE merasa sangat dirugikan.
Begini Kronologi kejadiannya.
Pada tangal 11-04-17 jam 12 siang ada orang mau beli akun di @CFTSTORE, SINGKAT CERITA orang ini katanya sudah transfer, tapi anehnya dia belum tahu nomor rekening admin, gua belum kasih no.rekening gua,mana ada transfer gak tahu nomor rekening?? Yaudah gua kasih aja nomor rekening, tiba2 dia ngasih bukti TRANSFER YG NOMOR REKENING dan NAMA PENERIMA BERBEDA, Lah orang ini malah marah2 katanya Cftstore nipu, laah KOK PENIPU BEGOK BENER SIH?? KALO MAU NIPU EDIT DULU KEK NAMA PENERIMANYA(PENIPU KOK AMATIRAN),,,!!! DAN PARAHNYA ORANG INI ANCEM2 MAU SEBARIN KALO AKUN @CFTSTORE PENIPU, LAH YANG NIPU ELU APA KAMI?? NIPU KOK GOBLOK??? KAMI DARI PIHAK @CFTSTORE MERASA DIRUGIKAN OLEH ORANG INI, MOHON SEBARKAN. TERIMA KASIH
ATAU BISA LIHAT DI YOUTUBE KRONOLOGINYA KLIK youtu.be/bko_TCvqkjc
BERIKUT ISI CHAT SINGKAT KAMI DAN SANG PENIPU BEGOK
Dengan ocehan orang ini kami dari cyberfrogtean dan CFTSTORE merasa sangat dirugikan.
Begini Kronologi kejadiannya.
Pada tangal 11-04-17 jam 12 siang ada orang mau beli akun di @CFTSTORE, SINGKAT CERITA orang ini katanya sudah transfer, tapi anehnya dia belum tahu nomor rekening admin, gua belum kasih no.rekening gua,mana ada transfer gak tahu nomor rekening?? Yaudah gua kasih aja nomor rekening, tiba2 dia ngasih bukti TRANSFER YG NOMOR REKENING dan NAMA PENERIMA BERBEDA, Lah orang ini malah marah2 katanya Cftstore nipu, laah KOK PENIPU BEGOK BENER SIH?? KALO MAU NIPU EDIT DULU KEK NAMA PENERIMANYA(PENIPU KOK AMATIRAN),,,!!! DAN PARAHNYA ORANG INI ANCEM2 MAU SEBARIN KALO AKUN @CFTSTORE PENIPU, LAH YANG NIPU ELU APA KAMI?? NIPU KOK GOBLOK??? KAMI DARI PIHAK @CFTSTORE MERASA DIRUGIKAN OLEH ORANG INI, MOHON SEBARKAN. TERIMA KASIH
ATAU BISA LIHAT DI YOUTUBE KRONOLOGINYA KLIK youtu.be/bko_TCvqkjc
BERIKUT ISI CHAT SINGKAT KAMI DAN SANG PENIPU BEGOK
Orang ini mengaku MENGIRIM VIA TF,
PADAHAL NOMOR REKENING BELUM KITA KASIH KAYAK (DUKUN AJA SOK TAHU)
DARI SINI KITA TAHU ORANG INI MAU MAIN-MAIN,
TAPI GUA MAU TAU APA YANG AKAN ORANG INI LAKUKAN SELANJUTYA
KEMUDIAN KITA KASIH AJA NOMOR REKENING KAMI KE DIA
Keanehan akan dimulai
LALU KEMUDIAN DIA MEMBERI BUKTI TRANSFER
YANG NAMA SAMA NOMOR REKENING BUKAN MILIK SAYA.
ENTAH DARIMANA ORANG INI MENDAPATKAN
STRUK TRANSFER INI.
Setelah dia bilang sudah transfer, saya cek melalui Internet Banking
sampai Mobile Banking sampai SMS Banking
SAMA SEKALI TIDAK ADA LAPORAN TRANSFER
(Kemudian saya cek Struknya, ternyata bener nih penipu bego
pakai struk orang lain)
Orang ini marah-marah seolah dia telah mentranfer kepada saya
Gua tanya baik-baik lagi
NAMA PENERIMANYA SIAPA?
DIA BILANG ZAMRONI
PADAHAL YANG DIA TRANSFER BUKAN ATAS NAMA SAYA
Sekali lagi kami tidak akan menshare akun ini apabila orang ini meminta maaf
tapi nyatanya orang ini malah semakin menjadi-jadi
sama sekali tidak merasa bersalah
HATI - HATI AJA YA
SAMA ORANG INI, AKUN INSTAGRAM ORANG INI SUDAH DIBULLY HABIS-HABISAN
COBA AJA LIHAT VIDEONYA DI YOUTUBE
Terima kasih frogerizta, I Love you
Enter The Key
April 11, 2017
New Google SEO
Bandung, IndonesiaBounce rate adalah ratio pentalan dari suatu halaman web. Yang dimaksud dengan ratio pentalan adalah perbandingan antara mereka yang langsung meninggalkan website anda dengan mereka yang mengklik tautan lain di website anda.
Apakah bounce rate ini penting? Penting atau tidak penting tergantung pada persaingan yang anda hadapi. Jika website anda berada pada niche di mana pesaing yang muncul Enter The Key April 09, 2017 New Google SEO Bandung, Indonesia
https://www.qwords.com/reseller/private-label-domain-reseller/
Enter The Key
April 05, 2017
New Google SEO
Bandung, Indonesia
Enter The Key
April 05, 2017
New Google SEO
Bandung, Indonesia
Enter The Key
April 05, 2017
New Google SEO
Bandung, Indonesia
Tidak hanya mereka yang bekerja dikantoran saja yang menggunakan smartphone android, tapi mahasiswa, pelajar,sampai ibu-ibu dipasar juga menggunakan android.
Setiap peluncuran produk smartphone android baru terutama merek merek terkenal seperti Samsung selalu menyedot banyak perhatian media masa sehingga menarik minat masyarakat untuk membeli meskipun terkadang harganya terlampau mahal.
Tetapi tidak semua orang punya uang lebih untuk membeli hape baru, sehingga pilihan yang paling pas adalah dengan membeli smartphone bekas.
Masalahnya
Membeli smarpthone android bekas lebih rumit dibandingkan membeli hape baru.
Kita dituntut lebih teliti dan mengerti bagian mana saja dari hape yang perlu kita periksa.
Tujuannya tidak lain supaya kita mendapatkan barang yang berkualitas, jangan sampai kita beli smartphone yang baru dua hari digunakan langsung rusak.
Oleh karena itu, pada kesempatan kali ini mimin akan memberikan Tips Membeli Smartphone Android Bekas.
Tapi bukan sembarang BEKAS, HARUS BERKUALITAS
Dalam panduan ini, akan saya jelaskan bagian Hape mana saja yang harus anda perhatikan kondisinya.
Agar Apa..?
Supaya tidak rugi dan awet digunkan bertahun tahun...
Oke langsung saja kepenjelasannya..cekidot.
1. Cek Harga Pasaran
Sebelum anda membeli smartphone bekas, langkah pertama yang harus anda lakukan adalah mengecek harga pasaran merk dan tipe smartphone yang menjadi incaran anda.Memang sih tidak ada patokan harga yang pasti untuk barang second.
Tetapi dengan mengetahui harga pasaran, anda sudah bisa mengira-ngira berapa dana yang harus disiapkan.
Untuk mencari dan mengetahui harga pasaran hape second, mimin biasanya dapat informasi di forum jual beli facebook area tempat tinggal mimin.
Darisana mimin bisa mendapat gambaran berapa harga yang pantas untuk smartphone yang mimin inginkan, sekaligus mengetahui kontak penjual yang bisa dihubungi apabila ada barang yang mimin minati.
Mengapat tidak beli Smartphone Android bekas secara online min...?
Mimin tidak berani mengambil resiko beli barang second secara online, karena susah nanti kalau barang yang dibeli ternyata kualitasnya jelek, komplainnya kemana cobak.
2. Periksa Kondisi fisik (Body)
Sudah ketemu barang incaran beserta harga pasaran, selanjutnya adalah anda membuat janji untuk bertransaksi.Yang pertama kali mimin periksa adalah tampilan fisik (body) smartphone.
Karena dengan melihat kondisi fisiknya saja kita bisa tahu bagaimana si pemilik sebelumnya memperlakukan hapenya.
Kalau kondisi hape yang ditawarkan memiliki banyak lecet dimana mana sebaiknya urungkan niat anda untuk membelinya.
Atau jadikan alasan anda untuk menurunkan harga apabila anda sudah terlanjur kebelet ingin memiliki smartphone tersebut.
Mimin sih biasanya mencari hape yang pemilik sebelumnya cewek.
Karena menurut mimin cewek biasanya lebih rajin merawat barang-barangnya (Smartphone maksud mimin).
3. Tanyakan dan Periksa kelengkapan
Tahap selanjutnya sebelum memutuskan deal adalah menanyakan kelengkapan hape seperti Charger Asli dan Headset.Bila perlu sampai kotak-kotanya sekalian.
Kalau ternyata nih, smartphone yang mau dijual chargernya sudah KW, sebaiknya urungkan saja atau seperti tadi jadikan alasan untuk menurunkan harga.
4. Cek Sistem dan Pastikan Menggunakan Stock ROM
Selanjutnya coba hidupkan hape android yang ditawarkan, apakah tidak mengalami masalah saat booting.Yang tidak kalah penting pastikan sistem operasi yang digunakan masih Standard bukan OS Custom seperti Cyanogen, Leneage OS dll.
Mengapa..?
Karena smartphone yang menjalankan sistem operasi Custom biasanya pemilik sebelumnya itu seorang Opreker Android yang suka gonta ganti ROM seperti Mimin.
Yang namanya ngoprek android kalau sudah jadi hoby itu seperti candu (Cieee).
Setiap ada Custom ROM baru pasti ingin mencoba.
Mimin malah pernah dalam satu minggu Flash Smarphone android sampai 3 kali...sekali lagi....tiga kali.
Smartphone yang sering diflash akan mengalami kerusakan pada bagian EEMC.
EEMC ini adalah bagian penyimpanan sistem yang jika rusak sulit untuk diperbaiki.
Biasanya harus diganti.
Oleh karena sebaiknya abaikan saja smartphone yang menggunakan custom ROOM.
5. Periksa LCD
Bagian smartphone yang perlu dicek selanjutnya adalah LCD (layar).Pada saat kondisi mati kita tidak bisa memastikan bagaimana kondisi layar, untuk itu hape wajib dihidupkan.
Seandainya setelah dihidupkan layar memiliki bintik hitam yang tidak bisa dibersihkan, sebaiknya urungkan saja niat anda untuk membeli hape tersebut.
Bintik hitam pada layar (baik kecil apalagi besar ) menandakankan kerusakan pada LCD smartphone yang disebakan oleh benturan.
Kalau untuk urusan ini sebaiknya diabaikan saja barangnya, karena biaya ganti LCD lumayan mahal.
6. Test Kamera
Yang penting untuk anda periksa selanjutnya adalah bagian kamera, baik itu depan dan belakang.Pastikan kamera depan dan belakang masih berfungsi dan tidak lecet pada bagian lensa.
Lecet pada bagian lensa menyebakan gambar hasil jepretan menjadi buram.
7. Test Mic dan Speaker
Mic pada smartphone berfungsi agar lawan bicara kita mendengar kata yang kita ucapkan,sedangkan speaker berfungsi untuk mengeluarkan suara dari lawan bicara.Lakukan test panggilan agar anda tidak membeli smartphobne TULI atau BISU.
Tuli artinya anda tidak mendengar suara lawan bicara.
Bisu artinya alawan bicara tidak mendegar suara anda.
8. Cek Fungsi Tombol
Pergantian LCD pada smartphone android biasanya membawa satu masalah yaitu tombol Home dan Back (Recent Apps) menjadi kurang sensitif.Ini disebabkan oleh pergantian LCD menggunakan sparepart dengan kualitas rendah, atau kerusakan lain yang lebih parah.
Smartphone android dengan kondisi ini wajib anda abaikan karena hanya akan menyusahkan anda saja kelak
9. Test dayan tahan baterai
Jalankan test pengisian daya dengan Charger smartphone dan pastikan pula daya baterai terisi dengan normal.Apabila daya tidak terisi (tidak mau dicharge) kemungkinan terjadi kerusakan pada Portnya.
Pengalaman mimin harga perbaikan Port untuk charger tidak terlalu mahal
Tapi kondisi itu tidak harus anda jadikan alasan untuk menerima smartphone dengan kondisi yang demikian.
Cek juga penggunaan daya baterai dalam waktu setidaknya15 menit.
Apabila daya yang terpakai terlihat tidak normal, patut anda tanyakan kepada penjual.
10. Garansi
Yang terahir adalah pastikan ada garansi dari pihak penjual bahwa smartphone android yang anda beli tidak akan rusak dalam waktu dekat (tentunya dengan penggunaan normal).Masa berlaku garansi smartphone bekas tidak bisa disamakan dengan barang baru yang garansinya sampai setahun.
1 minggu penggunaan sudah cukup membuktikan kalau hape yang anda beli dalam kondisi yang bagus.
Akan lebih baik lagi, jika smartphone yang akan anda beli umurnya belum setahun sehingga masa berlaku garansi toko masih ada.
Seandainya suatu saat ada kerusakan pada hape, anda masih bisa melakukan perbaikan secara gratis diservice resmi.
Penutup
Sebagai penutup mimin hanya ingin menambahkan jika dalam membeli smartphone android bekas tidak boleh buru-buru.
Lakukan test seperti yang telah mimin jelaskan dan jangan pernah malu untuk bertanya kepada penjual.
Saran mimin, kalau anda masih tidak percaya diri untuk membeli smartphone android bekas sendiri setelah membaca tips ini, sebaiknya ajak teman atau kerabat yang lebih mengerti seluk beluk android, agar anda tidak terhindar dari rayuan pedagang nakal.
Sumber : http://banggras.blogspot.co.id/
https://code.tutsplus.com/tutorials/html5-apps-positioning-with-geolocation--mobile-456
At the heart of every location-based application is positioning and geolocation. In this tutorial you will learn the geolocation capabilities of HTML5 and the basic principles needed to take advantage of them in your next HTML5 app!
Introduction
Three years ago, the smartphone “boom” was still an uncertain possibility. Today, we are surrounded by a society of smart phone addicts who live as if their lives cannot continue without instant, mobile access to the web, e-mail, and apps for every occasion. Mobile devices have come a long way in just three short years, and now support a wide range of useful features beyond making phone calls. For location-challenged individuals like myself, geolocation is one of the most useful additions. Many iPhone and Android devices have been fitted with GPS hardware that can produce reliable geographical data, and in this article we will discuss the geolocation capabilities of HTML5. My aim is to help you take advantage of geolocation technology in your next project by walking you through the following topics:
- Browser geolocation and how it works
- How Asynchronous function calls work
- How to use the getCurrentPosition API
- What's in geolocation data
- How to fall back on IP address based geolocation when browsers don't provide native support
- How to display a map using geolocation data
- How to use the watchPosition and clearWatch APIs
Browser geolocation and how it works
To detect the location of a client device in the past, one would typically have to inspect the client IP address and make a reasonable guess as to the where that device was located. However, as part of the HTML5 efforts, the W3C has developed a set of APIs to effectively allow the client-side device (i.e. your iPhone 3G+, Android 2.0+ phones, or even your conventinal desktop browsers) to retrieve geographic positioning information with JavaScript. When we look at the web browsers landscape, the native support for geolocation is beginning to find its way into mainstream applications at a slow and steady pace. One substantial application that uses geolocation is Google Maps. As I'm writting this article, the geolocation support is fully available in only a few browsers (see below), but it looks like most modern browsers are adopting this useful functionality:
- Firefox 3.5+: Yes
- Chrome 5 beta: Yes
- iPhone Safari: Yes
- Opera 10.5 dev build: Yes
- Safari: No
- Internet Explorer: No
For those that are interested in reading on W3C geolocation specs here is the link to follow. One section worth talking about here is section 6.2.8 titled: "The geolocation API must be agnostic to the underlying sources of location information". It's suggesting that the underlying technology on the device may achieve geolocation via either GPS, cell tower triangulation or possibly other techniques. The geolocation API won't identify how location information was determined. Not knowing how geolocation was achieved is usually not a problem, but you may notice that the accuracy of location information may vary greatly depending on the technique used.
Asynchronous functions
An Asynchronous function is one that is executed outside of the main program flow. In the context of JavaScript, it means our code will call a function and then continue to execute statements before the function returns. When following this model, our code should look something like this:
// the function we want to call
do_something(handle_response_to_do_something);
// the function that will handle the response of the above function call
function handle_response_to_do_something(response)
{
alert(response);
}
Since the response to do_something() function is given to us asynchronously, we must nominate a function that will receive a response and use it. Therefore we must define another function, handle_response_to_do_something(), that displays the result in a dialog.
You may now be asking why we need to know this? Well, because when our application tries to query its location, the user of the device must agree to share his location information with our application. If this action was not an asynchronous one, then everything inside the browser would freeze until the user responds, and that is obviously less than dersirable.
getCurrentPosition API
Let's talk about the geolocation API. The first API that we are interested in working with is the getCurrentPosition() API. When called, it must immediately return and then asynchronously acquire a new Position object. If successful, this method must invoke its associated successCallback argument with a Position object as an argument. If the attempt fails, and the method was invoked with a non-null errorCallback argument, this method must invoke the errorCallback with a PositionError object as an argument.
So let's start by creating our HTML5 page which is nice and easier than setting up an XHTML 1.0 page. All we need to start with is this:
1 2 3 4 5 6 7 8 | <! DOCTYPE html> < html > < body > < div > </ div > </ body > </ html > |
On line 1, we use the new <!DOCTYPE html> DTD to define this as an HTML5 page. Next, we will place a button on our page for users to initiate the process of detecting their location.
1 2 3 4 5 6 7 8 | <! DOCTYPE html> < html > < body > < div > < button id=”btnInit” >Find my location</ button > </ div > </ body > </ html > |
Now we will wire the button up with JavaScript to initiate the process of querying the current location. Note how the script tags do not require type attribute thanks to some new HTML5 sugar.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <! DOCTYPE html> < html > < head > < script src = "js/jquery-1.4.2.min.js" ></ script > < script > jQuery(window).ready(function(){ jQuery("#btnInit").click(initiate_geolocation); }); function initiate_geolocation() { navigator.geolocation.getCurrentPosition(handle_geolocation_query); } function handle_geolocation_query(position){ alert('Lat: ' + position.coords.latitude + ' ' + 'Lon: ' + position.coords.longitude); } </ script > </ head > < body > < div > < button id = "btnInit" >Find my location</ button > </ div > </ body > </ html > |
In the above code we should note the use of the jQuery JavaScript framework to help us get started quickly, otherwise we'd have to write extra code to detect page readiness that has nothing to do with geolocation. With the first script tag, we load jQuery framework and then use it immediately at the start of the second script tag to assign a click event to the button we defined earlier. We also wrote the initiate_geolocation() function to execute when the button is pressed and the handle_geolocation_query(position) function to asynchronously get the geolocation data through the position argument.
At this point if you run the above code in a browser that supports geolocation (namely Firefox 3.5+ and iPhone Safari) you should see your Latitude and Longitude coordinates displayed to you. This works if the user agrees to share his location information with the website/web application, but what if he doesn't what to share that information? or what if there is a problem getting that information?
It would be nice to be notified of such problems. Fortunately, our code can detect these issues by defining another function that is executed only when there is a problem retrieving geolocation data. So, let's look at how our code will need to change in order to detect problems:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <! DOCTYPE html> < html > < head > < script src = "js/jquery-1.4.2.min.js" ></ script > < script > jQuery(window).ready(function(){ jQuery("#btnInit").click(initiate_geolocation); }); function initiate_geolocation() { navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors); } function handle_errors(error) { switch(error.code) { case error.PERMISSION_DENIED: alert("user did not share geolocation data"); break; case error.POSITION_UNAVAILABLE: alert("could not detect current position"); break; case error.TIMEOUT: alert("retrieving position timed out"); break; default: alert("unknown error"); break; } } function handle_geolocation_query(position){ alert('Lat: ' + position.coords.latitude + ' Lon: ' + position.coords.longitude); } </ script > </ head > < body > < div > < button id = "btnInit" >Find my location</ button > </ div > </ body > </ html > |
In the above code we have now introduced a new function, handle_errors that takes in an error argument. By inspecting the error argument, we can check for the kind of error that has occurred. Normally, the browser will identify one of these three errors as the cause:
- User chose to not share location data
- Device was unable to obtain position data
- Device timedout while waiting to retrieve position data
Geolocation data
If we inspect what we received from the geolocation API, we'll see the coords and timestamp fields. The timestamp field simply denotes the time at which the instance of geolocation data was created. The coords attribute contains a set of geographic coordinates together with their associated accuracy, as well as a set of other optional attributes such as altitude and speed. The following is the description of them according to the W3C specs:
- The latitude and longitude attributes are geographic coordinates specified in decimal degrees.
- The accuracy attribute denotes the accuracy level of the latitude and longitude coordinates. It is specified in meters and must be supported by all implementations.
- The altitude attribute denotes the height of the position, specified in meters above the WGS84ellipsoid. If the implementation cannot provide altitude information, the value of this attribute must be null.
- The altitudeAccuracy attribute is specified in meters. If the implementation cannot provide altitude information, the value of this attribute must be null.
- The heading attribute denotes the direction of travel of the hosting device and is specified in degrees counting clockwise relative to the true north. If the implementation cannot provide heading information, the value of this attribute must be null.
- The speed attribute denotes the current ground speed of the hosting device and is specified in meters per second. If the implementation cannot provide speed information, the value of this attribute must be null.
You may only access some of these fields if the target device actually supports them according to the above description, but it's still important to know they are there. The accuracy attribute in particular may be useful in your application to detect reliability.
IP address based Geolocation
So now the obvious question is what about those browsers that don't support geolocation at all? The answer is that we must use an external geolocation service. These services do their best to map the IP address of a device to geographic locations using large geolocation databases. Usually they do a good job, but at times they may suffer from the following issues:
- IP addresses may be associated with the wrong location (e.g., the wrong postal code, city or suburb within a metropolitan area).
- Addresses may be associated only with a very broad geographic area (e.g., a large city, or a state). Many addresses are associated only with a city, not with a street address or latitude/longitude location.
- Some addresses will not appear in the database and therefore cannot be mapped (often true for IP numbers not commonly used on the Internet).
The important thing to remember is that when an external geolocation service is used, the accuracy is not as good as geolocation native to the device, and in some scenarios it may be completely off. Additionally, such services do not provide any information regarding the altitude, speed or heading of the device. Regardless, when GPS or triangulation are not available, they are a good fallback.
YQL Geo Library is a dedicated and lightweight library that lets you perform geolocation using good old Yahoo services. This library can do other things which I'll leave to you to discover, but for now let's look at how we should modify our code to successfully detect the location on both supporting and non-supporting browsers:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | <! DOCTYPE html> < html > < head > < script src = "js/jquery-1.4.2.min.js" ></ script > < script src = "js/yqlgeo.js" ></ script > < script > jQuery(window).ready(function(){ jQuery("#btnInit").click(initiate_geolocation); }) function initiate_geolocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(handle_geolocation_query, handle_errors); } else { yqlgeo.get('visitor', normalize_yql_response); } } function handle_errors(error) { switch(error.code) { case error.PERMISSION_DENIED: alert("user did not share geolocation data"); break; case error.POSITION_UNAVAILABLE: alert("could not detect current position"); break; case error.TIMEOUT: alert("retrieving position timedout"); break; default: alert("unknown error"); break; } } function normalize_yql_response(response) { if (response.error) { var error = { code : 0 }; handle_error(error); return; } var position = { coords : { latitude: response.place.centroid.latitude, longitude: response.place.centroid.longitude }, address : { city: response.place.locality2.content, region: response.place.admin1.content, country: response.place.country.content } }; handle_geolocation_query(position); } function handle_geolocation_query(position){ alert('Lat: ' + position.coords.latitude + ' ' + 'Lon: ' + position.coords.longitude); } </ script > </ head > < body > < div > < button id = "btnInit" >Find my location</ button > </ div > </ body > </ html > |
So what's new in the above code? Three things:
- We are importing the YQL Geolocation Library into the page
- Inside the initiate_geolocation() function, the code checks to make sure geolocation is natively supported. If not it makes use of the YQL Geolocation Library.
- Finally we've defined the normalize_yql_response(response) function to turn the result of the YQL Geolocation Library into an output format similar to the W3C geolocation API specs.
Display a map using Geolocation
So far we have been able to retrieve the latitude and longitude coordinates of the device but when one is lost in the middle of a big city, latitude and longitude coordinates alone aren't going to be all that helpful. We must convert these coordinates into some form that relates to users more naturally, like a map. Let's display a map of the current location, using Google's Static Map API as shown in the following code section:
function handle_geolocation_query(position)
{
var image_url = "http://maps.google.com/maps/api/staticmap?sensor=false¢er=" + position.coords.latitude + "," +
position.coords.longitude + "&zoom=14&size=300x400&markers=color:blue|label:S|" +
position.coords.latitude + ',' + position.coords.longitude;
jQuery("#map").remove();
jQuery(document.body).append(
jQuery(document.createElement("img")).attr("src", image_url).attr('id','map')
);
}
With the help of jQuery, we modified the handle_geolocation_query(position) function to create an image element and add it to the page. The src attribute of the image element is set to a constructed URI which Google Static Map API will inspect and generate a map image for.
watchPosition and clearWatch APIs
Now that we know how getCurrentPosition API works lets quickly look at the watchPosition API. When called, it must immediately return and then asynchronously start a watch process defined by the following set of steps:
- Acquire a new Position object. If successful, invoke the associated successCallback with a Position object as an argument. If the attempt fails, and the method was invoked with a non-null errorCallback argument, this method must invoke the errorCallback with a PositionError object as an argument.
- Invoke the appropriate callback with a new Position object every time the implementation determines that the position of the hosting device has changed.
This method returns an integer value that uniquely identifies the watch process. When the clearWatch() function is called with this identifier, the watch process must stop acquiring any new position fixes and must cease invoking any callbacks.
So in other words this API enables our code to repeatedly receive location information as the device location changes. Let's look at the scaffolding page we need to start with:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <! DOCTYPE html> < html > < head > < script src = "js/jquery-1.4.2.min.js" ></ script > < script > jQuery(window).ready(function(){ jQuery("#btnInit").click(initiate_watchlocation); jQuery("#btnStop").click(stop_watchlocation); }); var watchProcess = null; function initiate_watchlocation() { } function stop_watchlocation() { } function handle_errors(error) { switch(error.code) { case error.PERMISSION_DENIED: alert("user did not share geolocation data"); break; case error.POSITION_UNAVAILABLE: alert("could not detect current position"); break; case error.TIMEOUT: alert("retrieving position timedout"); break; default: alert("unknown error"); break; } } function handle_geolocation_query(position) { } </ script > </ head > < body > < div > < button id = "btnInit" >Monitor my location</ button > < button id = "btnStop" >Stop monitoring</ button > </ div > < div id=”info”></ div > </ body > </ html > |
As you can see the code is very much the same as the code we used in the "getCurrentPostion API" section earlier. There are a couple of additions however.
- First we have added a new button to allow us to stop the watch process with the stop_watchlocation() function to handle its click.
- We have a watchProcess variable to keep track of the watch process.
To start the process we need to add the code that calls the watchPosition() API like the code below:
1 2 3 4 5 | function initiate_watchlocation() { if (watchProcess == null) { watchProcess = navigator.geolocation.watchPosition(handle_geolocation_query, handle_errors); } } |
To stop the process we need to add the code that calls the clearWatch() API like the code below:
1 2 3 4 5 6 7 | function stop_watchlocation() { if (watchProcess != null) { navigator.geolocation.clearWatch(watchProcess); watchProcess = null; } } |
Finally, we handle displaying the map and additional data (e.g. position, accuracy) like this:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | function handle_geolocation_query(position) { var text = "Latitude: " + position.coords.latitude + "< br />" + "Longitude: " + position.coords.longitude + "< br />" + "Accuracy: " + position.coords.accuracy + "m< br />" + "Time: " + new Date(position.timestamp); jQuery("#info").html(text); var image_url = "http://maps.google.com/maps/api/staticmap?sensor=false¢er=" + position.coords.latitude + ',' + position.coords.longitude + "&zoom=14&size=300x400&markers=color:blue|label:S|" + position.coords.latitude + ',' + position.coords.longitude; jQuery("#map").remove(); jQuery(document.body).append( jQuery(document.createElement("img")).attr("src", image_url).attr('id','map') ); } |
Conclusion
I hope that this tutorial has given you a head start into the world of geolocation APIs. Good luck and try to make your next project take advantage of geolocation benefits!
Enter The Key
April 04, 2017
New Google SEO
Bandung, Indonesia