this is stupid, but it works. I changed "object_url" to "link_url" and it worked. Had nothing to do with the destination URL not being a valid web page, per se, so much as the documentation being wrong for the access_token I was using. Figures, since I also didn't need a campaign_group_id either.
made the country into a required field (because it is) and stopped using the hard-coded test campaign I was debugging with