Response shortly.
Cache campaign query result in memcache.

Cache both success and fail queries.
Show publish state.
Add button to toggle campaign publish state.

Use XMLHttpRequest to send POST request on button click event.
TODO: new publish state doesn't refresh immediately.