PHP wrapper for [Compete API](https://www.compete.com/developer/).
## Examples of usage
Wrapper has generic method `get`. You can retrieve any kind of metric via this method:
```php
<?php
require 'Compete.php';
// Create API wrapper instance
$compete = new Compete('YOUR_API_KEY');
// Basic usage
$data = $compete->get('SOME_DOMAIN', 'METRIC_CODE');
// Get the number of people who visited a domain
$data = $compete->get('facebook.com', 'uv');
// Get the ranking of the domain by total number of unique visitors
$data = $compete->get('google.com', 'rank');
```
Here is list of available metrics:
<table cellpadding="0" cellspacing="0"><tbody><tr><td bgcolor="#eee">Metric Name</td><td bgcolor="#eee">Basic or All-Acces?</td><td bgcolor="#eee">description</td><td bgcolor="#eee">metric code</td></tr><tr><td class="first_column">Unique Visitors</td><td>Basic</td><td align="left" class="third_column">The number of people who visited a domain</td><td><em>uv</em></td></tr><tr><td bgcolor="#f0f0f0" class="first_column">Visits</td><td bgcolor="#f0f0f0">Basic</td><td align="left" bgcolor="#f0f0f0" class="third_column">The number of separate visits made to a domain by all unique visitors</td><td bgcolor="#f0f0f0"><em>vis</em></td></tr><tr><td class="first_column">Rank</td><td>Basic</td><td align="left" class="third_column">The ranking of the domain by total number of unique visitors</td><td><em>rank</em></td></tr><tr><td bgcolor="#f0f0f0" class="first_column">Page Views</td><td bgcolor="#f0f0f0">All-Access</td><td align="left" bgcolor="#f0f0f0" class="third_column">The number of times a page has been loaded from a domain</td><td bgcolor="#f0f0f0"><em>pv</em></td></tr><tr><td class="first_column">Average Stay</td><td>All-Access</td><td align="left" class="third_column">The average number of seconds that a visit lasts </td><td><em>avgstay</em></td></tr><tr><td bgcolor="#f0f0f0" class="first_column">Visits/Person</td><td bgcolor="#f0f0f0">All-Access</td><td align="left" bgcolor="#f0f0f0" class="third_column">The average number of times each unique visitor visits the domain</td><td bgcolor="#f0f0f0"><em>vpp</em></td></tr><tr><td class="first_column">Pages/Visit</td><td>All-Access</td><td align="left" class="third_column">The average number of pages displayed during a visit</td><td><em>ppv</em></td></tr><tr><td bgcolor="#f0f0f0" class="first_column">Attention</td><td bgcolor="#f0f0f0">All-Access</td><td align="left" bgcolor="#f0f0f0" class="third_column">The percent of total minutes spent by all US users on the internet that were spent on this domain</td><td bgcolor="#f0f0f0"><em>att</em></td></tr><tr><td class="first_column"> Reach (daily)</td><td>All-Access</td><td align="left" class="third_column">The percent of all US users on the internet that had at least one visit to this domain by day</td><td><em>reachd</em></td></tr><tr><td bgcolor="#f0f0f0" class="first_column">Attention (daily)</td><td bgcolor="#f0f0f0">All-Access</td><td align="left" bgcolor="#f0f0f0" class="third_column">The percent of total minutes spent by all US users on the internet that were spent on this domain by day</td><td bgcolor="#f0f0f0"><em>attd</em></td></tr><tr><td class="first_column">Gender</td><td>All-Access</td><td align="left" class="third_column">The split between males and females visiting a domain</td><td><em>gen</em></td></tr><tr><td bgcolor="#f0f0f0" class="first_column">Age</td><td bgcolor="#f0f0f0">All-Access</td><td align="left" bgcolor="#f0f0f0" class="third_column">Percent of unique visitors in various age brackets</td><td bgcolor="#f0f0f0"><em>age</em></td></tr><tr><td class="first_column">Income</td><td>All-Access</td><td align="left" class="third_column">Percent of unique visitors in various income brackets</td><td><em>inc</em></td></tr></tbody></table>
Also you can use specific methods for getting data:
```php
<?php
// The number of people who visited a domain
$compete->uniqueVisitors('example.com');
// The number of separate visits made to a domain by all unique visitors
$compete->visits('example.com');
// The ranking of the domain by total number of unique visitors
$compete->rank('example.com');
// The number of times a page has been loaded from a domain
$compete->pageViews('example.com');
// The average number of seconds that a visit lasts
$compete->averageStay('example.com');
// The average number of times each unique visitor visits the domain
$compete->visitsPerson('example.com');
// The average number of pages displayed during a visit
$compete->pagesVisit('example.com');
// The percent of total minutes spent by all US users
// on the internet that were spent on this domain
$compete->attention('example.com');
// The percent of all US users on the internet that
// had at least one visit to this domain by day
$compete->dailyReach('example.com');
// The percent of total minutes spent by all US users
// on the internet that were spent on this domain by day
$compete->dailyAttention('example.com');
// The split between males and females visiting a domain
$compete->gender('example.com');
// Percent of unique visitors in various age brackets
$compete->age('example.com');
// Percent of unique visitors in various income brackets
$compete->income('example.com');
```
## Response format
Return values have same format but decoded via `json_decode` (wrapped in `stdClass`).
Trends field name depends on specific metric.
```json
{
"status": "OK",
"data": {
"trends": {
"uv": [
{"date": "200906", "value": 90714948},
{"date": "200907", "value": 98292793},
{"date": "200908", "value": 103509116},
...
]
},
"trends_low_sample": false,
"query_cost": 13,
"trends_frequency": "monthly"
}
}
```
## Errors
If there is some error in request wrapper will throw `CompeteException`.
## TODO
* Add support for additional request params(date, graph, ...)
|