Perfecta
Ruby client for the Perfect Audience reporting api
Installation
Add this line to your application's Gemfile:
gem 'perfecta'
And then execute:
$ bundle
Or install it yourself as:
$ gem install perfecta
Usage
Create a new instance of the Perfecta Client
client = Perfecta::Client.new do |c|
c.email = 'email@ddress'
c.password = 'password'
end
This will exchange the credentials for an API token and use this token for all subsequent calls.
You can now use the client instance to query the API.
List all Campaign Reports
p client.campaign_reports.inspect
Optional Query Parameters include
| Name | Type |
|---|---|
| interval | ['today','yesterday','last_7_days','last_30_days','lifetime'] |
| start_date | 'YYYY-MM-DD' |
| end_date | 'YYYY-MM-DD' |
| site_id | 'the_site_id' |
| campaign_id | 'the_site_id' |
and can be used by supplying a hash e.g.
p client.campaign_reports(interval: 'yesterday').inspect
List all Ad Reports
p client.ad_reports.inspect
Any of the additional query parameters from the above table can be supplied as a hash.
List all Conversion Reports
p client.conversion_reports.inspect
Any of the additional query parameters from the above table can be supplied as a hash.
List all Sites
p client.sites.inspect
Show a single Site
p client.site('SITE_ID').inspect
List all Campaigns
p client.campaigns.inspect
Show a single Campaign
p client.campaign('CAMPAIGN_ID').inspect
List all Ads
p client.ads.inspect
Show a single Ad
p client.ad('AD_ID').inspect
List all Segments
p client.segments.inspect
Show a single Segment
p client.segment('SEGMENT_ID').inspect
List all Conversions
p client.conversions.inspect
Show a single Conversion
p client.conversion('CONVERSION_ID').inspect
TODO
- ~~Flesh out the rest of the API~~
- ~~Accept query parameters~~
- Error handling, specifically for when token expires
- Relationships and delegation between of objects
- ~~Get rid of all the duplication~~
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
Contributions
- Support for Ruby-1.8.7 added by @malachaifrazier


