Share buttons that stay out of the way.no account required
AddToSite

← All customization

Behind the scenes

Point the counts at your own server

The share pings and the count lookups both go to one host, and that host is a setting. Name your own and nothing else changes: the same two endpoints are called with the same two shapes, at an address you operate.

The code

<div class="ats_kit ats_kit_size_32">
  <a class="ats_btn_facebook"></a>
  <a class="ats_btn_x"></a>
  <a class="ats_btn_linkedin"></a>
  <a class="ats_dd"></a>
</div>

The two endpoints

A GET that answers with counts, and a beacon that reports one share. Both are fire-and-forget from the page’s point of view — if either fails the buttons still share, and only the numbers are missing.

GET  {api}/count?url=<encoded>&also=<encoded>
     -> { "networks": { "facebook": 12 }, "total": 12 }

POST {api}/share
     <- { "network": "facebook", "url": "https://…", "v": "1.0.0" }

Unset, it is ours

Leave the option out and both go to //data.addtosite.com/v1 over whichever scheme your page is already using.

Or send nothing at all

If you want no pings rather than your own, one option stops them. Counts then have nothing to count, which is the trade.

window.ats_config = { track: false };

Live demo

An article worth passing on

The endpoint is redirected for this page, and nothing is actually sent: every documentation page here runs with tracking switched off.

Services (3 selected)

Button size

Shape

Behaviour

<script>window.ats_config = window.ats_config || {}; window.ats_config.api = "https://data.example.com/v1";</script>

<div class="ats_kit ats_kit_size_32">
  <a class="ats_btn_facebook"></a>
  <a class="ats_btn_x"></a>
  <a class="ats_btn_linkedin"></a>
  <a class="ats_dd"></a>
</div>

<script async src="//static.addtosite.com/widget.js"></script>

Related

More in Behind the scenes