# Changelog of Meta Content / Social-Listening Intel - Facebook + Instagram (`seibs.co/meta-content-intel`) Actor

- **URL**: https://apify.com/seibs.co/meta-content-intel/changelog.md
- **Full Actor documentation**: https://apify.com/seibs.co/meta-content-intel.md

## Changelog

### 0.2 - 2026-09-27 - Reliability: one shared browser per run

- **Browser tier rebuilt around one shared Chromium per run** (`src/browser_session.py`): each fetch or flow gets an isolated context on the same browser, open pages are capped by run memory (1 below 2 GB, 2 at 2 GB, 3 at 4 GB+), each browser fetch is capped at 60 s and each flow at 120 s, and a circuit breaker switches the tier off after 3 consecutive failures or challenge pages so a blocked run finishes promptly. Previously every escalated request launched its own headful Chromium, several at once, which can exhaust the container's memory and kill the run.
- A private Xvfb starts when the image ships one and no display is running (headful passes edges that block headless); `--disable-dev-shm-usage` keeps renderers alive on the 64 MB container /dev/shm; a missing patchright Chromium falls back to the Playwright build (the Dockerfile now installs both).
- The challenge wait checks before sleeping (no fixed 4 s idle per page) and a missing results selector releases the page after 20 s.
- `browser_telemetry()` on the client reports mode, launches, pages served and breaker state.

### 0.1 - initial build

Public-post social-listening intel across Facebook + Instagram public
Pages/posts. The wedge: Meta's official social-listening path (Meta Content
Library, the CrowdTangle successor) is application-restricted to academic and
non-profit researchers - brands, PR/comms, agencies, and journalists are barred.
This delivers the equivalent public-post listening data from the logged-out
public surface, no application required.

- Modes: `keyword_listening` (topic search + aggregation), `page_posts`
  (recent public posts for given Pages / public IG profiles), `hashtag_intel`
  (public hashtag feeds + topic intel).
- Normalized cross-platform post schema keyed by platform + post + public
  author (post text, type, engagement, timestamps, hashtags, mentions).
- Social-listening enrichment: lexicon sentiment + theme tagging per post,
  topic volume over time, top posts/pages, top hashtags, and cross-topic
  share-of-voice.
- PII minimization on by default: personal-individual authors redacted (name
  dropped, handle tokenized); Pages/business/verified accounts retained.
- Anti-bot escalation ladder: httpx (datacenter) -> curl\_cffi Chrome TLS
  impersonation (residential) -> patchright/playwright browser (residential)
  -> documented fail-soft (`platform_pending` / `fetch_error`).
- Cost-control: pre-flight caps, demo-mode soft-fail, `_RunBudget` guard,
  in-loop budget checks, hardcoded PPE prices.
- Monitor mode (scheduled runs): new-post + volume/sentiment delta digest.
- PPE: `post_record` $0.004, `listening_analysis` $0.008, `topic_rollup`
  $0.010, `scheduled_delta_run` $0.050.
- Scope: distinct from `ad-library-intel` (ads) and `instagram-creator-intel`
  (creator/influencer analytics) - this is organic public-post social listening.
