1. A method for optimizing content, comprising: generating, by a processor, two content configurations, each content configuration comprising a plurality of content elements and one or more relationships among the plurality of content elements, the one or more relationships in accordance with a set of rules defining permissible relationships; assembling, by a processing unit, the two content configurations to two pieces of content; conducting an experiment to obtain effectiveness data of the two pieces of content on reaching an optimization objective; and determining relative effectiveness of the two content configurations based on the effectiveness data.