If I would be very desperate and needed to implement something that allows the amount of flexibility the OP describes, I would use a mix from Keiths solution to store informations common to each/most advertisements and a XMLTYPE column for the yet undefined attributes. This would allow easy searching for data like "active period" or "net profit". For informations stored in the XML you would still need a customized search.
Yet I would like to see the front end, that dynamically creates new kind of advertisements and can query the information without the meta data I mentioned.
I'm a bit more conservative and will only use the approach that Keith demonstrated well. :-)
(that said, I have designed and written a PL/SQL app that extensively used XML and dynamic SQL and dynamic web services calls to perform reconciliation between two systems - it worked fine, providing the users had the savvy to ensure that the meta data they provided for recon was valid, and this was not always the case and there's nothing such a system can do about addressing user's lack of understanding and knowledge when the data models to reconcile are dynamically defined)