def get_campaigns_array(data):
    if isinstance(data, list):
        return data

    if not isinstance(data, dict):
        return []

    for key in ("data", "campaigns", "results"):
        value = data.get(key)
        if isinstance(value, list):
            return value

    return []


def map_campaign(campaign):
    campaign_id = campaign.get("id") or campaign.get("campaign_id")

    return {
        "id": str(campaign_id),
        "label": campaign.get("name") or campaign.get("campaign_name") or str(campaign_id),
    }


def map_campaigns(data):
    return [map_campaign(campaign) for campaign in get_campaigns_array(data)]
