News

The unofficial Fathom Analytics API

Published
The unofficial Fathom Analytics API image

Fathom Analytics is a privacy-first analytics provider and a few months ago we made the switch to using them over Google Analytics and it’s been a nice change. One feature that we had here on Laravel News was a most popular posts section that we haven’t been able to duplicate just yet with Fathom because they haven’t officially released their API, though this is coming soon.

Marcel Pociot with Beyond Code built a new “unofficial Fathom API” that allows you to get stats data and build features like what we wanted plus numerous other things. Here is how to get started using this new package.

Install the Fathom API

composer require beyondcode/fathom-api

Get your site id

To pull data out you’ll need your site id and you can find this by running something like the following:

$analytics = new BeyondCode\FathomAnalytics\FathomAnalytics($email, $pass);
$sites = $analytics->getSites();
dd($sites);

When you load this in the browser you’ll get an array of all the sites you have registered with Fathom and can then grab the site id for use in the other API calls.

Get a list of popular pages

For making a list of your popular pages you can call the getData method, passing a Carbon object for the start and end dates:

$analytics = new BeyondCode\FathomAnalytics\FathomAnalytics($email, $pass);
$data = $analytics->getData($siteId, Carbon::now()->startOfMonth());
dd($data);

As you can see this gives you an array of all the data from your account and you can then pull out your most popular pages:

foreach ($data->page_stats as $page) {
echo '<li>'.$page->pathname.' - '.$page->views.'</li>';
}

Of course, you’d want to heavily cache the results so you aren’t making a ton of requests.

This just scratches the surface of what can be done with it, and it’s a really small package that utilizes Symfony’s HttpBrowser, DomCrawler, and HttpClient to get the data. Take a look at the core class file to see how it works.

Eric L. Barnes photo

Eric is the creator of Laravel News and has been covering Laravel since 2012.

Filed in

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article