A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:
- generating, based on a user profile, an ad request;
- receiving, from an ad system, a target banner template;
- generating, based on the user profile, a first call to a content recommendation system for a first set of recommended content assets for the target banner template;
- selecting, based on receiving the first set of recommended content assets, a first content asset from the first set of recommended content assets;
- generating, based on a comparison of metadata within the user profile to metadata of the first content asset, a second call to the content recommendation system for a second set of recommended content assets;
- selecting, based on receiving the second set of recommended content assets, a second content asset from the second set of recommended content assets;
- generating, based on a comparison of metadata within the user profile to metadata of the second content asset, a third call to the content recommendation system for a third set of recommended content assets;
- selecting, based on receiving the third set of recommended content assets, a third content asset from the second set of recommended content assets;
- stitching, within the target banner template, an image of the first content asset and an image of the third content asset to form a composite banner;
- and
- rendering the composite banner on a display.