Implementation on Tracking Code was okay. But usually for s.campaign we use s.getvalonce plugin to capture the values so that the reloads, back & forth navigation will not be counted as click-throughs. If possible, try to implement the same as that was the best practice.
Yes, this would be a problem if your expiration settings are really set to "1 week" and "90 days". Those are probably not the settings that you currently have though. I would just check in the admin console to make sure the expiration timeframe on these two variables are similar.
But in evaluating your screenshots in response to Arun, it looks like your problem is scenario 2. Your marketing channel processing rules are tagging traffic as "Affiliate Marketing" when there isn't a tracking code available. I would check your marketing channel processing rules to see what is the logic that is flagging traffic as "affiliate marketing"
Ah man... going for a breakdown and finding "unspecified" is always the worst, right? The first things I would check are...
1. Are your variable expirations for tracking code and marketing channels the same? If your tracking code is set to expire after a week, but the marketing channel doesn't expire for 90 days, then 2 weeks after someone clicks through an affiliate campaign, the marketing channel would still be "Affiliate Marketing" but the tracking code would have expired by then. If this is the case, you still might have the tracking code stored in the marketing channel detail report though (if it has been set up to store the tracking code for the affiliate channel)
2. Seeing that marketing channels are set using logic statements, is it possible that your Affiliate Marketing channel logic is looking additional triggers beyond the tracking code (specific landing page or query string parameter).