Integration Guides

Complete documentation for integrating with Button Solutions.

Introduction

Welcome to the public documentation for Button Solutions.

We have a few levels of protection, and all are opt-in:

For newcomers, we suggest first observing traffic for a bit, and then enabling a mitigation strategy.

Frontend / Client-side integration

Integration with the client side is as easy as adding this line to your header (first script loaded):

<html>
<head>
<script src="https://script.button.solutions/hi" defer async></script>
<!-- ... -->
</html>

Hide the twirling space button:

<script src="https://script.button.solutions/hi?invisible=true" defer async></script>

Enable waf-style redirection to main page when the button cookie is missing.

<script src="https://script.button.solutions/hi?mode=redirect" defer async></script>
This is essentially site-protect, which is complete for Wordpress as a downloadable plugin. Contact us if you need this.
Google Tag Manager Integration

Add one of the options below to your tag manager:

<script src="https://script.button.solutions/hi" defer async></script>

Hide the twirling space button:

<script src="https://script.button.solutions/hi?invisible=true" defer async></script>
Ad Protect Configuration: contact us for details.

[contact us for details]

Refunds from Google

Go to your dashboard, and then click "Export Bad IPs.

The clicked button upon export completion will automatically open a new tab where you can begin to fill out a refund request.

Bad IP export / import into Google

This is only available in the click analysis tooltip after we have collected at least one record of a click from one of the ad platforms we support.

Click on "Copy bad ips to Google", and it will redirect you to your google ads account page, where you can paste the list.

Adding a tracked conversion page

If your path matches the following it will prioritized in the analysis:

(pricing|thank|contact|book|cart|checkout|shipping|billing|account|basket|delivery|success|order|payment|paying)

For custom additions please contact us .

Silent captcha integration into forms

We replace recaptcha / turnstile-style verification with a silent option.

<form>
  <!-- ... -->
  <div class="button-solutions-captcha"></div>
  <!-- ... -->
</form>

Endpoint:

POST https://[ask us].buttons.solutions/siteverify

Request:

{
  "sitekey": "[your site key]",
  "response": "[response inserted into the \"button-solutions-captcha\" div]"
}

Response:

{
  "success": true,
  "error": [error detail object],
  "challenge": {
    "timestamp": "[timestamp string]",
    "origin": "[origin]"
  }
}
Vue captcha integration example
const submitUser = async () => {
  try {
    const buttonUser = document.querySelector('.button-solutions-captcha input[type="hidden"]')
    const res = await fetch(`${apiUrl}/signup`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        fullname: form.fullname,
        email: form.email,
        password: form.password,
        passwordConfirmation: form.passwordConfirmation,
        button: buttonUser.value,
      })
    });
  } catch (e) {
    // ...
  }
}

Need Help?

If you have questions or need assistance, please contact our support team.

[email protected]