Changes in version 0.0.10 Improvements - Improved get_ad_library_page_id() reliability for personal profiles: if the profile transparency path fails (often login-gated), it now falls back to extracting delegate_page / associated_page_id from the regular profile HTML. - Added local artifact ignore rules to reduce accidental commits from ad-hoc analysis and automation runs (Playwright state, generated HTML/tarballs, local mapping/data files). Changes in version 0.0.8 New features - New search_ad_library() function to search the Facebook Ad Library by page ID or text query without an API key. Uses headless Chrome to extract ad data from server-side rendered HTML (~30 ads per page). Supports experimental pagination via GraphQL. browser_session_start() # Get all ads from a specific page ads <- search_ad_library(page_id = "52985377549") # Search by keyword ads <- search_ad_library(query = "Rob Jetten", country = "NL") # Check for political ads ads %>% filter(categories == "POLITICAL") browser_session_close() Returns rich metadata per ad: - Ad identity: ad_archive_id, page_name, page_id, ad_library_url - Classification: categories (e.g., "POLITICAL"), is_active - Dates: start_date, end_date (POSIXct) - Spend & reach: spend, currency, reach_estimate, impressions_lower, impressions_upper - Creative: body, title, caption, link_url, link_description, cta_text, display_format, images, videos, cards - Regulation: disclaimer_label, byline, publisher_platform Additional parameters: active_status, date_min/date_max, media_type, publisher_platforms, content_languages, search_type, sort_mode, sort_direction. Detects Facebook rate limiting (error 1675004) and reports it clearly instead of returning empty/phantom data. Changes in version 0.0.7 Bug fixes - Fixed get_ad_snapshots() always returning data for the wrong ad (e.g., "Meesho" regardless of requested ad ID). Facebook's server-side rendered script tags now contain a bundle of 25+ ads' snapshot data in a single