Overview

Namespaces

  • Ctct
    • Auth
    • Components
      • Account
      • Activities
      • Contacts
      • EmailMarketing
      • Tracking
    • Exceptions
    • Services
  • PHP

Classes

  • AccountService
  • ActivityService
  • BaseService
  • CampaignScheduleService
  • CampaignTrackingService
  • ContactService
  • ContactTrackingService
  • EmailMarketingService
  • ListService
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: namespace Ctct\Services;
  3: 
  4: use Ctct\Util\RestClient;
  5: use Ctct\Util\Config;
  6: use Ctct\Components\Tracking\BounceActivity;
  7: use Ctct\Components\Tracking\TrackingActivity;
  8: use Ctct\Components\Tracking\ClickActivity;
  9: use Ctct\Components\Tracking\ForwardActivity;
 10: use Ctct\Components\Tracking\OpenActivity;
 11: use Ctct\Components\Tracking\OptOutActivity;
 12: use Ctct\Components\Tracking\SendActivity;
 13: use Ctct\Components\Tracking\TrackingSummary;
 14: use Ctct\Components\ResultSet;
 15: 
 16: /**
 17:  * Performs all actions pertaining to Constant Contact Campaign Tracking
 18:  *
 19:  * @package     Services
 20:  * @author         Constant Contact
 21:  */
 22: class CampaignTrackingService extends BaseService
 23: {
 24: 
 25:     /**
 26:      * Get a result set of bounces for a given campaign
 27:      * @param string $accessToken - Constant Contact OAuth2 access token
 28:      * @param string $campaign_id - Campaign id
 29:      * @param array $params - query parameters to be appended to the request
 30:      * @return ResultSet - Containing a results array of {@link BounceActivity}
 31:      */
 32:     public function getBounces($accessToken, $campaign_id, Array $params = null)
 33:     {
 34:         $baseUrl = Config::get('endpoints.base_url') .
 35:             sprintf(Config::get('endpoints.campaign_tracking_bounces'), $campaign_id);
 36:         
 37:         $url = $this->buildUrl($baseUrl, $params);
 38:         
 39:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
 40:         $body = json_decode($response->body, true);
 41:         $bounces = array();
 42:         foreach ($body['results'] as $bounceActivity) {
 43:             $contacts[] = BounceActivity::create($bounceActivity);
 44:         }
 45:         return new ResultSet($contacts, $body['meta']);
 46:     }
 47: 
 48:     /**
 49:      * Get clicks for a given campaign
 50:      * @param string $accessToken - Constant Contact OAuth2 access token
 51:      * @param string $campaign_id - Campaign id
 52:      * @param array $param - query params to be appended to request
 53:      * @return TrackingActivity - Containing a results array of {@link ClickActivity}
 54:      */
 55:     public function getClicks($accessToken, $campaign_id, Array $params = null)
 56:     {
 57:         $baseUrl = Config::get('endpoints.base_url') .
 58:             sprintf(Config::get('endpoints.campaign_tracking_clicks'), $campaign_id);
 59: 
 60:         $url = $this->buildUrl($baseUrl, $params);
 61: 
 62:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
 63:         $body = json_decode($response->body, true);
 64: 
 65:         $clicks = array();
 66:         foreach ($body['results'] as $click_activity) {
 67:             $clicks[] = ClickActivity::create($click_activity);
 68:         }
 69: 
 70:         return new ResultSet($clicks, $body['meta']);
 71:     }
 72: 
 73:     /**
 74:      * Get forwards for a given campaign
 75:      * @param string $accessToken - Constant Contact OAuth2 access token
 76:      * @param string $campaign_id - Campaign id
 77:      * @param array $param - query param to be appended to request
 78:      * @return ResultSet - Containing a results array of {@link ForwardActivity}
 79:      */
 80:     public function getForwards($accessToken, $campaign_id, Array $params = null)
 81:     {
 82:         $baseUrl = Config::get('endpoints.base_url') .
 83:             sprintf(Config::get('endpoints.campaign_tracking_forwards'), $campaign_id);
 84: 
 85:         $url = $this->buildUrl($baseUrl, $params);
 86: 
 87:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
 88:         $body = json_decode($response->body, true);
 89:         $forwards = array();
 90:         foreach ($body['results'] as $forward_activity) {
 91:             $forwards[] = ForwardActivity::create($forward_activity);
 92:         }
 93: 
 94:         return new ResultSet($forwards, $body['meta']);
 95:     }
 96: 
 97:     /**
 98:      * Get opens for a given campaign
 99:      * @param string $accessToken - Constant Contact OAuth2 access token
100:      * @param string $campaign_id - Campaign id
101:      * @param array $params - query params to be appended to request
102:      * @return ResultSet - Containing a results array of {@link OpenActivity}
103:      */
104:     public function getOpens($accessToken, $campaign_id, Array $params = null)
105:     {
106:         $baseUrl = Config::get('endpoints.base_url') .
107:             sprintf(Config::get('endpoints.campaign_tracking_opens'), $campaign_id);
108: 
109:         $url = $this->buildUrl($baseUrl, $params);
110: 
111:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
112:         $body = json_decode($response->body, true);
113:         $opens = array();
114:         foreach ($body['results'] as $open_activity) {
115:             $opens[] = OpenActivity::create($open_activity);
116:         }
117: 
118:         return new ResultSet($opens, $body['meta']);
119:     }
120: 
121:     /**
122:      * Get sends for a given campaign
123:      * @param string $accessToken - Constant Contact OAuth2 access token
124:      * @param string $campaign_id - Campaign id
125:      * @param Array $param - query params to be appended to request
126:      * @return TrackingActivity - Containing a results array of {@link SendActivity}
127:      */
128:     public function getSends($accessToken, $campaign_id, Array $params = null)
129:     {
130:         $baseUrl = Config::get('endpoints.base_url') .
131:             sprintf(Config::get('endpoints.campaign_tracking_sends'), $campaign_id);
132: 
133:         $url = $this->buildUrl($baseUrl, $params);
134: 
135:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
136:         $body = json_decode($response->body, true);
137:         $sends = array();
138:         foreach ($body['results'] as $send_activity) {
139:             $sends[] = SendActivity::create($send_activity);
140:         }
141: 
142:         return new ResultSet($sends, $body['meta']);
143:     }
144: 
145:     /**
146:      * Get unsubscribes for a given campaign
147:      * @param string $accessToken - Constant Contact OAuth2 access token
148:      * @param string $campaign_id - Campaign id
149:      * @param array $param - query params to be appended to request
150:      * @return ResultSet - Containing a results array of {@link OptOutActivity}
151:      */
152:     public function getUnsubscribes($accessToken, $campaign_id, Array $params = null)
153:     {
154:         $baseUrl = Config::get('endpoints.base_url') .
155:             sprintf(Config::get('endpoints.campaign_tracking_unsubscribes'), $campaign_id);
156: 
157:         $url = $this->buildUrl($baseUrl, $params);
158: 
159:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
160:         $body = json_decode($response->body, true);
161:         $opt_outs = array();
162:         foreach ($body['results'] as $opt_out_activity) {
163:             $opt_outs[] = OptOutActivity::create($opt_out_activity);
164:         }
165: 
166:         return new ResultSet($opt_outs, $body['meta']);
167:     }
168: 
169:     /**
170:      * Get a summary of reporting data for a given campaign
171:      * @param string $accessToken - Constant Contact OAuth2 access token
172:      * @param int $campaign_id - Campaign id
173:      * @return TrackingSummary
174:      */
175:     public function getSummary($accessToken, $campaign_id)
176:     {
177:         $url = Config::get('endpoints.base_url') .
178:             sprintf(Config::get('endpoints.campaign_tracking_summary'), $campaign_id);
179:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
180:         return TrackingSummary::create(json_decode($response->body, true));
181:     }
182: }
183: 
Appconnect PHP SDK API documentation generated by ApiGen 2.8.0