メインコンテンツへスキップ

実装方法

バナー広告はHTML属性のみで簡単に実装できます。別途関数呼び出しなしで広告枠がレンダリングされる際に自動的に広告がリクエストされます。
開発環境ではテストユニットIDを使用してください:PUBLIC_TEST_UNIT_ID_320_100

Data Attributes方式

data-adrop-unit属性を追加するだけでSDKが自動的に広告を読み込みます。
<div
  data-adrop-unit="YOUR_UNIT_ID"
  data-adrop-context-id="YOUR_CONTEXT_ID"
  data-adrop-theme="light">
</div>

Data Attributes

data-adrop-unit
string
required
アドコントロールコンソールで作成したユニットID
data-adrop-context-id
string
data-adrop-theme
string
default:"light"
テーマ設定(lightまたはdark) - ダークモード設定を参照

広告の再リクエスト

広告枠DOMを新しく作成して既存DOMを置き換えると、広告が再リクエストされます。
const container = document.getElementById('ad-wrapper');
const newAd = document.createElement('div');
newAd.setAttribute('data-adrop-unit', 'YOUR_UNIT_ID');
Adrop.instance().clear(container);
container.appendChild(newAd);

renderAd方式

広告読み込みタイミングを直接制御したい場合に使用します。
<div id="ad-container"></div>

<script>
  const container = document.getElementById('ad-container');
  const adrop = Adrop.instance();

  adrop.renderAd(container, {
    unit: 'YOUR_UNIT_ID',
    contextId: 'YOUR_CONTEXT_ID',
    theme: 'light'
  });
</script>

renderAdオプション

unit
string
required
アドコントロールコンソールで作成したユニットID
uid
string
ユーザー識別子(SDK設定値を個別の広告枠で上書きする場合に使用)
contextId
string
theme
string
default:"light"
テーマ設定(lightまたはdark) - ダークモード設定を参照

広告の再リクエスト

renderAd()を再度呼び出すと、広告が再リクエストされます。
const container = document.getElementById('ad-container');
Adrop.instance().renderAd(container, {
  unit: 'YOUR_UNIT_ID'
});

広告の削除

clear()を呼び出してコンテナから広告を削除できます。
const container = document.getElementById('ad-container');
Adrop.instance().clear(container);

広告サイズ

コンテナをユニットに登録したサイズに合わせて設定してください。
<div
  data-adrop-unit="YOUR_UNIT_ID"
  style="width: 320px; height: 100px;">
</div>
区分サイズ設定配置
ダイレクト広告レスポンシブ対応、高さ必須水平/垂直中央
バックフィル広告初期幅合わせ、高さ必須水平中央

イベント処理

広告の状態変化を検出して、適切なUI処理ができます。
<script>
  const adrop = Adrop.instance();

  // 広告受信成功
  function handleReceived(unit, adData) {
    console.log('広告受信:', unit);
  }

  // 配信可能なダイレクト広告なし
  function handleNoFill(unit) {
    console.warn('広告なし:', unit);
  }

  // リクエスト失敗
  function handleFailed(unit) {
    console.error('広告失敗:', unit);
  }

  // インプレッション
  function handleImpression(unit) {
    console.log('広告表示:', unit);
  }

  // クリック
  function handleClicked(unit) {
    console.log('広告クリック:', unit);
  }

  // バックフィル広告なし
  function handleBackfillNoFill(unit) {
    console.warn('バックフィル広告なし:', unit);
  }

  // 特定ユニットのみフィルタリング
  const filter = { unit: 'YOUR_UNIT_ID' };

  adrop.on(Adrop.Events.AD_RECEIVED, handleReceived, filter);
  adrop.on(Adrop.Events.AD_NO_FILL, handleNoFill, filter);
  adrop.on(Adrop.Events.AD_FAILED, handleFailed, filter);
  adrop.on(Adrop.Events.AD_IMPRESSION, handleImpression, filter);
  adrop.on(Adrop.Events.AD_CLICKED, handleClicked, filter);
  adrop.on(Adrop.Events.AD_BACKFILL_NO_FILL, handleBackfillNoFill, filter);
</script>

サポートするイベント

イベント定数説明
広告受信AD_RECEIVED広告リクエスト成功
広告なしAD_NO_FILL配信可能なダイレクト広告なし
リクエスト失敗AD_FAILED広告リクエスト失敗
インプレッションAD_IMPRESSION広告インプレッション記録
クリックAD_CLICKEDユーザーが広告をクリック
バックフィルなしAD_BACKFILL_NO_FILLバックフィル広告なし

イベントリスナーの解除

不要になったイベントリスナーはoff()で解除してください。
adrop.off(Adrop.Events.AD_RECEIVED, handleReceived);

AdData

イベントハンドラーで受け取る広告データです。詳細なフィールド情報はリファレンス > AdDataを参照してください。

完全なサンプル

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>バナー広告サンプル</title>
</head>
<body>
  <header>
    <!-- ヘッダーバナー広告 -->
    <div
      data-adrop-unit="HEADER_BANNER_UNIT_ID"
      style="width: 100%; height: 80px;">
    </div>
  </header>

  <main>
    <h1>コンテンツ</h1>
  </main>

  <footer>
    <!-- フッターバナー広告 -->
    <div
      data-adrop-unit="FOOTER_BANNER_UNIT_ID"
      data-adrop-theme="dark"
      style="width: 320px; height: 100px;">
    </div>
  </footer>

  <script src="https://cdn.jsdelivr.net/npm/@adrop/ads-web-sdk@latest/dist/adrop-ads.min.js"></script>
  <script>
    const adrop = Adrop.observe({
      appId: 'YOUR_APP_ID',
      debug: true
    });

    adrop.on(Adrop.Events.AD_CLICKED, function(unit) {
      console.log('広告クリック:', unit);
    });
  </script>
</body>
</html>