in-house affiliate program can do the job for you.
you can setup different sources of traffic as different affiliates (e.g. use direct links or SEO friendly affiliate links of virtual affiliates for tracking)
in our company we track also traffic from marketing channels like adwords with own affiliate program (adwords is our own virtual affiliate) and we receive more accurate data
as adwords and analytics offer in their reports.
e.g. our affiliate program has cookie life much longer as google adwords+analytics - therefore in our affiliate program we have much more accurate data as from analytics.