PHP wrapper for Histats.com statistics API using headless browser automation
galangwijaya/histats-wrapper-api is a Laravel package for php wrapper for histats.com statistics api using headless browser automation.
It currently has 0 GitHub stars and 6 downloads on Packagist (latest version v1.0.0).
Install it with composer require galangwijaya/histats-wrapper-api.
Discover more Laravel packages by galangwijaya
or browse all Laravel packages to compare alternatives.
Last updated
PHP wrapper untuk mengakses statistik dari Histats.com. Library ini menggunakan headless browser (Chrome) untuk mengambil data karena Histats menggunakan JavaScript untuk render konten.
composer require galangwijaya/histats-wrapper-api
Setelah install, jalankan untuk menginstall ChromeDriver:
composer run install-driver
Atau manual:
vendor/bin/bdi detect drivers
<?php
use Histats\HistatsClient;
$client = new HistatsClient();
// Login
$client->login('[email protected]', 'your-password');
// Get all sites
$sites = $client->getSites();
foreach ($sites as $site) {
echo "{$site->name}: {$site->visitorsToday} visitors today\n";
}
// Select a site and get summary
$client->selectSite($sites[0]->id);
$summary = $client->getSummary();
echo "Total visitors: {$summary->totalVisitors}\n";
echo "Total page views: {$summary->totalPageViews}\n";
echo "Users online: {$summary->usersOnline}\n";
// Logout
$client->logout();
<?php
namespace App\Services;
use Histats\HistatsClient;
class HistatsService
{
private HistatsClient $client;
public function __construct()
{
$this->client = new HistatsClient();
}
public function getStats(string $email, string $password, int $siteId): array
{
$this->client->login($email, $password);
$this->client->selectSite($siteId);
$summary = $this->client->getSummary();
$this->client->logout();
return [
'total_visitors' => $summary->totalVisitors,
'total_page_views' => $summary->totalPageViews,
'today_visitors' => $summary->todayVisitors,
'today_page_views' => $summary->todayPageViews,
'users_online' => $summary->usersOnline,
];
}
}
| Method | Description |
|--------|-------------|
| login(string $email, string $password): bool | Login ke Histats |
| logout(): void | Logout dan tutup browser |
| isAuthenticated(): bool | Cek status login |
| getSites(): Site[] | Ambil semua site |
| selectSite(int $siteId): void | Pilih site untuk operasi selanjutnya |
| getSummary(): Summary | Ambil summary statistik |
| getTrafficStats(): TrafficStats | Ambil statistik traffic harian |
| getOnlineVisitors(): OnlineVisitors | Ambil data pengunjung online |
| getGeolocation(): GeolocationStats | Ambil statistik lokasi |
| getReferrers(): ReferrerStats | Ambil statistik referrer |
| getSearchEngines(): SearchEngineStats | Ambil statistik search engine |
$site->id; // int - Site ID
$site->name; // string - Site name/domain
$site->url; // string - Site URL
$site->visitorsToday; // int - Visitors today
$site->pageViewsToday; // int - Page views today
$site->totalVisitors; // int - Total visitors
$site->totalPageViews; // int - Total page views
$site->usersOnline; // int - Users currently online
$summary->totalVisitors; // int - Total visitors
$summary->totalPageViews; // int - Total page views
$summary->todayVisitors; // int - Visitors today
$summary->todayPageViews; // int - Page views today
$summary->usersOnline; // int - Users online
$summary->uniqueVisitors; // int - First time visitors today
$summary->returningVisitors; // int - Returning visitors today
$summary->pageViewsPerVisit; // float - Average page views per visit
$summary->avgTimeOnSite; // float - Average visit length (seconds)
use Histats\Config;
use Histats\HistatsClient;
$config = new Config();
$config->timeout = 60; // Request timeout in seconds
$config->retryAttempts = 3; // Number of retry attempts
$config->retryDelay = 1000; // Delay between retries (ms)
$client = new HistatsClient($config);
Histats.com menggunakan JavaScript untuk memuat data statistik secara dinamis. Library ini menggunakan headless Chrome browser melalui php-webdriver untuk:
Pastikan ChromeDriver sudah terinstall:
composer run install-driver
Install Chrome/Chromium di sistem:
# Ubuntu/Debian
sudo apt install chromium-browser
# macOS
brew install --cask google-chrome
# Windows
# Download dari https://www.google.com/chrome/
Tingkatkan timeout di config:
$config = new Config();
$config->timeout = 120;
$client = new HistatsClient($config);
MIT License
Pull requests are welcome. For major changes, please open an issue first.