If you work with multiple accounts on Facebook Ads, Instagram, or TikTok, you have probably encountered a situation where everything is set up correctly β different proxies, anti-detect browser, unique cookies β but the accounts still get linked and banned in a chain. One of the reasons is Battery API fingerprinting, a tracking technology that uses data about your device's battery.
In this guide, we will explore how this tracking method works, why it is dangerous for multi-accounting, and how to properly set up protection in Dolphin Anty, AdsPower, and other anti-detect browsers.
What is the Battery API and how does it work
The Battery API (Battery Status API) is a standard web interface that allows websites to obtain information about the battery status of your device. Initially, the technology was created for useful purposes: for example, a web application could reduce video quality when the battery is low to extend the device's operating time.
Through the Battery API, a website can obtain the following data:
- Battery level β percentage from 0 to 100%
- Time until fully discharged β in seconds at the current consumption level
- Time until fully charged β if the device is plugged in
- Charging status β whether the device is connected to power or running on battery
What could be dangerous about this data? The problem is that the combination of these parameters creates a nearly unique digital fingerprint of the device. The probability that two different users will have exactly the same battery level (for example, 73.4%), the same time until discharge (for example, 8347 seconds), and the same charging status at the same moment is extremely low.
Important: The Battery API works even on desktop computers with laptops. If you use a laptop for multi-accounting, battery data can expose you even when using different proxies and browser profiles.
How websites obtain Battery API data
Technically, this is implemented through a simple JavaScript code that runs in the browser when the page loads:
navigator.getBattery().then(function(battery) {
console.log('Battery level: ' + battery.level * 100 + '%');
console.log('Time until discharge: ' + battery.dischargingTime + ' sec');
console.log('Time until charging: ' + battery.chargingTime + ' sec');
console.log('Charging status: ' + battery.charging);
// Creating a unique fingerprint
var batteryFingerprint = battery.level + '_' +
battery.dischargingTime + '_' +
battery.chargingTime + '_' +
battery.charging;
});
This code runs unnoticed by the user and sends the data to the platform's server. These data are then combined with other fingerprinting parameters β screen resolution, time zone, installed fonts, WebGL parameters β to create a unique digital fingerprint of the device.
Why the Battery API is dangerous for multi-accounting
For arbitrage specialists, SMM professionals, and anyone working with multiple accounts, the Battery API creates a serious problem: it allows platforms to link accounts even when using different IP addresses and browser profiles.
Scenario 1: Working with multiple accounts on one laptop
Imagine a situation: you are an arbitrage specialist, farming 10 Facebook Ads accounts on one laptop. For each account, you have set up:
- A separate profile in Dolphin Anty or AdsPower
- A unique residential proxy from different countries
- Different User-Agents, screen resolutions, languages
- Unique cookies and localStorage
Everything seems perfect. But hereβs the problem: all 10 accounts are running on one physical device with one battery. At 14:35, all of them send identical data to the Facebook server:
- Battery level: 67.3%
- Time until discharge: 9234 seconds
- Status: not charging
For Facebook's algorithms, this is a red flag: 10 different "people" from different countries with different devices have absolutely identical battery parameters at one moment in time. The probability of such a coincidence is practically zero. The result is that all accounts get linked and banned in a chain (chain-ban).
Scenario 2: SMM agency with client accounts
An even more dangerous situation for SMM professionals. You manage 30 Instagram accounts for different clients from one work laptop. If Instagram detects identical Battery API fingerprints across all these accounts, the platform may:
- Flag all accounts as suspicious
- Limit reach and visibility of Stories
- Block the ability to run ads
- In the worst case β block client accounts
Losing client accounts means not only financial losses but also reputational risks for the agency.
Real case: An SMM agency lost 18 client Instagram accounts in one day due to a chain ban. The reason was that all accounts were managed from one MacBook Pro, and Instagram detected identical Battery API data. The financial damage amounted to over 400,000 rubles (loss of clients + account recovery).
Why standard protection methods don't work
Many arbitrage specialists and SMM professionals think that using quality proxies and an anti-detect browser is enough. But the Battery API bypasses these protections:
| Protection Method | Protects against Battery API? | Why it doesn't work |
|---|---|---|
| Residential Proxies | No | The Battery API operates at the browser level; proxies do not affect this data |
| Different User-Agents | No | User-Agent changes information about the browser but not about the device's battery |
| Clearing Cookies | No | The Battery API does not use cookies; it operates through JavaScript |
| VPN instead of Proxy | No | VPN only changes the IP address; battery data remains real |
| Anti-detect Browser (without configuration) | Partially | By default, many anti-detects do not spoof the Battery API |
The only reliable way to protect yourself is to properly configure the spoofing of the Battery API in the anti-detect browser. We will discuss this in detail in the section on setting up protection.
How Facebook, TikTok, and Instagram use battery data
Different platforms use Battery API fingerprinting with varying degrees of aggressiveness. Understanding these differences will help you set up protection correctly for specific tasks.
Facebook and Facebook Ads
Facebook uses one of the most advanced fingerprinting algorithms in the industry. The Battery API is just one of 50+ parameters that the platform collects to create a unique device fingerprint. Facebook combines battery data with:
- WebGL fingerprint β graphics card and rendering parameters
- Canvas fingerprint β unique fingerprint through graphics rendering
- AudioContext fingerprint β audio subsystem parameters
- Font list β fonts installed on the system
- Screen parameters β resolution, color depth, aspect ratio
- Timezone and language β time zone and language settings
For Facebook Ads, it is especially critical: if the platform detects that several advertising accounts have identical Battery API fingerprints, this can lead to:
- Instant banning of all linked accounts
- Blocking of the Business Manager
- Inability to create new ad accounts
- Hardware ban β blocking of the device itself
Instagram (owned by Meta) uses similar algorithms but with some peculiarities. The platform is more tolerant of multi-accounting on mobile devices (many users legally have multiple accounts) but harshly bans suspicious activity on desktop.
The Battery API in Instagram is used in conjunction with:
- Behavior patterns β activity time, action speed, intervals between posts
- Geolocation β matching IP address and timezone
- Device type β mobile app vs web version
If you manage client accounts through the web version of Instagram from one laptop, an identical Battery API fingerprint may lead to a shadow ban β when the account is not blocked, but reach drops to zero.
TikTok and TikTok Ads
TikTok is known for having one of the most aggressive anti-fraud systems. The platform actively uses the Battery API to combat:
- Fake views and likes
- Account farming for arbitrage
- Automation through bots
A feature of TikTok is that the platform analyzes changes in battery level over time. If several accounts show absolutely synchronized changes in charge (for example, all accounts discharged from 85% to 78% over 30 minutes), this is a clear sign of working from one device.
Tip for TikTok Ads arbitrage specialists: Use mobile proxies in conjunction with proper Battery API spoofing. TikTok is more lenient towards mobile traffic, and mobile IPs are less likely to be blocked.
Google Ads and YouTube
Google uses the Battery API less aggressively than Meta or TikTok, but still collects this data. The main goal is to combat click fraud (inflating clicks on ads) and to detect bots.
For arbitrage specialists, Google Ads is critical:
- Google rarely bans accounts solely based on the Battery API, but uses this data in a comprehensive assessment
- If you have multiple ad accounts with identical fingerprints, Google may limit budget spending
- If fraud is suspected, Google may require identity and business verification
Methods for detecting Battery API fingerprinting
Before setting up protection, it is important to understand how exactly platforms use the Battery API for tracking. This will help you choose the right protection strategy.
Method 1: Static fingerprint (snapshot at a moment in time)
The simplest method is that the platform collects Battery API data at the moment the page loads and saves it as part of the fingerprint. For example:
- User A logs into Facebook at 14:00 β battery level 82%
- User B logs into Facebook at 14:05 β battery level 82%
- User C logs into Facebook at 14:10 β battery level 81%
If all three users have identical or very close values for other parameters (screen resolution, timezone, WebGL), the platform may assume that this is one person with different accounts.
Method 2: Dynamic analysis (tracking changes)
A more advanced method is that the platform tracks how the battery level changes over time. JavaScript code on the page periodically (for example, every 5 minutes) checks the current charge level and sends the data to the server.
This allows for the creation of a "discharge graph" of the device. If several accounts show absolutely identical graphs, this is a clear sign of working from one device.
// Example code for dynamic tracking
var batteryLog = [];
navigator.getBattery().then(function(battery) {
// First entry when the page loads
batteryLog.push({
time: Date.now(),
level: battery.level,
charging: battery.charging
});
// Re-check every 5 minutes
setInterval(function() {
batteryLog.push({
time: Date.now(),
level: battery.level,
charging: battery.charging
});
// Send data to the server
sendToServer(batteryLog);
}, 300000); // 5 minutes
});
Method 3: Cross-browser tracking
Some platforms use the Battery API to link user activity across different browsers on one device. For example:
- User logs into Instagram via Chrome β battery 65%
- 10 minutes later logs into TikTok via Firefox β battery 64%
- Another 15 minutes later logs into Facebook via Edge β battery 63%
Even if different browsers and proxies are used, synchronous changes in battery level can link these sessions as activity from one physical device.
Method 4: Combination with other fingerprinting techniques
The Battery API is rarely used in isolation. Platforms combine battery data with other fingerprinting methods to increase accuracy:
| Fingerprinting Method | How it combines with Battery API | Threat Level |
|---|---|---|
| Canvas fingerprint | Identical Canvas + identical battery = high probability of match | High |
| WebGL fingerprint | Graphics card parameters + battery dynamics create a unique device profile | High |
| Screen resolution | Rare resolution + unique battery = almost 100% identification | Medium |
| Timezone | Timezone mismatch and IP can raise suspicions when battery matches | Medium |
| Font list | Unique font set + battery helps to identify the device more accurately | Low |
Setting up protection in anti-detect browsers
Now let's move on to practice β how to properly set up protection against Battery API fingerprinting in popular anti-detect browsers. We will look at step-by-step instructions for Dolphin Anty, AdsPower, Multilogin, and GoLogin.
Dolphin Anty β configuring Battery API
Dolphin Anty is one of the most popular anti-detect browsers among arbitrage specialists, especially for working with Facebook Ads and TikTok Ads. The browser has built-in features for spoofing the Battery API.
Step-by-step setup:
- Open Dolphin Anty and create a new profile (or open an existing one for editing)
- In the profile settings, find the "Fingerprint" or "Fingerprint" section
- Scroll down to the "Battery API" or "Battery" section
- Choose the Battery API operation mode:
- Real β uses data from your real battery (DANGEROUS for multi-accounting!)
- Noise β adds random deviations to real data (not enough for protection)
- Off β blocks access to the Battery API (may look suspicious)
- Custom β allows you to set your own values (RECOMMENDED)
- Select "Custom" mode and set the parameters:
- Battery level: random value from 40% to 95% (avoid 100% β itβs suspicious)
- Charging status: randomly "charging" or "not charging"
- Time until discharge: calculated automatically based on the battery level
- IMPORTANT: set DIFFERENT Battery API values for each profile. Do not use the same values for different accounts!
- Save the profile settings
Recommendation for Dolphin Anty: Use the "Randomize on each launch" feature. This will automatically change the battery level each time the profile is launched, simulating natural charge changes.
Also, enable synchronization with the profile's operating time β if the profile runs for 2 hours, the battery level should gradually decrease, simulating real device usage.
AdsPower β protection against Battery fingerprinting
AdsPower is popular among e-commerce specialists and arbitrage specialists working with Asian platforms (AliExpress, Shopee, Lazada). Setting up the Battery API here is slightly different.
Step-by-step instructions:
- Open AdsPower and go to the "Browser Profiles" section
- Create a new profile or edit an existing one
- In the settings, find the "Advanced Settings" β "Hardware" tab
- Find the "Battery Status API" parameter
- Available options:
- Automatic β AdsPower automatically generates realistic values
- Manual β manual setup of all parameters
- Disabled β complete shutdown of the Battery API
- It is recommended to choose "Manual" for full control
- Set the parameters:
- Battery level: 45-90% (vary for different profiles)
- Charging status: alternate true/false for different profiles
- Charging time: if charging = true, set a realistic time (1800-7200 seconds)
- Discharging time: if charging = false, set discharge time (3600-14400 seconds)
Feature of AdsPower: The browser allows you to create "device profiles," where you can save a set of parameters (including Battery API) and apply them to multiple profiles. This is convenient but DANGEROUS β do not use one device profile for multiple accounts on one platform!
Multilogin β professional setup
Multilogin is a premium anti-detect browser with the most advanced fingerprint protection capabilities. It is more expensive (from $99/month) but offers the highest level of protection.
Setting up the Battery API in Multilogin:
- Open Multilogin and create a new profile (Mimic or Stealthfox)
- In the "Hardware" section, find "Battery Status"
- Multilogin offers three modes:
- Real β real data (not recommended)
- Mask β spoofing with automatic generation
- Block β complete API blocking
- Select "Mask" for data spoofing
- Enable the "Dynamic battery simulation" option β this is a unique feature of Multilogin that simulates realistic changes in battery level over time
- Set up simulation parameters:
- Starting level: initial charge level (50-95%)
- Discharge rate: percentage discharge rate per hour (2-8% depending on "device type")
- Charging behavior: how the device behaves when charging
Multilogin also allows you to synchronize the Battery API with other parameters. For example, if you emulate an old laptop with a weak battery, Multilogin will automatically set a higher discharge rate and lower capacity.
GoLogin β budget option
GoLogin is a more affordable alternative (from $24/month) with basic but sufficient protection features.
Setting up in GoLogin:
- Create or open a profile in GoLogin
- Go to "Quick Settings" β "Advanced"
- Find the "Battery" section
- By default, GoLogin uses "Noise" mode β adds random deviations to real data. This is not enough for serious multi-accounting!
- Switch to "Custom" mode and set unique values for each profile
- Use the "Randomize" feature for automatic generation of different values
Important limitation of GoLogin: Unlike Multilogin, GoLogin does not have a dynamic battery simulation feature. The battery level remains static throughout the session. This may be suspicious for platforms that track battery changes over time (TikTok, Facebook).
General recommendations for setting up the Battery API
Regardless of the chosen anti-detect browser, follow these rules:
- Uniqueness for each profile β never use the same Battery API values for different accounts
- Realistic values β avoid extreme values (5% or 100%). Optimal range: 40-90%
- Correspondence to device type β if emulating a mobile device, use a lower battery capacity. For laptops β higher
- Logical discharge time β if the battery level is 80%, the time until fully discharged cannot be 1 hour. It should be 4-8 hours for realism
- Alternating charging status β for different profiles, change the status between "charging" and "not charging"
- Periodic updates β every 1-2 weeks, change the Battery API values in profiles to simulate natural battery aging
Real cases: when the Battery API leads to bans
Let's look at real examples from the practice of arbitrage specialists and SMM professionals when ignoring Battery API fingerprinting led to serious problems.
Case 1: Chain-ban of 15 Facebook Ads accounts
Situation: An arbitrage specialist was farming 15 Facebook Ads accounts for sales. He used Dolphin Anty, quality residential proxies, unique creatives, and landing pages. All accounts passed moderation, cards were uploaded, and test campaigns were launched.
Mistake: In the Dolphin Anty settings, the Battery API mode "Real" (default) was left for all profiles. All 15 accounts were running on one MacBook Pro.
Result: Three days after launching the ads, all 15 accounts were blocked within 2 hours. The reason was that Facebook detected identical Battery API fingerprints across all accounts. Even after appeals, the accounts were not restored. Losses amounted to about $3,000 (cost of farming accounts + uploaded budgets).
Conclusion: ALWAYS configure a unique Battery API for each profile, even if you are using quality proxies.
Case 2: Shadowban of 20 Instagram accounts of an SMM agency
Situation: An SMM agency managed 20 Instagram accounts for clients (business profiles with 10k-50k followers). They used AdsPower, working from one office computer in two shifts (2 SMM managers).
Mistake: The Battery API settings were set to "Automatic," but AdsPower generated very similar values for all profiles (all showed battery levels in the range of 75-78%).
Result: Gradually (over 2 weeks), all accounts began to see a drop in reach. Stories were shown to only 5-10% of followers instead of the usual 30-40%. Posts stopped appearing in recommendations. A classic shadowban. Recovery took a month β they had to pause activity, change all fingerprint parameters, and use mobile proxies.
Conclusion: Do not rely on automatic generation β check that the Battery API values actually differ between profiles.
Case 3: Blocking of TikTok Ads account for "suspicious activity"
Situation: An arbitrage specialist launched ads on TikTok Ads, using GoLogin with configured proxies. The account was farmed, verified, and a corporate card for $5,000 was uploaded.
Mistake: The Battery API mode "Noise" was enabled in GoLogin, which adds small random deviations to real data. The problem was that the arbitrage specialist was working from a laptop that was always plugged in (charging = true, level = 100%). Even with "noise," this data remained suspiciously stable.
Result: TikTok blocked the ad account after 5 days with the reasoning "suspicious activity detected." The appeal did not help. They had to farm a new account, but with the Battery API properly configured (Custom mode with periodically changing values).
Conclusion: The "Noise" mode is insufficient for protection. Use full spoofing (Custom/Mask) with realistic changing values.
Checklist for safe multi-accounting
We summarize and create a practical checklist for protection against Battery API fingerprinting and other tracking methods.
Setting up the anti-detect browser
- β Use Custom/Mask mode for the Battery API, not Real or Noise
- β Set unique charge level values for each profile (spread of at least 10-15%)
- β Alternate charging status (charging/not charging) between profiles
- β If the browser supports dynamic simulation (Multilogin) β be sure to enable it
- β Set up automatic changes to the Battery API on each profile launch
- β Check other fingerprint parameters: Canvas, WebGL, AudioContext, font list
- β Use different User-Agents and screen resolutions for different profiles
Working with proxies
- β Use quality residential proxies for critical platforms (Facebook Ads, TikTok Ads)
- β For Instagram and TikTok, consider mobile proxies β they are less likely to be blocked
- β One proxy = one account. Do not use one IP for multiple profiles
- β Ensure that the timezone in the browser matches the geolocation of the proxy
- β Check proxies for WebRTC and DNS leaks
Behavior patterns
- β Do not work with all accounts simultaneously β take breaks between sessions