Hi Phil,
Sorry again that this took a long time to get to the bottom of.
I think I found what the problem was, please check around this area of your implementation and confirm if what I have found makes sense:
Your tailored audience tailored_audience_id=v7kj was created via CSV or uploaded directly to twitter.com.
However in your campaign, line_item and targeting_criteria calls, you set up the id of v7kj as a WEB tailored_audience_type instead of CRM type. The tailored audience is not an appropriate one for WEB and we should actually block this with validation on our end (I will probably follow up as a bug here if I can confirm this is what’s happening). There seems to be a situation where API is saying it’s a WEB and UI is saying it’s CRM, so probably when you save in UI it’s setting the type back to the proper one (CRM).
Please let us know if this fixes your issue
Thanks,
John