I've done similar things a lot, in this case it was because the first cooker had too large a minimum cooking amount. I'm currently looking at buying my mother google WiFi - which I bought a few weeks ago. And a few months back I rebought a tool I had just purchased because I lost it.
I currently work for a (responsible) own site adtech (personalization) company. Its surprising what behaviours our clients find profitable for their business.
It seems like an effective ad would be this: Say you bought a rice cooker on Amazon for $75. Now Walmart shows you an ad for the same rice cooker for $60. That would certainly stick in my head- not for the rice cooker but for the price difference that Walmart can provide.
With the Google wifi I had forgotten, and it caused me tk reconsider and write it on my whiteboard.
The tool I wpuld purchase anyway.
One thing to keep in mind is that the purchase data is per-user, so it's different from the segment approach I was mentioning above. It would require a whole new schema* that is queried whenever bids are processed for an ad event.
* Sorry for using the word schema here. It was used a lot on a team I was on in a similar context, and it bothered me at first but I got used to it. What I mean by schema is a "blob" with purchase data that is periodically processed by the bidding subsystem to add bid exclusions per user.
Is it possible the ratio is so large to where while it obviously could be optimized to exclude people who have since purchased said item - the optimization is only a rounding error, and may not turn out to be worth it?