Get all campains for an article

Unfortunately, there’s no built-in way to do this. You could create your own memory cache and listen for the related events to update the data in it.

Another approach could be the one discussed in this thread where you’re retrieving the campaigns that are currently active. Sort of starting in the other end of your question. Get all the campaigns that a user have "unlocked"

Keep performance in mind if these are frequent calls.