Pushing an ad through the API - doesn't start until I manually save through the UI?


Hi! I’ve pushed a few ad campaigns through the API, and they show up + are in “Running” state when I check the UI, but generate 0 impressions (even after a day+ of sitting idle).

However, the moment that I click “Edit Campaign”, change nothing, and hit “Save and exit”, the campaign starts generating impressions.

  • Tweets are present
  • Cards exist
  • Targeting criteria: 1 list (~200k), 1 location (USA)
  • Automatic bid, non-trivial daily budget, no total budget

Yesterday I started 3 ads through the API just to test my hypothesis; none garnered impressions at first. 6 hours later I save&exited one of them without making any changes, now it’s the only one with any impressions/stats on it.

Thoughts on why this might occur? Happy to provide any endpoints hit etc.


Campaign doesn't start until resuming it through ads.twitter.com


Please go ahead and send an example of campaign ID/line item ID and account ID next time you believe this is happening, but also check that:

  1. “servable” field is true (if it’s not, there would be text in “reasons_not_servable” field)
  2. “paused” field is false (it’s recommended to default this to true until you are really ready to start the campaign, because often you would associate some targeting criteria before wanting to start the campaign)
  3. Start Date is set to what you expect (adjusted by time zone, see https://dev.twitter.com/ads/basics/timezones)




Hi @JBabichJapan ! I’ve still been having this issue. Will PM you the line item ID, Campaign ID and account ID.

I’m doing the following in this order through the API:

  1. Adding new images and getting the media IDs to use for creating cards

  2. POST to cards/website creating cards with the above-provided media ID

  3. POST to /tweets creating new tweets, with the above-created card urls

  4. POST to /campaigns with, for example, the following:


  5. POST to /line_items with the ID provided from the campaign created above, with paused set to TRUE

  6. POST to /promoted_tweets with the IDs of the tweets created in step 3, and the line_item_id from step 5

  7. POST to /targeting_criteria to associate the above line item with a Tailored Audience (~200k users)

  8. POST to /targeting_criteria to associate the above line item with a location (USA)

  9. Finally, PUT to /line_items with the ID created in step 5, with paused set to false

The start time from step 4 is always 20 seconds after the POST is made.

The campaign gets created, with all tweets, tailored audience, location, budget, etc. set and viewable through the UI, yet no impressions are ever garnered until I physically go in, “Edit Campaign”, and simply save and exit.

Am I missing something?

Will PM you the relevant account details now.

Thanks in advance for your help!

Issues with Running Follower Campaigns via Ads API

Hi all - still looking for feedback on this, and hoping someone can help. Would be happy to provide campaign IDs to any staff member.


Hi Phil,

Sorry for the delay in replying here. I think I found your campaign in our internal system and do not see a record of it being unpaused, so my guess is that the Step #9 from your list did not actually happen successfully. I see some campaigns for that account being created and then deleted, please confirm whether you still think this is an issue and I can try to help but in general I don’t see anything popping out as being set incorrectly.




Hi @JBabichJapan / Twitter staff – finally getting around to revisiting this issue. I’d been patchwork manually editing campaigns in the Ads UI for the past couple weeks, but this is not ideal.

Today, about 90 minutes ago, I launched 2 new ad campaigns; the final step was unpausing them, same as the step 9 above.

Though they were not generating any impressions, they in fact hat servable = true and paused = false in their data when returned from the API (this is a combined return):

When, after an hour, neither had generated impressions, I tried hitting the endpoint to unpause one of them again. 30 minutes later, still no impressions.

The two IDs are 2whrm and 2whrl; I won’t edit them any further in case you’d like to see if you’re able to detect the problem with them.

Here’s my unpause request string:

And response from the API:

I’m pretty stumped by this, unfortunately :frowning:

Any help would be very appreciated!


Hi – this is starting to become a really pressing priority for us and we’re still unable to get ads going through just the API. Any ideas what I’m doing wrong w/ unpausing?


Hi Phil,

Sorry for delays in following up with this - I took a quick look at the line item info and the first thing that pops out to me is that it’s an Auto Bid campaign but I’m not sure if the UI (ads.twitter.com) is recognizing it as one, so one thing I might ask you to try is to set bid_amount_local_micro= as an empty string when you do the PUT to ensure that we “unset” any bid that is on the line item. Are all of the campaigns you are trying to get impressions from set up as auto-bid? If there is a case which is not auto please let us know.




Hi @JBabichJapan – thanks for the feedback. I’ve tried setting the bid_amount_local_micro as an empty string on PUT as you suggested, but after an hour, still no dice.

I’ve since tried to see what else I could do to make this work; tried doing max bid to no avail for example:

            "endpoint": "accounts/18ce53vvrko/line_items/2whrm",
            "args": {
"paused": "false",
"automatically_select_bid": "false",
"bid_amount_local_micro": "1000000",


which seems to be okay, but still no impressions rolling in.

Any idea what else might be going on? I’d be very happy to screenshare and walk anybody through this as well.


I’m apprehensive about going into the ads UI and simply opening/saving this to see what changes, though I’m sure it’ll cause the ad to start garnering impressions, but if you wanted to go into the UI and start it to see what actually changed on your end, that would be more than fine! Anything to come to a solution.



Hi @JBabichJapan – if you have any time coming up, I’d love to walk through the problem with you via screenshare or otherwise. Let me know if you have any ideas or time to take a look – thanks!


Hi Phil,

Sorry I haven’t had time to look into this in much great detail - but please know that I can’t actually click Save on your campaigns to do what you said about seeing what has changed from API perspective.

I reviewed the line item settings pretty closely and nothing pops out at me as being incorrect for serving. The next logical thing is actually reach and checking reach_estimate endpoint. It’s theoretically possible that the campaign for whatever reason is not currently set up with enough reach to actually serve (either bid being too low, or tailored audience too restricted, something like that), it would be great if you can investigate from that angle and try to figure out if there is something that changes regarding to targeting.

If you do save those later campaigns and see spikes of impressions - please let me know and I will try to check if I see anything in internal audit log, but I am thinking the issue is likely more to do with how the campaign is set up because we have no other reports of this sort of issue.




Hi @JBabichJapan - thanks for looking into this. I’ll have a look at the reach_estimate endpoint, but the campaigns in question (which are still untouched but running) have a Reach Estimate in the endpoint of 49,000:

So, I’ll keep taking a look at what might be happening here but I’m still a bit stuck.


Hi Phil,

Did you have any luck here? I might have to get you to save one of those old test campaigns in ads.twitter.com if you haven’t figured out anything (and I can try to check audit log for what changes)

Thanks and sorry for so many delays in resolving your issue here,



Hi @JBabichJapan ! Still no luck with the campaign. Happy to save an older test campaign through the ads.twitter.com UI. Let me know and I can provide the ID then make the save.


Yes please go ahead and save the campaign and include the # of impressions you see before and after when you report the ID.


Okay! Just opened both campaigns -> “Edit Campaign” -> “Save and exit” without making any other changes on the following:

  • 2uysj / 4804003 (2 previous impressions)
  • 2uysk / 4804004 (91 previous impressions)

Will report back in an hour or two with updated impression #s!


Just 21 minutes later, the campaigns (with 2 and 91 impressions since launch on august 5th) now have 229 and 1,120 apiece:

Any advice on why the simple save causes this would be much appreciated, thanks!


Hi @JBabichJapan – sorry, but it looks like someone on my team unknowingly deleted the tweets in question this morning. Hopefully any data about what was happening was garnered, otherwise I’d be very happy to walk you through the problem over a screenshare at some point.



Hi Phil

Sorry this is a taking a long time to get to the bottom, from our audit logs it’s difficult to determine what the problem is but it’s a little suspicious that some things are listed (like adding an audience) only upon September 8.

Could you please to create a campaign in servable state one more time (from your tool) and send us the campaign ID and we will go ahead and check the settings. Please create it in a way that you are sure will get impressions (the starting bid of .10 is definitely not high enough and it’s possible that it would have only gotten impressions after being raised to 1.00)