as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

Amazon Publisher Services

Amazon Publisher Services

Amazon Publisher Services(APS)が提供するHeaderBiddingソリューションを利用すると、パブリッシャーはリアルタイム入札を通じて取引を行い、コンテンツの広告枠を獲得できます。

APSClientLibraryはAmazon Publisher向けのライブラリの1つで、自身のアプリでデバイスパラメーターを取得するための単一のAPIを提供します。これにより、入札リクエストをコンパイルし、クライアントからサーバー(C2S)またはサーバー間(S2S)の統合を介してAPSに送信できます。

このドキュメントでは、APSClientLibraryのインストールとAPIの使用方法について説明します。

前提条件

まず、Vega SDKをインストール済みであることと、自身のJavaScriptアプリを作成済みであることを確認してください。また、クラウド側のオンボーディングを完了するには、C2SまたはS2Sの統合ガイドのいずれかに従っている必要があり、ペイロードの作成方法について理解しておく必要があります。

APSデバイス側APIの使用方法は以下の通りです。

APSClientLibraryの準備

React Native APIの統合には、APSクライアントライブラリ"@amazon-devices/kepler-aps-client": "^1.0.0"を使用します。

手順1:パッケージの依存関係をアプリに追加する

ライブラリを、パッケージのpackage.jsonファイルに依存関係として追加します。

クリップボードにコピーしました。

"dependencies": {
      "@amazon-devices/react-native-kepler": "~2.0.0",
      "react": "18.2.0",
      "react-native": "0.72.0",
      "@amazon-devices/kepler-aps-client": "^1.0.0"
   }

手順2:マニフェストファイルを更新する

manifest.tomlファイルを更新して、必要な依存関係を含めます。

  1. components.interactiveには、runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"を含める必要があります。
  2. wants.moduleには、id = "/com.amazon.kepler.apslib@IApsDeviceParametersMap"を含める必要があります。

以下は、サンプルアプリのmanifest.tomlの例です。

クリップボードにコピーしました。


   [package]
   title = "APSサンプルアプリ"

   [components]
   [[components.interactive]]
   ...
   runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
   ...

   [wants]
   [[wants.module]]
   id = "/com.amazon.kepler.apslib@IApsDeviceParametersMap"

手順3:APIをアプリにインポートする

JavaScriptアプリに必要なデバイスパラメーターをインポートします。

クリップボードにコピーしました。

import {
   ApsDeviceParametersMap,
   ApsClientLibraryAPI,
   ApsIntegrationType,
   SCREEN_HEIGHT_DEVICE_PARAM,
   SCREEN_WIDTH_DEVICE_PARAM,
   DNT_DEVICE_PARAM,
   IFA_DEVICE_PARAM,
   UA_DEVICE_PARAM,
   MAKE_DEVICE_PARAM,
   LANGUAGE_DEVICE_PARAM,
   MODEL_DEVICE_PARAM,
   OS_DEVICE_PARAM,
   OSV_DEVICE_PARAM,
} from '@amazon-devices/kepler-aps-client';

ApsClientLibraryAPI.getDeviceParamsは非同期に動作し、awaitまたはthen()コンストラクトと使用できるPromiseを返します。成功すると、Promiseのペイロードとして、必須パラメーターとそれに対応する値のマッピングを含むApsDeviceParametersMapが返されます。エラーが発生した場合、Promiseは拒否され、エラーメッセージが表示されます。

この関数では、アプリの読み込み時に呼び出し、戻り値をキャッシュすることが推奨されます。以下のコード例は、then()コンストラクトを使用して成功とエラーの両方のケースを処理する方法を示しています。

この例では、C2S統合の代わりに、S2S統合でApsIntegrationType.c2sを渡すことを想定しています。

次のコードサンプルは、then()コンストラクトを使用して成功ケースとエラーケースの両方を処理する方法を示しています。

クリップボードにコピーしました。

const apsGetS2SWait = async (key: string) => {
console.debug(`[APS][${key}] apsGetS2SWaitを実行します`);
   ApsClientLibraryAPI.getDeviceParams(ApsIntegrationType.S2S).then((deviceParams: ApsDeviceParametersMap) => {
      console.debug(`[APS][${key}] S2S APSデバイス構成:${SCREEN_HEIGHT_DEVICE_PARAM}、値:${deviceParams.height}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${SCREEN_WIDTH_DEVICE_PARAM}、値:${deviceParams.width}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${DNT_DEVICE_PARAM}、値:${deviceParams.dnt}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${IFA_DEVICE_PARAM}、値:${deviceParams.ifa}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${UA_DEVICE_PARAM}、値:${deviceParams.ua}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${MAKE_DEVICE_PARAM}、値:${deviceParams.make}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${LANGUAGE_DEVICE_PARAM}、値:${deviceParams.language}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${MODEL_DEVICE_PARAM}、値:${deviceParams.model}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${OS_DEVICE_PARAM}、値:${deviceParams.os}`);
      console.debug(`[APS][${key}] S2S APSデバイス構成:${OSV_DEVICE_PARAM}、値:${deviceParams.osv}`);
   },
   function (error: Error) {
      console.error(`[APS][${key}] 失敗:構成を取得できませんでした:${error["message"]}`);
   }
);
}

手順4:必須パラメーターを確認する

デバイスパラメーターのほかに、サーバーに送信されたHTTPリクエストからIPを取得し、リクエストペイロードの一部として含める必要があります。詳細については、必須パラメーターの表を参照してください。

手順5:ペイロードを完成させる

HeaderBiddingリクエストのJSONペイロード作成を完了し、C2SまたはS2Sインテグレーションガイドを使用して残りのクラウドとのやり取りの後にHTTPSリクエストを作成します。

必須パラメーター

パラメーター 説明 IntegrationType: S2S IntegrationType: C2S このAPIにより提供
h 画面の物理的な高さ(ピクセル)
w 画面の物理的な幅(ピクセル)
dnt ブラウザのヘッダーに設定される標準の「Do Not Track」フラグ。0 = トラッキングに制限なし、1 = トラッキング禁止。
ifa デバイスの広告ID
ua デバイスのユーザーエージェント(文字列)。
make デバイスの製造元(Amazonなど)。
language ISO-639-1-alpha-2で定義されるデバイスの言語。
model デバイスのモデル(AFTTなど)。
os デバイスのオペレーティングシステム(Androidなど)。 ×
osv デバイスのオペレーティングシステムのバージョン(5.1.1など)。 ×
ip デバイスに最も近いIPv4アドレス(パブリックIP)(204.78.58.34など)。 × ×(S2S向けの注: IPはサーバーに送信されたHTTPSリクエストから取得します)

インストールとセットアップ

アプリのビルド

この例では、mykeplerappという名前のアプリを使用しています。

手順1:Vega SDK環境を読み込みます。

クリップボードにコピーしました。

source <Vega SDKパス>/environment-setup-sdk.sh

手順2:アプリの依存関係をインストールします。

クリップボードにコピーしました。

npm install

手順3:.vpkgファイルを生成します。

クリップボードにコピーしました。

npx react-native build-kepler

パッケージのインストール

パッケージをインストールして実行します。

クリップボードにコピーしました。

vda push ./kepler-build/vpkg/mykeplerapp_armv7.vpkg /tmp

アプリのインストールと起動

クリップボードにコピーしました。

vda shell

クリップボードにコピーしました。

vpm install /tmp/mykeplerapp.vpkg

クリップボードにコピーしました。

vlcm launch-app pkg://com.amazondeveloper.mykeplerapp.main

APSストリーミングTV統合

Amazon Publisher Servicesでは、Vega TVプラットフォーム向けに2種類の統合方法を提供しています。これらの統合を利用して、パブリッシャーは入札リクエストを送信して広告ブレークインベントリーを埋めることができます。

C2S統合

パブリッシャーは、入札情報をパブリッシャーの広告サーバーにカスタムキー値として返すC2S呼び出しを使用します。この統合では、サーバー側の呼び出しはサポートされないため、Amazonのサーバーを呼び出すことができるのはアプリからに限られます。

  • APIプロトコル: HTTPS
  • エンドポイント:https://aax-ott-c2s.amazon-adsystem.com/e/c2s/ads
  • 推奨タイムアウト: 1000ミリ秒

詳細については、C2S統合ガイドを参照してください。

S2S統合

パブリッシャーは、入札情報をパブリッシャーの広告サーバーに返すS2Sバックエンド呼び出しを使用して、APSキーと値のペアを取得します。クライアント側の呼び出しはサポートされないため、Amazonのサーバーを呼び出すことができるのは開発者のサーバーからに限られます。

  • APIプロトコル: HTTPS
  • エンドポイント:https://aax-ott.amazon-adsystem.com/e/mdtb/ads.
  • 推奨タイムアウト: 500ミリ秒

詳細については、S2S統合ガイドを参照してください。


Last updated: 2025年9月30日