WebEventTags are linked on create but not delete



I realized awhile back that when creating web_event_tags, a corresponding tailored_audience is created for it automatically. Very handy and useful.

When deleting a web_event_tags, however, its corresponding tailored audience is not deleted.

While it makes sense that I may want to target an audience some time after deleting the web event tag that created the audience initially, it seems that the API ought to offer an optional field, such as {delete_linked_audience: TRUE} on the web_event_tags endpoint that would automatically delete the corresponding tailored_audience. Such field would default to FALSE to preserve the current behavior.

My Web Event Tags are failing to be created with INTERNAL_ERROR
My Web Event Tags are failing to be created with INTERNAL_ERROR

Right when I posted the above, I have managed to inspect a Twitter Ad Account that has had web_event_tags created, but has no corresponding tailored_audience for these tags. Is this right? Is there a delay where the tag needs to send event(s) before the audience exists?

I’m wondering now if I’ve misunderstood how tailored_audiences are created for retargeting. Is there a delay or bug at the moment? Well, I thought the tailored_audience was created automatically…


Hey @azPHPguru,

Apologies for the delay in response. You are correct in that web_event_tags do automatically generate a corresponding tailored audience. In order for us to investigate further as to why that didn’t happen, could you provide us the following details:

  • Ads account id
  • Web_event_tag id
  • Full request and response bodies using twurl

In addition, I just wanted to confirm that we do not automatically delete any tailored audiences if the corresponding web_event_tag id is deleted. We also do not currently expose a field for API partners to to support this feature.


I think it had to be a transient error. I haven’t been able to reproduce it. I didn’t save the prior event IDs; I had to delete and recreate.

Ad account 18ce5463v2o

Thanks for the reply!


Related issue. Today when posting to the /web_event_tags endpoint, we got a “Internal Error” reply from the API and no webevent tag was created. However, a tailored audience was created for it.


2016-09-20 15:14:09 UTC POST { "account_id":"18ce5463v2o", "name":"REDACTED Sitevisit Pixel 20160920", "click_window":30, "view_through_window":1 ,"type":"SITE_VISIT", "retargeting_enabled":true }


{"errors":[{"code":"INTERNAL_ERROR","message":"Internal Error"}],"request":{"params":{}}}

Tailored Audience ID created: 1ghbo

It would be great if this were made transactional. If one fails, the other should also. I’d love to be able to count on a failure reply as being a complete failure. Thanks!


It seems now there’s something preventing my ad account from adding more web event tags. I’ve been very careful to clean up after myself. I have zero web event tags and zero tailored audiences (all deleted after testing our integration) however the last 3 or 4 attempts to create new web event tags have failed with the same Internal Error response. No web event tags or tailored audiences are being created.

Ad account 18ce5463v2o


Sorry to hear about all those issues @azPHPguru

We’re currently working on triaging this issue, and we will make an update once we know more.



@azPHPguru: As you previously stated, you are creating and deleting conversion events and related audiences everyday. This is not ideal. Can you provide the goal of what you are trying to accomplish?


We are building a SaaS front end for Twitter ads. I need to be able to test the functionality of our code, which creates and deletes objects on user’s Twitter ad accounts, hundreds of times. In a production setting, on a typical user’s ad account, we only create and delete once or twice. But on our development accounts, we’re constantly testing.


For development purposes we recommend you test against our Ads API Sandbox, so as to avoid any issues around the multiple creation/deletion of conversion events. Please let us know if that will work for your use case.



Does the Ads API Sandbox provide 100% identical coverage as the production API?

Our app deals with Dynamic Ads.

When I create a sandbox account and list features to add to the account…

twurl -X GET -H ads-api-sandbox.twitter.com /1/accounts/gq13q1/features | python -m json.tool
    "data": [
    "data_type": "features",
    "request": {
        "params": {
            "account_id": "gq13q1"



Hi @azPHPguru! As far as I know, and if nothing changed in the meantime, the sandbox doesn’t support 100% of all the production API features. I don’t know about your specific use case though.


Hey @azPHPguru,

Apologies for the delay in response. As @majoritasdev mentioned the sandbox doesn’t support 100% of all production API features, specifically the analytics endpoints. These endpoints only collect data on running campaigns, and since sandbox campaigns don’t actually run, these endpoints aren’t available on the sandbox API.

Re: Dynamic ads, you need to grant yourself the DR_TAP_PURE_PERFORMANCE feature on the Sandbox to be able to create those.