Right, if your Meta ads went to shit around 14th/15th May, you've probably been hit by what I'm calling the "catalog bug." Basically, Meta's been sneakily converting your static/video ads into dynamic product ads (DPAs) serving up random products that have zero to do with your actual ad copy. Cheers, Zuck.
Head to "Creative Setup" and you'll see "Products" with Carousel showing as off - except it isn't. Toggling it does sweet FA. The only fix right now is to nuke the whole catalog, which is annoying if you actually use Collection ads (the ones where your ad sits on top with product tiles below for cross-selling - those were actually working for us). Same story with Website Highlights and Summaries: they say "off" but they're bloody well "on."
So here's the fix: Remove your "Source URL" from Creative Setup, then toggle every bit of creative crap on and off. That should purge the bug. But wait, Meta gets cleverer. The second you delete that URL, they replace it with your domain. So if you had something like yourstore.com/products/product-x, it'll swap it for just yourstore.com. That still triggers the unwanted Website Highlights/Summaries/Site Links nonsense. You then need to delete that implanted URL again and hit save.
One massive catch: doing this will wipe all your engagement unless you're using a post ID. After we cleaned it all out, things started looking better. Of course, if you actually want this crap, feel free to ignore everything above. But if you don't, get in there and scrub it before Meta adds more crap you didn't ask for.