You could store using the userID as rowKey and sets of productIds (you can think it as pages) as columns. The value would contain a serialized list of productIds.
Potentially you could separate the first pages into a separate column family, to prevent load all the columns (pages). Beware that Apache HBase does not perform well with more than 2-3 CFs ( http://hbase.apache.org/book/number.of.cfs.html ). MapR Tables commercial product overcomes this by increasing the limit to 64 column families per table.
If the user gets exposed to the first pages' products, you can cycle them with the other column families.