0.0
No commit activity in last 3 years
No release in over 3 years
Ruby wrapper for Yandex Direct API V5
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.12
~> 10.5
~> 3.5
~> 2.1

Runtime

~> 0.9
~> 1.12
 Project Readme

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.client_login = '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