def start(self):
        """Starts the advertise loop.

        Returns the result of the first ad request.
        """
        if self.running:
            raise Exception('Advertiser is already running')
        if self.io_loop is None:
            self.io_loop = tornado.ioloop.IOLoop.current()

        self.running = True
        answer = tornado.gen.Future()
        self._schedule_ad(0, answer)
        return answer