Небольшая инструкция, как сгенерировать deeplink в Admitad через API используя php
Первым делом нам нужно получить API ключи. Для этого идем в настройки аккаунта, далее API и приложения.
Нам будут доступны три ключа: client_id, client_secret и base64_header, чтобы их скопировать нужно нажать кнопку – Показать учетные данные
У Admitad есть документация по работе с API, Для генерирования deeplink будем пользоваться инструкцией из документации.
Пример запроса с сайта admitad:
1 2 3 |
curl -L -H 'Authorization: Bearer access_token' -X GET https://api.admitad.com/deeplink/232236/advcampaign/234433/?ulp=https://site.ru/index.html |
Как видно из примера запроса, мы в заголовке должны передать access_token, чтобы его получить, нужно создать приложение с указанием прав доступа.
GET должен быть вида:
1 2 3 |
https://api.admitad.com/deeplink/{w_id}/advcampaign/{c_id}/ |
w_id – это id нашей площадки, а c_id – это id партнерской программы, deeplink которой мы хотим получить.
Исходя из таблице , у приложения должен быть доступ deeplink_generator
Для того, чтобы создать приложение с определенными правами доступа, нам понадобятся два ключа: client_id и base64_header
Сформируем запрос, который создаст приложение с рядом прав:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$postdata=array( 'grant_type' => 'client_credentials', 'client_id' => '<client_id>', 'scope' => 'advcampaigns banners websites deeplink_generator advcampaigns_for_website' ); $opts=array('http'=>array( 'header' => 'Authorization: Basic <base64_header>', 'method' => 'POST', 'content'=> http_build_query($postdata) ) ); $context=stream_context_create($opts); $url = "https://api.admitad.com/token/"; $mas=json_decode(file_get_contents($url,false,$context)); print_r($mas); |
Список прав перечисляется через пробел в scope. Вместо <base64_header> и <client_id> подставите свои ключи.
После выполнение запроса вам придет JSON ответ, от куда вы возьмете access_token
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
stdClass Object ( [username] => '' [first_name] => Yuriy [last_name] => '' [group] => webmaster [language] => ru [access_token] => "XXXXXXXXXXXXXXXXXXX" [expires_in] => [token_type] => bearer [code] => [scope] => advcampaigns banners websites deeplink_generator advcampaigns_for_website [id] => [refresh_token] => ) |
Следующий этап, это нужно узнать id площадки (w_id) и id партнерской программы (с_id )
ID площадки будем получать по примеру с официальной страницы документации
Пример из документации
curl -L -H 'Authorization: Bearer access-token' -X GET https://api.admitad.com/websites/v2/
Как видно, в этом примере мы будем использовать access-token, который получили ранее.
Отправим GET запрос, и сама форма записи может быть уже проще, показываю разные варианты:
1 2 3 4 5 6 7 8 9 10 |
$opts=array('http'=>array( 'header' => 'Authorization: Bearer <access_token>', ) ); $context=stream_context_create($opts); $url = "https://api.admitad.com/websites/v2/"; $mas=json_decode(file_get_contents($url,false,$context)); print_r($mas); |
Вместо <access_token> подставите полученный ранее access_token
У меня только одна площадка зарегистрирована, поэтому ответ имеет следующий вид:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Array ( [0] => stdClass Object ( [status] => active [kind] => other [is_old] => [account_id] => [verification_code] => [creation_date] => 2017-08-23 [adservice] => [id] => 'XXXXXX' [site_url] => http://site.ru/ [validation_passed] => 1 [name] => 'Описание' [is_lite] => ) ) |
id – это и есть наш (w_id)
Теперь нужно получить список партнерских программ. Для этого воспользуемся следующим примером из документации
curl -L -H 'Authorization: Bearer access_token' -X GET https://api.admitad.com/advcampaigns/website/22/?limit=1
В этом примере 22 – это id площадки (w_id), а limit ограничит количество выдаваемых партнерских программ.
Создадим запрос:
1 2 3 4 5 6 7 8 9 10 11 |
$opts=array('http'=>array( 'header' => 'Authorization: Bearer <access_token>', ) ); $context=stream_context_create($opts); $url = "https://api.admitad.com/advcampaigns/website/(w_id)/?limit=1"; $mas=json_decode(file_get_contents($url,false,$context)); print_r($mas); |
Вместо <access_token> и (w_id) подставляете свои значения.
В ответ будет выдан достаточно большой json ответ, я покажу только ту часть, где будет виден id площадки (с_id)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
stdClass Object ( [_meta] => stdClass Object ( [count] => 6 [limit] => 1 [offset] => 0 ) [results] => Array ( [0] => stdClass Object ( [id] => 6158 [name] => 'Название площадки' [site_url] => http://site.com/ |
В этом примере (с_id) – это id = 6158.
Теперь можно создать deeplink
1 2 3 4 5 6 7 8 9 10 11 |
$opts=array('http'=>array( 'header' => 'Authorization: Bearer <access_token>', ) ); $context=stream_context_create($opts); $url = 'https://api.admitad.com/deeplink/(w_id)/advcampaign/(с_id )/?ulp=https://site.com/index.html'; $mas=json_decode(file_get_contents($url,false,$context)); print_r($mas); |
В ulp вы подставляете адрес страницы, deeplink которой вы хотите сформировать. Можно передать до 200 ссылок, все они должны иметь вид: ?ulp=<link site>&ulp=<link site>…&ulp=<link site>