エラーコード一覧
| コード | 定数 | メッセージ | 説明 |
|---|
0 | OK | OK | 成功 |
4000 | ERROR_CODE_INVALID_UNIT | Invalid unit | 無効な広告ユニットID |
4001 | ERROR_CODE_AD_INACTIVE | Ad inactive | 有効な広告キャンペーンなし |
4002 | ERROR_CODE_AD_NO_FILL | No fill | 条件に合う広告なし |
4003 | ERROR_CODE_INVALID_PARAMS | Invalid params | 無効なパラメータ |
エラー詳細説明
ERROR_CODE_INVALID_UNIT (4000)
原因:存在しないまたは無効化された広告ユニットIDでリクエストしました。
解決方法:
- コンソールで広告ユニットIDが正確か確認
- 広告ユニットが有効な状態か確認
- コピー/ペースト時に空白や特殊文字が含まれていないか確認
{
"code": 4000,
"msg": "Invalid unit",
"result": null
}
ERROR_CODE_AD_INACTIVE (4001)
原因:該当広告ユニットに有効な広告キャンペーンがありません。
解決方法:
- コンソールでキャンペーンが実行中か確認
- キャンペーンスケジュール(開始日/終了日)を確認
- キャンペーン予算が消費されていないか確認
{
"code": 4001,
"msg": "Ad inactive",
"result": null
}
ERROR_CODE_AD_NO_FILL (4002)
原因:ターゲティング条件に合う広告が見つかりません。
解決方法:
- ターゲティング設定が過度に制限的でないか確認
- リトライロジックを実装(指数バックオフ推奨)
- 代替コンテンツ(フォールバック)を準備
{
"code": 4002,
"msg": "No fill",
"result": null
}
リトライ実装例:
async function requestAdWithRetry(params, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await axios.get('https://api-v2.adrop.io/request', {
params,
headers: { 'Authorization': 'YOUR_APP_KEY' }
});
if (response.data.code === 0) {
return response.data.result;
}
if (response.data.code === 4002) {
// No fill - リトライ
await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000));
continue;
}
// 他のエラーは即座に返却
throw new Error(response.data.msg);
} catch (error) {
if (i === maxRetries - 1) throw error;
}
}
return null; // フォールバックコンテンツを表示
}
ERROR_CODE_INVALID_PARAMS (4003)
原因:リクエストパラメータが正しくありません。
解決方法:
- 必須パラメータ(
unit)が含まれているか確認
- パラメータ値の形式が正しいか確認
- パラメータ名に誤りがないか確認
{
"code": 4003,
"msg": "Invalid params",
"result": null
}
パラメータチェックリスト:
| パラメータ | 必須 | 有効な値の例 |
|---|
unit | 必須 | AD_UNIT_123 |
pf | 推奨 | android、ios、web |
lcl | 推奨 | ja_JP、en_US |
theme | 任意 | light、dark |
エラー処理のベストプラクティス
1. エラーコードに基づく分岐処理
function handleAdResponse(response) {
switch (response.code) {
case 0:
// 成功 - 広告をレンダリング
renderAd(response.result);
break;
case 4000:
// ユニットIDエラー - ログ記録
console.error('Invalid unit ID');
break;
case 4001:
case 4002:
// 広告なし - フォールバックコンテンツを表示
showFallbackContent();
break;
case 4003:
// パラメータエラー - 開発者に通知
console.error('Invalid parameters:', response.msg);
break;
default:
// 不明なエラー
console.error('Unknown error:', response.code, response.msg);
}
}
2. フォールバックコンテンツの準備
function showFallbackContent() {
const container = document.getElementById('ad-container');
container.innerHTML = `
<div class="fallback-content">
<img src="/images/house-ad.jpg" alt="House Ad" />
</div>
`;
}
3. モニタリングとロギング
function logAdError(code, message, params) {
// エラー発生率をモニタリング
analytics.track('ad_error', {
error_code: code,
error_message: message,
unit_id: params.unit,
timestamp: new Date().toISOString()
});
}
HTTPステータスコード
REST APIは標準HTTPステータスコードも返します。
| HTTPステータス | 説明 |
|---|
200 | リクエスト成功(エラーコードはレスポンスボディで確認) |
401 | 認証失敗(App Keyを確認) |
500 | サーバー内部エラー |
HTTP 200でもレスポンスボディのcode値を必ず確認してください。ビジネスロジックエラーはレスポンスボディに含まれます。
関連ドキュメント