public function apiListCtaLocationsPerCampaignAction($id)
    {
        $repository = $this->getDoctrine()
            ->getRepository('CampaignChainCoreBundle:ReportCTA');
        $qb = $repository->createQueryBuilder('r');
        $qb->select('r')
            ->where('r.campaign = :campaignId')
            ->andWhere('r.sourceLocation = r.targetLocation')
            ->andWhere('r.targetLocation IS NOT NULL')
            ->groupBy('r.sourceLocation')
            ->orderBy('r.sourceName', 'ASC')
            ->setParameter('campaignId', $id);
        $query = $qb->getQuery();
        $locations = $query->getResult();

        $response = array();
        foreach ($locations as $location) {
            $response[] = [
                'id' => $location->getTargetLocation()->getId(),
                'display_name' => $location->getTargetName()
                    .' ('.$location->getTargetUrl().')',
            ];
        }

        $serializer = $this->get('campaignchain.core.serializer.default');

        return new Response($serializer->serialize($response, 'json'));
    }