Lets assume for the moment that the method is an interstitial page and not yet consider the pros and cons of this vs other methods of informing the user.
First, eliminate the undesirable
a) every time they log in?
Let's rule out option a) because that's just too annoying. It's too rigid and demonstrates no intelligence. This is the worst possible option.
Is 'good for the user' good for business?
b) every time but with a "don't show me again" link
While this initially seems like the best course of action - because you are putting control in the user's hands, it's putting a bit too much control in the user's hands. User's don't like ad pages that much so when given control, they see it as an opportunity to avoid them. This is a negative behaviour. Rather than promoting the benefits of the ad page content, you are focusing on the negative action of just removing it for ever. It might be good for the user, but consider whether this helps meet business goals.
c) a fixed number of times?
Examining this option in more detail - lets say the number of times you show the page is N. For the first N times the user logs in, the outcome is identical to option (a). Not until you get to the N+1th time does the situation change.
This means you are starting out behaving identically to the worst possible option. There is not even a hint that things will get better.
But - you can adapt this approach in smarter ways:
You could add an informational countdown: "This page will show the next N times you log in", so that you set expectations right from the beginning. This also has the potential for the user to take more attention as the number of times it will be displayed reduces. From the first time showing of "I don't want to look at this right now" to "I'll take a look before it disappears" to "This is my last chance - I'll take a look before it disappears".
So this is starting to be a bit smarter about informing the user, setting expectations and appealing to the users sense of approaching loss (the sense of scarcity).
Get even smarter
Use rules of persuasion:
The goal is to get the user to act upon the content on the interstitial page. You are asking the the user for a a favour - you want them to show interest and to potentially find out more.
To get the user to be more likely to do this favour you need to have built a relationship with the user and have done something for them first so that the user feels obliged to return the favour by showing interest in your ad page (the sense of reciprocity).
So showing interstitial pages from the beginning is not helping the cause - you're asking for favours before you've shown that you have something to give - there is no case for reciprocity yet.
So consider not showing the pages from the beginning, but waiting until a bit further into the relationship between you and the user. As a trigger, use some method of determination that says 'we have done the user a favour now - maybe the user is ready to do us a favour'. Calculating that point is entirely dependent on the services that your product provides, but shouldn't be difficult.
The favour that you do the user doesn't have to be big or obvious even - frequently users will give back more than you give them. It's a bit like when you receive personalized address labels in the post, research shows (Cialdini Psychology of persuasion 2007) that recipients are much more likely to respond to the rest of the communication. This is a cross cultural effect (Heinrich et al 2001)
For more reading, I recommend Susan Weinschenk's book Neuro Web Design which describes some of these things in more detail.
It might help you think about what the users are thinking and how you can help use that to your advantage in order to get users on your side rather than perhaps being a little bit (or even a lot) against you.