d

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.

15 St Margarets, NY 10033
(+381) 11 123 4567
ouroffice@aware.com

 

KMF

a

The unofficial Fathom Analytics API

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 BeyondCodeFathomAnalyticsFathomAnalytics($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 BeyondCodeFathomAnalyticsFathomAnalytics($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.

Filed in:
News

Credit: Source link

Previous Next
Close
Test Caption
Test Description goes like this