Added more error handling for when source or campaign is invalid.