show x number of posts from y category on homepage

That sounds outside the scope of what you’re going to get from query_posts. If you have a custom template for your home page and you want to sprinkle in advertisement posts I would change the query_posts() that excludes the advertisement category, do a separate get_posts() for 2 posts in the advertisement category, and then put them after the fourth and eighth (or something like that) non-advertisement posts in the loop.

The other way would be to increase your posts_per_page by a few and count each advertisement post as you display it in the loop. If any come up after the second one, just skip them.

tech