generateCampaignItems is more generic