Show live collection progress and accurate final outcomes in the run log and status message, without internal diagnostics.
Remove internal connection metadata from Dataset records, exports and summaries.
Use customer-safe error messages without internal endpoint or provider details.
Retry temporary busy responses once after a short delay.
Deduplicate ad IDs across countries before delivery, so repeated ads do not
falsely stop the run at a charge limit.
Fail clearly when all searches fail and retry transient connection errors once.
Validate that each detail response contains the requested ad and usable metadata.
Expose detail success/failure counters and enrichment status in the summary and UI.
Stop after three consecutive detail failures; fail the run after this cutoff
or when all attempted details fail, retaining collected results and summary.
Preserve anonymous session cookies when reconnecting and bootstrap location
when requesting configuration for a new region or language.
Add a bounded live canary and fail-fast local validation gates.
Fix reproducible detail failures after search when includeDetails is enabled.
Complete the public location bootstrap before renewing each detail's configuration.
Read landing pages and public profile links from the current detail response,
and prefer enriched metadata over search summaries.