Direct::API::V5

Gem Version Travis CI Code Climate Test Coverage Dependency Status

Ruby wrapper for Yandex Direct API V5.

Installation

Add this line to your application's Gemfile:

gem 'direct-api-v5'

And then execute:

$ bundle

Or install it yourself as:

$ gem install direct-api-v5

Usage

Settings

  1. Load settings from YML file
  Direct::API::V5.load_settings('config/yandex_direct_api.yml')
  production:
    host: api.direct.yandex.com
    auth_token: token_string
    client_login: login_string
    language: ru

  development:
    host: api-sandbox.direct.yandex.com
    auth_token: token_string
    client_login: login_string
    language: ru
  1. Configure in block
  Direct::API::V5.configure do |config|
    config.host = 'api.direct.yandex.com'
    config.auth_token = 'token_string'
    config. = 'login_string'
    config.language = 'ru'
  end

Create client

api = Direct::API::V5.client

You can set client login (if advertising agency)

api = Direct::API::V5.client(client_login: 'login_string')

Also you can overwrite any default settings:

api = Direct::API::V5.client(host: 'api.direct.yandex.com', auth_token: 'token')

Call methods

Base structure:

api.service_name.method(params)

For example:

response = api.campaigns.get(
  fields: [:id, :name],
  criteria: { states: %w(ON) },
  page: { limit: 100, offset: 200 }
)

response.error?
# => false

response.result
# =>
# {
#   Campaigns: [
#     { Id: 1, Name: "Campaign 1" },
#     ...
#   ]
# }

response.request_id
# => 123456

response.units.spent
# => 10

response.units.available
# => 1000

response.units.daily_limit
# => 2000

response.units.raw
# => 10/1000/2000

If API return error:

response.error?
# => true

response.error.code
# => 54

response.error.message
# => "No rights"

response.error.details
# => "No rights to indicated client"

response.error.to_h
# =>
# {
#   code: 54,
#   message: "No rights",
#   details: "No rights to indicated client"
# }

Contributing

  1. Fork it ( https://github.com/hrom512/direct-api-v5/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request