How do I deal with changing values in a categorical variable when I am aggregating customer records My requirement is to build a model to predict if a new customer will return to their website. I need to analyze what drives customer repeat for both new and returning customers. The only information given is the dates in which the customer has performed the transaction, the marketing channel through which they came, the deal which they used, their age and income, a flag which says whether they are a new customer or not. The data is for the last 6 years. A customer is regarded as a new customer if they don’t return within 24 months. 

My approach is to aggregate the customer transaction records and derive the variables such as the Average number of visits, the average amount of transaction, create a flag variable which records did they return since their last visit.  My problem here is there are a lot of categorical variables as you can see (marketing channel they came through, the interface they used, their income, the deal program they used, etc) which keeps on changing for the same user in different transactions. How do I deal with those variables?

Any small hint at least is appreciated as I am stuck here completely.
Thanks in advance
The standard option would be to create one feature for each possible pair (variable, category) and use the frequency of this particular pair as value for this particular customer. If the number of times doesn't matter, it could be transformed into a binary feature, i.e. just indicating whether this customer has ever been seen with this category.

In case some categories appear very rarely, it's usually counter-productive to include them so you could have a minimum frequency in order to filter out rare pairs.