Stop Click Fraud With Just A Few Lines Of Code

Add Bluefield Identity to your website. It takes just a few minutes and reduces click fraud and content scraping.


add_action('init', 'send_api_request');
function send_api_request() {
// YOUR BLUEFIELD IDENTITY CLIENT REMOTE KEY GOES HERE
$remote_key = 'your_unique_key';
// Optional client parameters (up to 32 characters or NULL).
$client_var_1 = isset($_POST['clientVar1']) ? substr($_POST['clientVar1'], 0, 32) : null;
$client_var_2 = isset($_POST['clientVar2']) ? substr($_POST['clientVar2'], 0, 32) : null;
$client_var_3 = isset($_POST['clientVar3']) ? substr($_POST['clientVar3'], 0, 32) : null;
$client_var_4 = isset($_POST['clientVar4']) ? substr($_POST['clientVar4'], 0, 32) : null;
$client_var_5 = isset($_POST['clientVar5']) ? substr($_POST['clientVar5'], 0, 32) : null;
$client_var_6 = isset($_POST['clientVar6']) ? substr($_POST['clientVar6'], 0, 32) : null;
$api_url = 'https://webservice.bluefieldidentity.com';
$visitor_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
$user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
$query_string = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : '';
$request_asset = isset($_SERVER['HTTP_URL']) ? $_SERVER['HTTP_URL'] : '';
$client_request_datetime = gmdate('Y-m-d H:i:s.u');
$accept = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : '';
$accept_encoding = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : '';
$accept_language = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '';
$req_method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '';
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$data = array(
'remote_key' => $remote_key,
'remoteAddr' => $visitor_ip,
'userAgent' => $user_agent,
'queryString' => $query_string,
'requestAsset' => $request_asset,
'clientRequestDateTime' => $client_request_datetime,
'accept' => $accept,
'acceptEncoding' => $accept_encoding,
'acceptLanguage' => $accept_language,
'reqMethod' => $req_method,
'referer' => $referer,
'clientVar1' => $client_var_1,
'clientVar2' => $client_var_2,
'clientVar3' => $client_var_3,
'clientVar4' => $client_var_4,
'clientVar5' => $client_var_5,
'clientVar6' => $client_var_6,
);
$args = array(
'body' => json_encode($data),
'headers' => array(
'Content-Type' => 'application/json',
),
);
$response = wp_safe_remote_post($api_url, $args);
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
error_log('API Request Error: ' . $error_message);
return;
}
$body = wp_safe_remote_retrieve_body($response);
$api_data = json_decode($body);
if ($api_data->status === 'success') {
$response_data = $api_data->data;
$filter_recommend = $response_data->FilterRecommend;
if ($filter_recommend === 'Pass') {
return;
} elseif ($filter_recommend === 'Fail') {
status_header(204);
wp_die();
} else {
error_log('Unknown FilterRecommend value: ' . $filter_recommend);
return;
}
} else {
$error_message = $api_data->error_message;
error_log('API Response Error: ' . $error_message);
return;
}
}


const https = require('https');
// YOUR BLUEFIELD IDENTITY CLIENT REMOTE KEY GOES HERE
const remoteKey = 'your_unique_key';
// Optional client parameters (up to 32 characters or null).
const clientVar1 = process.env.clientVar1 || null;
const clientVar2 = process.env.clientVar2 || null;
const clientVar3 = process.env.clientVar3 || null;
const clientVar4 = process.env.clientVar4 || null;
const clientVar5 = process.env.clientVar5 || null;
const clientVar6 = process.env.clientVar6 || null;
const apiURL = 'https://webservice.bluefieldidentity.com';
const visitorIP = process.env.REMOTE_ADDR || '';
const userAgent = process.env.HTTP_USER_AGENT || '';
const queryString = process.env.QUERY_STRING || '';
const requestAsset = process.env.HTTP_URL || '';
const clientRequestDateTime = new Date().toISOString();
const accept = process.env.HTTP_ACCEPT || '';
const acceptEncoding = process.env.HTTP_ACCEPT_ENCODING || '';
const acceptLanguage = process.env.HTTP_ACCEPT_LANGUAGE || '';
const reqMethod = process.env.REQUEST_METHOD || '';
const referer = process.env.HTTP_REFERER || '';
const data = {
remote_key: remoteKey,
remoteAddr: visitorIP,
userAgent: userAgent,
queryString: queryString,
requestAsset: requestAsset,
clientRequestDateTime: clientRequestDateTime,
accept: accept,
acceptEncoding: acceptEncoding,
acceptLanguage: acceptLanguage,
reqMethod: reqMethod,
referer: referer,
clientVar1: clientVar1,
clientVar2: clientVar2,
clientVar3: clientVar3,
clientVar4: clientVar4,
clientVar5: clientVar5,
clientVar6: clientVar6,
};
const jsonData = JSON.stringify(data);
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': jsonData.length,
},
};
const req = https.request(apiURL, options, (res) => {
let responseData = '';
res.on('data', (chunk) => {
responseData += chunk;
});
res.on('end', () => {
if (res.statusCode === 200) {
try {
const apiResponse = JSON.parse(responseData);
const status = apiResponse.status;
if (status === 'success') {
const filterRecommend = apiResponse.data.FilterRecommend;
if (filterRecommend === 'Pass') {
console.log('Request successful.');
} else if (filterRecommend === 'Fail') {
console.log('Request processed successfully, but no content returned.');
} else {
console.log('Unknown FilterRecommend value:', filterRecommend);
console.log('Request processed with an unknown status.');
}
} else {
const errorMessage = apiResponse.error_message || 'Unknown error';
console.log('API Response Error:', errorMessage);
console.log('API Request failed.');
}
} catch (error) {
console.error('API response parsing error:', error.message);
}
} else {
console.error('HTTP Request Error:', res.statusCode);
console.log('API Request failed.');
}
});
});
req.on('error', (error) => {
console.error('HTTP request error:', error.message);
});
req.write(jsonData);
req.end();


require 'net/http'
require 'json'
# YOUR BLUEFIELD IDENTITY CLIENT REMOTE KEY GOES HERE
remote_key = 'your_unique_key'
# Optional client parameters (up to 32 characters or nil).
client_var1 = (ENV['clientVar1'] || '')[0..31]
client_var2 = (ENV['clientVar2'] || '')[0..31]
client_var3 = (ENV['clientVar3'] || '')[0..31]
client_var4 = (ENV['clientVar4'] || '')[0..31]
client_var5 = (ENV['clientVar5'] || '')[0..31]
client_var6 = (ENV['clientVar6'] || '')[0..31]
api_url = 'https://webservice.bluefieldidentity.com'
visitor_ip = ENV['REMOTE_ADDR'] || ''
user_agent = ENV['HTTP_USER_AGENT'] || ''
query_string = ENV['QUERY_STRING'] || ''
request_asset = ENV['HTTP_URL'] || ''
client_request_date_time = Time.now.utc.strftime('%Y-%m-%d %H:%M:%S.%L')
accept = ENV['HTTP_ACCEPT'] || ''
accept_encoding = ENV['HTTP_ACCEPT_ENCODING'] || ''
accept_language = ENV['HTTP_ACCEPT_LANGUAGE'] || ''
req_method = ENV['REQUEST_METHOD'] || ''
referer = ENV['HTTP_REFERER'] || ''
data = {
remote_key: remote_key,
remoteAddr: visitor_ip,
userAgent: user_agent,
queryString: query_string,
requestAsset: request_asset,
clientRequestDateTime: client_request_date_time,
accept: accept,
acceptEncoding: accept_encoding,
acceptLanguage: accept_language,
reqMethod: req_method,
referer: referer,
clientVar1: client_var1,
clientVar2: client_var2,
clientVar3: client_var3,
clientVar4: client_var4,
clientVar5: client_var5,
clientVar6: client_var6
}
json_data = JSON.generate(data)
uri = URI(api_url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
request = Net::HTTP::Post.new(uri.path)
request['Content-Type'] = 'application/json'
request['Content-Length'] = json_data.length.to_s
request.body = json_data
response = http.request(request)
if response.is_a?(Net::HTTPSuccess)
api_data = JSON.parse(response.body)
status = api_data['status']
if status == 'success'
response_data = api_data['data']
filter_recommend = response_data['FilterRecommend']
if filter_recommend == 'Pass'
puts 'Request successful.'
elsif filter_recommend == 'Fail'
puts 'Request processed successfully, but no content returned.'
else
puts "Unknown FilterRecommend value: #{filter_recommend}"
puts 'Request processed with an unknown status.'
end
else
error_message = api_data['error_message'] || 'Unknown error'
puts "API Response Error: #{error_message}"
puts 'API Request failed.'
end
else
puts "HTTP Request Error: #{response.code}"
puts 'API Request failed.'
end


using System;
using System.IO;
using System.Net;
using System.Text;
using System.Text.Json;
class Program
{
static void Main()
{
// YOUR BLUEFIELD IDENTITY CLIENT REMOTE KEY GOES HERE
string remoteKey = "your_unique_key";
// Optional client parameters (up to 32 characters or null).
string clientVar1 = Environment.GetEnvironmentVariable("clientVar1") ?? string.Empty;
string clientVar2 = Environment.GetEnvironmentVariable("clientVar2") ?? string.Empty;
string clientVar3 = Environment.GetEnvironmentVariable("clientVar3") ?? string.Empty;
string clientVar4 = Environment.GetEnvironmentVariable("clientVar4") ?? string.Empty;
string clientVar5 = Environment.GetEnvironmentVariable("clientVar5") ?? string.Empty;
string clientVar6 = Environment.GetEnvironmentVariable("clientVar6") ?? string.Empty;
string apiUrl = "https://webservice.bluefieldidentity.com";
string visitorIp = Environment.GetEnvironmentVariable("REMOTE_ADDR") ?? string.Empty;
string userAgent = Environment.GetEnvironmentVariable("HTTP_USER_AGENT") ?? string.Empty;
string queryString = Environment.GetEnvironmentVariable("QUERY_STRING") ?? string.Empty;
string requestAsset = Environment.GetEnvironmentVariable("HTTP_URL") ?? string.Empty;
string clientRequestDateTime = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff");
string accept = Environment.GetEnvironmentVariable("HTTP_ACCEPT") ?? string.Empty;
string acceptEncoding = Environment.GetEnvironmentVariable("HTTP_ACCEPT_ENCODING") ?? string.Empty;
string acceptLanguage = Environment.GetEnvironmentVariable("HTTP_ACCEPT_LANGUAGE") ?? string.Empty;
string reqMethod = Environment.GetEnvironmentVariable("REQUEST_METHOD") ?? string.Empty;
string referer = Environment.GetEnvironmentVariable("HTTP_REFERER") ?? string.Empty;
var requestData = new
{
remote_key = remoteKey,
remoteAddr = visitorIp,
userAgent = userAgent,
queryString = queryString,
requestAsset = requestAsset,
clientRequestDateTime = clientRequestDateTime,
accept = accept,
acceptEncoding = acceptEncoding,
acceptLanguage = acceptLanguage,
reqMethod = reqMethod,
referer = referer,
clientVar1 = clientVar1,
clientVar2 = clientVar2,
clientVar3 = clientVar3,
clientVar4 = clientVar4,
clientVar5 = clientVar5,
clientVar6 = clientVar6,
};
string json = JsonSerializer.Serialize(requestData);
try
{
WebRequest request = WebRequest.Create(apiUrl);
request.Method = "POST";
request.ContentType = "application/json";
byte[] byteData = Encoding.UTF8.GetBytes(json);
request.ContentLength = byteData.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(byteData, 0, byteData.Length);
}
using (WebResponse response = request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
if (responseStream != null)
{
using (StreamReader reader = new StreamReader(responseStream))
{
string responseData = reader.ReadToEnd();
Console.WriteLine("API Response: " + responseData);
}
}
}
}
}
catch (WebException ex)
{
Console.WriteLine("Web Exception: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("Exception: " + ex.Message);
}
}
}


package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
reqUrl := "https://webservice.bluefieldidentity.com"
req, _ := http.NewRequest("GET", reqUrl, nil)
query := req.URL.Query()
query.Add("ip", "string")
query.Add("deviceId", "string")
query.Add("userAgent", "string")
req.URL.RawQuery = query.Encode()
req.Header.Add("x-api-key", "YOUR_API_KEY_HERE")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}


import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// Define the URL of the web service.
String apiURL = "https://webservice.bluefieldidentity.com";
// Your unique remote key.
String remoteKey = "your_unique_key";
// Get the visitor's IP address from the CGI scope.
String visitorIP = System.getenv("REMOTE_ADDR");
// Get the visitor's User-Agent from the CGI scope.
String userAgent = System.getenv("HTTP_USER_AGENT");
// Get the query string from the CGI scope.
String queryString = System.getenv("QUERY_STRING");
// Get the request asset from the CGI scope.
String requestAsset = System.getenv("HTTP_URL");
// Get the current UTC date/time in the specified format.
String clientRequestDateTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")
.withZone(ZoneOffset.UTC)
.format(Instant.now());
// Get the "Accept" header from the CGI scope.
String accept = System.getenv("HTTP_ACCEPT");
// Get the "Accept-Encoding" header from the CGI scope.
String acceptEncoding = System.getenv("HTTP_ACCEPT_ENCODING");
// Get the "Accept-Language" header from the CGI scope.
String acceptLanguage = System.getenv("HTTP_ACCEPT_LANGUAGE");
// Get the request method from the CGI scope.
String reqMethod = System.getenv("REQUEST_METHOD");
// Get the "Referer" header from the CGI scope.
String referer = System.getenv("HTTP_REFERER");
// Optional client parameters (up to 32 characters or null).
String clientVar1 = System.getenv("clientVar1");
String clientVar2 = System.getenv("clientVar2");
String clientVar3 = System.getenv("clientVar3");
String clientVar4 = System.getenv("clientVar4");
String clientVar5 = System.getenv("clientVar5");
String clientVar6 = System.getenv("clientVar6");
// Prepare the data to send in the POST request.
Map data = new HashMap<>();
data.put("remote_key", remoteKey);
data.put("remoteAddr", visitorIP);
data.put("userAgent", userAgent);
data.put("queryString", queryString);
data.put("requestAsset", requestAsset);
data.put("clientRequestDateTime", clientRequestDateTime);
data.put("accept", accept);
data.put("acceptEncoding", acceptEncoding);
data.put("acceptLanguage", acceptLanguage);
data.put("reqMethod", reqMethod);
data.put("referer", referer);
data.put("clientVar1", clientVar1);
data.put("clientVar2", clientVar2);
data.put("clientVar3", clientVar3);
data.put("clientVar4", clientVar4);
data.put("clientVar5", clientVar5);
data.put("clientVar6", clientVar6);
// Add any additional parameters here.
// Convert the data to JSON.
String json = new Gson().toJson(data);
try {
// Create a URL object.
URL url = new URL(apiURL);
// Open a connection to the URL.
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// Set the request method to POST.
connection.setRequestMethod("POST");
// Set the request headers.
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Content-Length", String.valueOf(json.length()));
// Enable input/output streams for the connection.
connection.setDoOutput(true);
// Get the output stream to write data to the server.
try (OutputStream os = connection.getOutputStream()) {
byte[] input = json.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
// Get the HTTP response code.
int responseCode = connection.getResponseCode();
// Check if the request was successful (HTTP status code 200).
if (responseCode == HttpURLConnection.HTTP_OK) {
// Read and process the API response here.
// You can use connection.getInputStream() to read the response.
// Handle success case.
System.out.println("Request successful.");
} else {
// Handle HTTP request error.
System.out.println("HTTP Request Error: " + responseCode);
System.out.println("API Request failed.");
}
} catch (Exception e) {
// Handle exceptions.
e.printStackTrace();
}
}
}


import json
import os
import http.client
# Define the URL of the web service.
api_url = 'webservice.bluefieldidentity.com'
# Your unique remote key.
remote_key = 'your_unique_key'
# Get the visitor's IP address from the CGI scope.
visitor_ip = os.environ.get('REMOTE_ADDR', '')
# Get the visitor's User-Agent from the CGI scope.
user_agent = os.environ.get('HTTP_USER_AGENT', '')
# Get the query string from the CGI scope.
query_string = os.environ.get('QUERY_STRING', '')
# Get the request asset from the CGI scope.
request_asset = os.environ.get('HTTP_URL', '')
# Get the current UTC date/time in the specified format.
client_request_date_time = datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')
# Get the "Accept" header from the CGI scope.
accept = os.environ.get('HTTP_ACCEPT', '')
# Get the "Accept-Encoding" header from the CGI scope.
accept_encoding = os.environ.get('HTTP_ACCEPT_ENCODING', '')
# Get the "Accept-Language" header from the CGI scope.
accept_language = os.environ.get('HTTP_ACCEPT_LANGUAGE', '')
# Get the request method from the CGI scope.
req_method = os.environ.get('REQUEST_METHOD', '')
# Get the "Referer" header from the CGI scope.
referer = os.environ.get('HTTP_REFERER', '')
# Optional client parameters (up to 32 characters or None).
client_var1 = os.environ.get('clientVar1', '')[:32]
client_var2 = os.environ.get('clientVar2', '')[:32]
client_var3 = os.environ.get('clientVar3', '')[:32]
client_var4 = os.environ.get('clientVar4', '')[:32]
client_var5 = os.environ.get('clientVar5', '')[:32]
client_var6 = os.environ.get('clientVar6', '')[:32]
# Prepare the data to send in the POST request.
data = {
'remote_key': remote_key,
'remoteAddr': visitor_ip,
'userAgent': user_agent,
'queryString': query_string,
'requestAsset': request_asset,
'clientRequestDateTime': client_request_date_time,
'accept': accept,
'acceptEncoding': accept_encoding,
'acceptLanguage': accept_language,
'reqMethod': req_method,
'referer': referer,
'clientVar1': client_var1,
'clientVar2': client_var2,
'clientVar3': client_var3,
'clientVar4': client_var4,
'clientVar5': client_var5,
'clientVar6': client_var6,
# Add any additional parameters here.
}
# Convert the data to JSON.
json_data = json.dumps(data)
# Set up the HTTP connection.
conn = http.client.HTTPSConnection(api_url)
# Set up the HTTP headers.
headers = {
'Content-Type': 'application/json',
'Content-Length': len(json_data),
}
# Send the POST request.
conn.request('POST', '', json_data, headers)
# Get the response.
response = conn.getresponse()
if response.status == 200:
# Process the API response.
api_data = json.loads(response.read().decode())
status = api_data.get('status', '')
if status == 'success':
# Handle success case.
response_data = api_data.get('data', {})
filter_recommend = response_data.get('FilterRecommend', '')
if filter_recommend == 'Pass':
# Continue with the normal response.
print('Request successful.')
elif filter_recommend == 'Fail':
# Return no content with HTTP status code 204 (No Content).
print('Request processed successfully, but no content returned.')
else:
# Handle other cases or unknown values as needed.
# You can also log this case for future reference.
print('Unknown FilterRecommend value:', filter_recommend)
print('Request processed with an unknown status.')
else:
# Handle failure case.
error_message = api_data.get('error_message', 'Unknown error')
# Log the error for future reference.
print('API Response Error:', error_message)
print('API Request failed.')
else:
# Handle HTTP request error.
print('HTTP Request Error:', response.status)
print('API Request failed.')


use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common;
use JSON;
# Define the URL of the web service.
my $api_url = 'https://webservice.bluefieldidentity.com';
# Your unique remote key.
my $remote_key = 'your_unique_key';
# Get the visitor's IP address from the CGI scope.
my $visitor_ip = $ENV{'REMOTE_ADDR'} || '';
# Get the visitor's User-Agent from the CGI scope.
my $user_agent = $ENV{'HTTP_USER_AGENT'} || '';
# Get the query string from the CGI scope.
my $query_string = $ENV{'QUERY_STRING'} || '';
# Get the request asset from the CGI scope.
my $request_asset = $ENV{'HTTP_URL'} || '';
# Get the current UTC date/time in the specified format.
my $client_request_date_time = strftime('%Y-%m-%d %H:%M:%S.%3N', gmtime);
# Get the "Accept" header from the CGI scope.
my $accept = $ENV{'HTTP_ACCEPT'} || '';
# Get the "Accept-Encoding" header from the CGI scope.
my $accept_encoding = $ENV{'HTTP_ACCEPT_ENCODING'} || '';
# Get the "Accept-Language" header from the CGI scope.
my $accept_language = $ENV{'HTTP_ACCEPT_LANGUAGE'} || '';
# Get the request method from the CGI scope.
my $req_method = $ENV{'REQUEST_METHOD'} || '';
# Get the "Referer" header from the CGI scope.
my $referer = $ENV{'HTTP_REFERER'} || '';
# Optional client parameters (up to 32 characters or null).
my $client_var1 = $ENV{'clientVar1'} || '';
my $client_var2 = $ENV{'clientVar2'} || '';
my $client_var3 = $ENV{'clientVar3'} || '';
my $client_var4 = $ENV{'clientVar4'} || '';
my $client_var5 = $ENV{'clientVar5'} || '';
my $client_var6 = $ENV{'clientVar6'} || '';
# Prepare the data to send in the POST request.
my %request_data = (
remote_key => $remote_key,
remoteAddr => $visitor_ip,
userAgent => $user_agent,
queryString => $query_string,
requestAsset => $request_asset,
clientRequestDateTime => $client_request_date_time,
accept => $accept,
acceptEncoding => $accept_encoding,
acceptLanguage => $accept_language,
reqMethod => $req_method,
referer => $referer,
clientVar1 => $client_var1,
clientVar2 => $client_var2,
clientVar3 => $client_var3,
clientVar4 => $client_var4,
clientVar5 => $client_var5,
clientVar6 => $client_var6,
# Add any additional parameters here.
);
# Convert the data to JSON.
my $json_data = encode_json(\%request_data);
# Create a user agent object.
my $ua = LWP::UserAgent->new;
# Create a POST request.
my $request = POST(
$api_url,
Content_Type => 'application/json',
Content => $json_data
);
# Send the request and get the response.
my $response = $ua->request($request);
# Check for a successful response.
if ($response->is_success) {
my $api_response = $response->decoded_content;
print "API Response: $api_response\n";
} else {
print "HTTP Request Error: " . $response->status_line . "\n";
print "API Request failed.\n";
}