ネイティブ広告
curl --request GET \
--url https://api-v2.adrop.io/request \
--header 'Authorization: <authorization>'import requests
url = "https://api-v2.adrop.io/request"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api-v2.adrop.io/request', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-v2.adrop.io/request",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-v2.adrop.io/request"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-v2.adrop.io/request")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-v2.adrop.io/request")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"code": 0,
"msg": "OK",
"result": {
"id": "ad_123456",
"format": "nativeAd",
"unit": "YOUR_UNIT_ID",
"w": 320,
"h": 250,
"ad": "<div>...</div>",
"headline": "広告タイトル",
"body": "広告本文の内容です。",
"callToAction": "詳しく見る",
"destinationURL": "https://example.com/landing",
"target": "external",
"profile": {
"displayLogo": "https://cdn.adrop.io/logo.png",
"displayName": "広告主名",
"link": "https://advertiser.com"
}
}
}
{
"code": 0,
"msg": "OK",
"result": {
"id": "ad_123456",
"format": "nativeAd",
"unit": "YOUR_UNIT_ID",
"w": 320,
"h": 250,
"headline": "広告タイトル",
"body": "広告本文の内容です。",
"callToAction": "詳しく見る",
"destinationURL": "https://example.com/landing",
"asset": "https://cdn.adrop.io/creative.jpg",
"pixelTracker": "<img src='...' />",
"imprTracker": "https://api-v2.adrop.io/impression/...",
"clickTracker": "https://api-v2.adrop.io/click/...",
"profile": {
"displayLogo": "https://cdn.adrop.io/logo.png",
"displayName": "広告主名",
"link": "https://advertiser.com"
}
}
}
REST API
ネイティブ広告
REST APIを使用してネイティブ広告をリクエストする方法を案内します。
GET
/
request
ネイティブ広告
curl --request GET \
--url https://api-v2.adrop.io/request \
--header 'Authorization: <authorization>'import requests
url = "https://api-v2.adrop.io/request"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api-v2.adrop.io/request', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-v2.adrop.io/request",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-v2.adrop.io/request"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-v2.adrop.io/request")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-v2.adrop.io/request")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"code": 0,
"msg": "OK",
"result": {
"id": "ad_123456",
"format": "nativeAd",
"unit": "YOUR_UNIT_ID",
"w": 320,
"h": 250,
"ad": "<div>...</div>",
"headline": "広告タイトル",
"body": "広告本文の内容です。",
"callToAction": "詳しく見る",
"destinationURL": "https://example.com/landing",
"target": "external",
"profile": {
"displayLogo": "https://cdn.adrop.io/logo.png",
"displayName": "広告主名",
"link": "https://advertiser.com"
}
}
}
{
"code": 0,
"msg": "OK",
"result": {
"id": "ad_123456",
"format": "nativeAd",
"unit": "YOUR_UNIT_ID",
"w": 320,
"h": 250,
"headline": "広告タイトル",
"body": "広告本文の内容です。",
"callToAction": "詳しく見る",
"destinationURL": "https://example.com/landing",
"asset": "https://cdn.adrop.io/creative.jpg",
"pixelTracker": "<img src='...' />",
"imprTracker": "https://api-v2.adrop.io/impression/...",
"clickTracker": "https://api-v2.adrop.io/click/...",
"profile": {
"displayLogo": "https://cdn.adrop.io/logo.png",
"displayName": "広告主名",
"link": "https://advertiser.com"
}
}
}
ネイティブ広告は構造化データで返されるため、アプリやWebのデザインに合わせてカスタムUIを実装できます。
リクエストパラメータ
ヘッダー
App Key(adrop_service.jsonで確認)
クエリパラメータ
ネイティブ広告ユニットID
ユーザー固有識別子。広告配信頻度制御とターゲティングに使用されます。
プラットフォーム。
android、ios、webのいずれかロケール。例:
ja_JP、en_USテーマモード。
lightまたはdarkコンテキストターゲティングID
1に設定するとアセットURLとトラッキングピクセルを返却。この場合、インプレッションとクリックトラッキングを直接実装する必要があります。広告識別子(デバイスプレビュー時必須)
レスポンス
レスポンスコード。
0は成功を意味します。レスポンスメッセージ
広告データ
表示 result プロパティ
表示 result プロパティ
広告ID
広告フォーマット。
nativeAd広告ユニットID
広告幅(px)
広告高さ(px)
HTML広告コンテンツ(trackModeなしの場合)
広告タイトル
広告本文
CTAボタンテキスト
クリック時の遷移先URL
ブラウザターゲット。
externalまたはinternal画像URL(trackMode=1)
インプレッショントラッキングピクセルHTML(trackMode=1)
インプレッショントラッキングURL(trackMode=1)
クリックトラッキングURL(trackMode=1)
{
"code": 0,
"msg": "OK",
"result": {
"id": "ad_123456",
"format": "nativeAd",
"unit": "YOUR_UNIT_ID",
"w": 320,
"h": 250,
"ad": "<div>...</div>",
"headline": "広告タイトル",
"body": "広告本文の内容です。",
"callToAction": "詳しく見る",
"destinationURL": "https://example.com/landing",
"target": "external",
"profile": {
"displayLogo": "https://cdn.adrop.io/logo.png",
"displayName": "広告主名",
"link": "https://advertiser.com"
}
}
}
{
"code": 0,
"msg": "OK",
"result": {
"id": "ad_123456",
"format": "nativeAd",
"unit": "YOUR_UNIT_ID",
"w": 320,
"h": 250,
"headline": "広告タイトル",
"body": "広告本文の内容です。",
"callToAction": "詳しく見る",
"destinationURL": "https://example.com/landing",
"asset": "https://cdn.adrop.io/creative.jpg",
"pixelTracker": "<img src='...' />",
"imprTracker": "https://api-v2.adrop.io/impression/...",
"clickTracker": "https://api-v2.adrop.io/click/...",
"profile": {
"displayLogo": "https://cdn.adrop.io/logo.png",
"displayName": "広告主名",
"link": "https://advertiser.com"
}
}
}
トラッキング実装
trackMode=1を使用する場合、インプレッションとクリックイベントを直接トラッキングする必要があります。
インプレッショントラッキング
広告が画面に表示されたらimprTracker URLを呼び出します:
// 広告がビューポートに入ったとき
fetch(response.result.imprTracker);
クリックトラッキング
ユーザーが広告をクリックしたら、まずclickTracker URLを呼び出してからdestinationURLに移動します:
function handleAdClick(adData) {
// クリックトラッキング
fetch(adData.clickTracker).then(() => {
// ランディングページに移動
window.open(adData.destinationURL, '_blank');
});
}
カスタムレンダリング例
<div class="native-ad" id="native-ad-container">
<div class="ad-profile">
<img class="ad-logo" />
<span class="ad-advertiser"></span>
</div>
<img class="ad-image" />
<h3 class="ad-headline"></h3>
<p class="ad-body"></p>
<button class="ad-cta"></button>
</div>
<script>
fetch('https://api-v2.adrop.io/request?unit=YOUR_UNIT_ID&trackMode=1', {
headers: { 'Authorization': 'YOUR_APP_KEY' }
})
.then(res => res.json())
.then(data => {
if (data.code === 0) {
const ad = data.result;
// 広告コンテンツをレンダリング
document.querySelector('.ad-logo').src = ad.profile.displayLogo;
document.querySelector('.ad-advertiser').textContent = ad.profile.displayName;
document.querySelector('.ad-image').src = ad.asset;
document.querySelector('.ad-headline').textContent = ad.headline;
document.querySelector('.ad-body').textContent = ad.body;
document.querySelector('.ad-cta').textContent = ad.callToAction;
// インプレッショントラッキング
fetch(ad.imprTracker);
// クリックイベント
document.getElementById('native-ad-container').onclick = () => {
fetch(ad.clickTracker).then(() => {
window.open(ad.destinationURL, '_blank');
});
};
}
});
</script>
関連ドキュメント
バナー広告
HTMLバナー広告の実装
ターゲティング設定
ユーザー属性とターゲティング設定
このページは役に立ちましたか?
⌘I