better logic for campaign info