Skip to main content

adspower-antidetect-browser

Manage AdsPower antidetect browser profiles for multi-account marketing automation and campaigns

Zur Installation springen

Quellinformationen

Repository
reason-machines/marketing-skills
Letzte Quellaktivität
27. Mai 2026 um 23:52
Erkannte Sprache von SKILL.md
Englisch
Sterne
10
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
adspower-antidetect-browser
description
Manage AdsPower antidetect browser profiles for multi-account marketing automation and campaigns
triggers
["create adspower browser profile","manage multiple browser profiles for marketing","set up antidetect browser automation","configure adspower profiles for campaigns","automate multi-account browser sessions","use adspower api for browser control","launch adspower profiles programmatically","manage browser fingerprints for marketing"]
# AdsPower Antidetect Browser Skill > Skill by [ara.so](https://ara.so) — Marketing Skills collection. ## Overview AdsPower is an antidetect browser platform that allows marketing teams to manage multiple browser profiles with unique fingerprints for multi-account operations, ad campaigns, and automation workflows. Each profile has isolated cookies, storage, and unique browser fingerprints to prevent account association and detection. ## Installation AdsPower requires the desktop application installed on your system: 1. Download AdsPower from the official website 2. Install the application for your operating system (Windows/macOS) 3. Launch AdsPower and create an account 4. Enable API access in Settings → API Settings ## API Access AdsPower provides a local HTTP API (default port: 50325) for programmatic control. ### Base Configuration ```python import requests import os # AdsPower local API endpoint ADSPOWER_API_BASE = "http://localhost:50325/api/v1" # Optional: If using cloud API ADSPOWER_API_KEY = os.getenv("ADSPOWER_API_KEY") ``` ```javascript const axios = require('axios'); const ADSPOWER_API_BASE = 'http://localhost:50325/api/v1'; const API_KEY = process.env.ADSPOWER_API_KEY; ``` ## Core Operations ### Create Browser Profile ```python def create_profile(name, group_id=None, fingerprint_config=None): """Create a new browser profile""" url = f"{ADSPOWER_API_BASE}/user/create" payload = { "name": name, "group_id": group_id or "0", "domain_name": "", "open_urls": [], "repeat_config": fingerprint_config or [] } response = requests.post(url, json=payload) data = response.json() if data.get("code") == 0: return data["data"]["id"] else: raise Exception(f"Failed to create profile: {data.get('msg')}") # Usage profile_id = create_profile( name="Campaign_Profile_1", group_id="marketing_team" ) print(f"Created profile: {profile_id}") ``` ```javascript async function createProfile(name, groupId = '0') { const response = await axios.post(`${ADSPOWER_API_BASE}/user/create`, { name: name, group_id: groupId, domain_name: '', open_urls: [] }); if (response.data.code === 0) { return response.data.data.id; } throw new Error(`Failed to create profile: ${response.data.msg}`); } // Usage const profileId = await createProfile('Campaign_Profile_1', 'marketing_team'); console.log(`Created profile: ${profileId}`); ``` ### Launch Browser Profile ```python def start_profile(profile_id, launch_args=None): """Launch a browser profile and return connection details""" url = f"{ADSPOWER_API_BASE}/browser/start" params = { "user_id": profile_id, "launch_args": launch_args or [] } response = requests.get(url, params=params) data = response.json() if data.get("code") == 0: return { "ws_endpoint": data["data"]["ws"]["puppeteer"], "selenium_endpoint": data["data"]["ws"]["selenium"], "debug_port": data["data"]["debug_port"] } else: raise Exception(f"Failed to start profile: {data.get('msg')}") # Usage connection = start_profile(profile_id) print(f"WebSocket: {connection['ws_endpoint']}") ``` ```javascript async function startProfile(profileId) { const response = await axios.get(`${ADSPOWER_API_BASE}/browser/start`, { params: { user_id: profileId } }); if (response.data.code === 0) { return { wsEndpoint: response.data.data.ws.puppeteer, seleniumEndpoint: response.data.data.ws.selenium, debugPort: response.data.data.debug_port }; } throw new Error(`Failed to start profile: ${response.data.msg}`); } ``` ### Close Browser Profile ```python def stop_profile(profile_id): """Close a running browser profile""" url = f"{ADSPOWER_API_BASE}/browser/stop" params = {"user_id": profile_id} response = requests.get(url, params=params) data = response.json() return data.get("code") == 0 # Usage stop_profile(profile_id) ``` ## Automation Integration ### With Selenium ```python from selenium import webdriver from selenium.webdriver.chrome.options import Options def connect_selenium(profile_id): """Connect Selenium to AdsPower profile""" connection = start_profile(profile_id) chrome_options = Options() chrome_options.add_experimental_option( "debuggerAddress", f"127.0.0.1:{connection['debug_port']}" ) driver = webdriver.Chrome(options=chrome_options) return driver # Usage driver = connect_selenium(profile_id) driver.get("https://example.com") # Perform automation tasks driver.quit() stop_profile(profile_id) ``` ### With Puppeteer ```javascript const puppeteer = require('puppeteer-core'); async function connectPuppeteer(profileId) { const connection = await startProfile(profileId); const browser = await puppeteer.connect({ browserWSEndpoint: connection.wsEndpoint, defaultViewport: null }); return browser; } // Usage (async () => { const browser = await connectPuppeteer(profileId); const page = await browser.newPage(); await page.goto('https://example.com'); // Perform automation tasks await browser.disconnect(); await stopProfile(profileId); })(); ``` ### With Playwright ```python from playwright.sync_api import sync_playwright def connect_playwright(profile_id): """Connect Playwright to AdsPower profile""" connection = start_profile(profile_id) with sync_playwright() as p: browser = p.chromium.connect_over_cdp(connection['ws_endpoint']) return browser # Usage browser = connect_playwright(profile_id) page = browser.new_page() page.goto("https://example.com") # Perform automation tasks browser.close() stop_profile(profile_id) ``` ## Profile Management ### List All Profiles ```python def list_profiles(group_id=None, page=1, page_size=100): """Get all browser profiles""" url = f"{ADSPOWER_API_BASE}/user/list" params = { "page": page, "page_size": page_size } if group_id: params["group_id"] = group_id response = requests.get(url, params=params) data = response.json() if data.get("code") == 0: return data["data"]["list"] return [] # Usage profiles = list_profiles(group_id="marketing_team") for profile in profiles: print(f"{profile['user_id']}: {profile['name']}") ``` ### Update Profile Configuration ```python def update_profile(profile_id, updates): """Update profile settings""" url = f"{ADSPOWER_API_BASE}/user/update" payload = { "user_id": profile_id, **updates } response = requests.post(url, json=payload) data = response.json() return data.get("code") == 0 # Usage update_profile(profile_id, { "name": "Updated_Campaign_Profile", "remark": "Main account for Facebook ads" }) ``` ### Delete Profile ```python def delete_profile(profile_id): """Delete a browser profile""" url = f"{ADSPOWER_API_BASE}/user/delete" params = {"user_ids": [profile_id]} response = requests.post(url, json=params) data = response.json() return data.get("code") == 0 ``` ## Common Patterns ### Campaign Profile Automation ```python import time class CampaignAutomation: def __init__(self, profile_ids): self.profile_ids = profile_ids def run_campaign_tasks(self, task_function): """Execute tasks across multiple profiles""" for profile_id in self.profile_ids: try: print(f"Starting profile {profile_id}") driver = connect_selenium(profile_id) # Execute custom task task_function(driver) driver.quit() stop_profile(profile_id) # Delay between profiles time.sleep(5) except Exception as e: print(f"Error with profile {profile_id}: {e}") stop_profile(profile_id) # Usage def post_ad_campaign(driver): driver.get("https://ads.platform.com") # Perform ad posting logic pass automation = CampaignAutomation([profile_id, profile_id_2]) automation.run_campaign_tasks(post_ad_campaign) ``` ### Profile Pool Manager ```python class ProfilePool: def __init__(self, group_name): self.group_name = group_name self.active_profiles = {} def get_available_profile(self): """Get next available profile from pool""" profiles = list_profiles(group_id=self.group_name) for profile in profiles: profile_id = profile['user_id'] if profile_id not in self.active_profiles: connection = start_profile(profile_id) self.active_profiles[profile_id] = connection return profile_id, connection raise Exception("No available profiles in pool") def release_profile(self, profile_id): """Release profile back to pool""" if profile_id in self.active_profiles: stop_profile(profile_id) del self.active_profiles[profile_id] # Usage pool = ProfilePool("marketing_team") profile_id, connection = pool.get_available_profile() # Use profile pool.release_profile(profile_id) ``` ### Batch Profile Creation ```python def create_campaign_profiles(campaign_name, count=10): """Create multiple profiles for a campaign""" profile_ids = [] for i in range(count): profile_name = f"{campaign_name}_Profile_{i+1}" profile_id = create_profile( name=profile_name, group_id=campaign_name ) profile_ids.append(profile_id) print(f"Created: {profile_name} ({profile_id})") return profile_ids # Usage campaign_profiles = create_campaign_profiles("BlackFriday2026", count=5) ``` ## Fingerprint Configuration ### Custom Fingerprint Settings ```python def create_profile_with_fingerprint(name, config): """Create profile with specific fingerprint configuration""" url = f"{ADSPOWER_API_BASE}/user/create" payload = { "name": name, "group_id": "0", "fingerprint_config": { "ua": config.get("user_agent"), "language": config.get("language", "en-US"), "timezone": config.get("timezone", "America/New_York"), "webrtc": config.get("webrtc", "proxy"), "location": config.get("location", "ask"), "canvas": config.get("canvas", "noise"), } } response = requests.post(url, json=payload) data = response.json() if data.get("code") == 0: return data["data"]["id"]
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen