Query Streams memungkinkan akses langsung ke database MySQL untuk situs WordPress yang dihosting di SiteGround, memungkinkan pengguna teknis untuk secara efisien membuat dan berbagi kueri SQL langsung melalui Excel dan Google Sheets tanpa perlu VPN atau konfigurasi firewall yang rumit. Panduan komprehensif ini mencakup langkah-langkah penting untuk menghubungkan agen Query Streams ke lingkungan MySQL SiteGround, mengkonfigurasi kredensial database yang diperlukan, dan membangun kueri khusus WordPress yang efektif untuk skenario ekstraksi data umum termasuk wp_posts, wp_users, dan tabel bidang kustom. Setelah dikonfigurasi dengan benar, kueri ini dapat dibagikan dengan aman kepada pengguna non-teknis yang dapat dengan mudah mengakses data WordPress secara real-time melalui berbagai add-on spreadsheet. Proses ini menghilangkan kebutuhan akan ekspor database yang rumit atau berbagi kredensial sensitif sambil mempertahankan langkah-langkah keamanan baca-saja yang kuat.
1. Masuk dan buka akun siteground.com Anda.
Setelah masuk, buka opsi Alat Situs. Buka Situs -> MySQL

2. Klik tab Jarak Jauh, Anda akan membutuhkan IP eksternal Anda.
Anda memerlukan alamat IP eksternal dari jaringan tempat agen Query Streams Anda berjalan. Untuk menemukannya, kunjungi situs web seperti WhatIsMyIP.com, IPChicken.com, atau ipinfo.io. dari jaringan/lokasi yang sama tempat agen diinstalPastikan Anda memeriksa alamat IP dari lokasi jaringan yang benar, bukan dari kantor lain, jaringan rumah, atau koneksi jarak jauh.

3. Klik tab pengguna dan buat pengguna baru.

Edit pengguna tersebut, pastikan untuk menambahkan basis data ke pengguna baru.

Saya merekomendasikan mode baca saja.

Catat nama pengguna, kata sandi, dan basis data Anda! Anda akan membutuhkannya.
4. Buka agen jaringan Anda https://:1823
Klik Sumber Data –> Koneksi –> + Tambah Koneksi




Simpan konfigurasi Anda.
5. Buka Google Sheets atau Add-on Excel Anda
Dalam contoh ini, kita akan menggunakan Google Sheets.
Anda perlu mendapatkan awalan basis data Anda, karena sebagian besar instalasi WordPress memiliki awalan acak.
SELECT SUBSTRING_INDEX(table_name, '_', 1) as detected_prefix, COUNT(*) as table_count, GROUP_CONCAT( CASE WHEN table_name LIKE '%_posts' THEN 'posts' WHEN table_name LIKE '%_users' THEN 'users' WHEN table_name LIKE '%_options' THEN 'options' WHEN table_name LIKE '%_comments' THEN 'comments' WHEN table_name LIKE '%_postmeta' THEN 'postmeta' WHEN table_name LIKE '%_usermeta' THEN 'usermeta' END ) as wordpress_core_tables, CASE WHEN COUNT(*) >= 10 THEN 'Instalasi WordPress Utama' WHEN COUNT(*) >= 5 THEN 'Kemungkinan Instalasi WordPress' ELSE 'Plugin/Tabel Kustom' END as installation_type FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name LIKE '%_%' GROUP BY SUBSTRING_INDEX(table_name, '_', 1) HAVING wordpress_core_tables IS NOT NULL ORDER BY table_count DESC;

Sekarang Anda sudah memiliki awalan (prefix) Anda.
5. Berikut beberapa contoh kueri yang dapat dijalankan. Pastikan untuk menggunakan fitur Cari/Ganti awalan dengan awalan yang sesuai untuk situs Anda.
.
Penting bagi Anda untuk Mencari dan Mengganti awalan Anda.
Ikhtisar Lalu Lintas Harian (30 Hari Terakhir)
SELECT DATE(last_counter) as visit_date, COUNT(DISTINCT ip) as unique_visitors, COUNT(*) as total_visits, SUM(hits) as page_views, ROUND(SUM(hits) / COUNT(DISTINCT ip), 2) as pages_per_visitor, DAYNAME(last_counter) as day_of_week FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY DATE(last_counter) ORDER BY visit_date DESC;
Distribusi Geografis Pengunjung
SELECT CASE WHEN location IS NULL OR location = '' THEN 'Lokasi Tidak Diketahui' ELSE location END as visitor_location, COUNT(DISTINCT ip) as unique_visitors, COUNT(*) as total_visits, SUM(hits) as page_views, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) as percentage_of_traffic, ROUND(SUM(hits) / COUNT(*), 2) as avg_pages_per_visit FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY visitor_location ORDER BY unique_visitors DESC LIMIT 15;
Analisis Perilaku Pengguna & Sesi
SELECT CASE WHEN hits = 1 THEN 'Bounce (1 halaman)' WHEN hits BETWEEN 2 AND 3 THEN 'Quick Browse (2-3 halaman)' WHEN hits BETWEEN 4 AND 7 THEN 'Engaged (4-7 halaman)' WHEN hits BETWEEN 8 AND 15 THEN 'Very Engaged (8-15 halaman)' WHEN hits > 15 THEN 'Power User (15+ halaman)' END as engagement_level, COUNT(*) as visitor_count, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) as percentage, ROUND(AVG(hits), 2) as avg_pages_in_group, MIN(hits) as min_pages, MAX(hits) sebagai max_pages DARI nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY engagement_level ORDER BY avg_pages_in_group;
Pola Penggunaan Perangkat & Teknologi
SELECT CASE WHEN agent LIKE '%Mobile%' OR agent LIKE '%Android%' OR agent LIKE '%iPhone%' OR agent LIKE '%BlackBerry%' THEN 'Mobile' WHEN agent LIKE '%Tablet%' OR agent LIKE '%iPad%' THEN 'Tablet' WHEN agent LIKE '%Windows%' OR agent LIKE '%Macintosh%' OR agent LIKE '%Linux%' OR agent LIKE '%Ubuntu%' THEN 'Desktop' WHEN agent LIKE '%bot%' OR agent LIKE '%Bot%' OR agent LIKE '%spider%' THEN 'Bot/Crawler' ELSE 'Unknown Device' END as device_type, CASE WHEN agent LIKE '%Chrome%' AND agent NOT LIKE '%Chromium%' THEN 'Chrome' WHEN agent LIKE '%Firefox%' THEN 'Firefox' WHEN agent LIKE '%Safari%' AND agent NOT LIKE '%Chrome%' THEN 'Safari' WHEN agent LIKE 'ge%' THEN 'Edge' WHEN agent LIKE '%Opera%' THEN 'Opera' WHEN agent LIKE '%bot%' OR agent LIKE '%Bot%' THEN 'Bot' ELSE 'Other Browser' END as browser_type, COUNT(*) as visits, COUNT(DISTINCT ip) as unique_visitors, SUM(hits) as page_views, ROUND(AVG(hits), 2) as avg_pages_per_visit, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) as percentage_of_traffic FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) AND agent IS NOT NULL GROUP BY device_type, browser_type ORDER BY visits DESC LIMIT 20;


