REST APIs の使用の手引き getting-started-with-rest-apis

一般的な要件、認証、オプションのクエリパラメーター、リクエスト URLs およびその他の参考資料についての情報です。

API の要件とレコメンデーション api-requirements-recommendations

Audience Manager API コードを操作する場合は、以下の点に注意してください。

  • リクエストパラメーター: ​特に指定のない限り、すべてのリクエストパラメーターが必要となります。
  • リクエストヘッダーAdobe Developer トークンを使用する場合、x-api-key ヘッダーを指定する必要があります。API キーは、サービスアカウント統合ページの手順に従って取得できます。
  • JSONコンテンツタイプ:  コード内で、content-type: application/json および accept: application/json を指定してください。
  • 要求と応答: ​適切な形式の JSON オブジェクトとして要求を送信してください。Audience Manager は JSON 形式のデータで応答します。サーバーの応答には要求されたデータもしくはステータスコード、またはその両方を含めることができます。
  • アクセス: ​担当の Audience Manager コンサルタントによって、API 要求をおこなうために必要なクライアント ID およびキーが提供されます。
  • ドキュメントおよびコードサンプル:   斜体  のテキストは、API データを作成または受け取る際に指定または渡される変数を示します。斜体 ​のテキストを独自のコード、パラメーターまたは他の必要な情報に置き換えてください。

認証 authentication

Audience Manager は、3 つの認証方法をサポートする REST APIs 要があります。

IMPORTANT
認証方法に応じて、リクエスト URLs を調整する必要があります。使用すべきホスト名について詳しくは、環境の節を参照してください。

Adobe Developerを使用した OAuth サーバー間認証 oauth-adobe-developer

この節では、以下のフローチャートに示すように、Audience ManagerAPI 呼び出しの認証に必要な資格情報の収集方法を説明します。 必要な資格情報のほとんどは、1 回限りの初期設定で収集できます。 ただし、アクセストークンは 24 時間ごとに更新する必要があります。

Audience Manager認証のフロー図。

Adobe Developer の概要 developer-overview

Adobe Developer は、アドビの開発者エコシステムおよびコミュニティです。これにはすべてのアドビ製品の API が含まれます。

Adobe APIs を設定および使用する場合は、この方法をお勧めします。

前提条件 prerequisites-server-to-server

OAuth Server-to-Server 認証を設定する前に、Adobe DeveloperAdobe Developer Console にアクセスできることを確認します。アクセスリクエストについては、組織の管理者にお問い合わせください。

認証 oauth

次の手順に従って、Adobe Developer を使用して OAuth Server-to-Server 認証を設定します。

  1. Adobe Developer Console にログインします。
  2. OAuth サーバー間資格情報実装ガイドの手順に従います。
  3. 手順 3 の指示に基づいて最初の API 呼び出しをおこない、接続を試します。
NOTE
Audience Manager REST APIs を自動的に設定して操作するために、プログラムによってクライアントの秘密鍵を回転させることができます。 手順について詳しくは 開発者向けドキュメントを参照してください。

Audience ManagerAPI をプロジェクトに追加する add-aam-api-to-project

Adobe Developer Console に移動し、Adobe IDでサインインします。 次に、Adobe Developer Console ドキュメントの 空のプロジェクトの作成チュートリアルで説明されている手順に従います。

新しいプロジェクトを作成したら、Project Overview の画面で Add API を選択します。

TIP
複数の組織用にプロビジョニングされている場合は、インターフェイスの右上隅にある組織セレクターを使用して、必要な組織に属していることを確認します。

「API を追加」オプションがハイライト表示されたDeveloper Console画面

Add an API 画面が表示されます。 Adobe Experience Cloudの製品アイコンを選択してから「Audience Manager API」を選択し、「Next」を選択します。

Audience ManagerAPI を選択します

TIP
View docs オプションを選択して、別のブラウザーウィンドウに移動し、完全な Audience ManagerAPI リファレンスドキュメントを参照します。

OAuth サーバー間認証タイプの選択 select-oauth-server-to-server

次に、認証タイプを選択してアクセストークンを生成し、Audience ManagerAPI にアクセスします。

IMPORTANT
今後サポートされる方法はこれのみなので、OAuth Server-to-Server の方法を選択します。 Service Account (JWT) メソッドは非推奨です。 JWT 認証方法を使用した統合は 2025 年 1 月 1 日(PT)まで引き続き機能しますが、Adobeでは、その日までに既存の統合を新しい OAuth サーバー間認証方法に移行することを強くお勧めします。

OAuth 認証方法を選択します

統合用の製品プロファイルの選択 select-product-profiles

Configure API 画面で、目的の製品プロファイルを選択します。 統合のサービスアカウントでは、ここで選択した製品プロファイルを通じて、詳細な機能にアクセスできます。

統合用の製品プロファイルを選択します

準備が整ったら、「Save configured API」を選択します。

資格情報の収集 gather-credentials

API がプロジェクトに追加されると、Audience ManagerAPI へのすべての呼び出しで必要な次の資格情報がプロジェクトの Audience Manager API ページに表示されます。

Developer Consoleに API を追加した後の統合情報

  • {API_KEY}(Client ID)
  • {ORG_ID}(Organization ID)

アクセストークンの生成 generate-access-token

次の手順では、Audience Manager API 呼び出しで使用する {ACCESS_TOKEN} 資格情報を生成します。 {API_KEY}{ORG_ID} の値とは異なり、Audience ManagerAPI を引き続き使用するには、新しいトークンを 24 時間ごとに生成する必要があります。 「Generate access token」を選択します(下図を参照)。

アクセストークンの生成方法を表示

API 呼び出しのテスト test-api-call

Audience Managerベアラートークンを取得したら、API 呼び出しを実行して、認証 API にアクセスできることをテストします。

  1. API リファレンスドキュメントに移動します。

  2. Authorize を選択し、 アクセストークンを生成手順で取得したアクセストークンを貼り付けます。

    API 呼び出しを許可

  3. /datasources API エンドポイントへのGET呼び出しを実行し、API リファレンスドキュメントに示されているように、グローバルに使用可能なすべてのデータソースのリストを取得します。 「Try it out」を選択し、次に「Execute」を選択します(下図を参照)。

    API 呼び出しの実行

recommendation-more-help
API リクエスト
code language-shell
curl -X 'GET' \
  'https://api.demdex.com/v1/datasources/' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer your-access-token'
正しいベアラートークンを使用した場合の API 応答

動作するアクセストークンを使用すると、API エンドポイントは、200 応答と、組織がアクセスできるすべてのグローバルデータソースを含む応答本文を返します。

code language-json
[
  {
    "pid": 1794,
    "name": "testdatasource1",
    "description": "Test data source",
    "status": "ACTIVE",
    "integrationCode": "test_ds1",
    "dataExportRestrictions": [],
    "updateTime": 1595340792000,
    "crUID": 0,
    "upUID": 15910,
    "linkNamespace": false,
    "type": "GENERAL",
    "subIdType": "CROSS_DEVICE_PERSON",
    "inboundS2S": true,
    "outboundS2S": true,
    "useAudienceManagerVisitorID": false,
    "allowDataSharing": true,
    "masterDataSourceIdProvider": true,
    "uniqueTraitIntegrationCodes": false,
    "uniqueSegmentIntegrationCodes": false,
    "marketingCloudVisitorIdVersion": 0,
    "idType": "CROSS_DEVICE",
    "samplingEndTime": 1596550392825,
    "allowDeviceGraphSharing": false,
    "supportsAuthenticatedProfile": true,
    "deviceGraph": false,
    "authenticatedProfileName": "testdatasource1",
    "deviceGraphName": "",
    "customNamespaceId": 29769,
    "customNamespaceCode": "silviu_ds1",
    "customerProfileDataRetention": 62208000,
    "samplingStartTime": 1595340792825,
    "dataSourceId": 29769,
    "containerIds": [],
    "samplingEnabled": false
  },
  {
    "pid": 1794,
    "name": "AAM Test Company Audiences",
    "description": "Automatically generated trait data source",
    "status": "ACTIVE",
    "integrationCode": "adobe-provided",
    "dataExportRestrictions": [
      "PII"
    ],

    [...]

[​ 非推奨 ​]{class="badge negative"}JWT(Service Account)Adobe Developer を使用した認証 jwt

認証トークンを取得する、非推奨の JWT (Service Account)方式に関する情報を表示します。

Adobe Developer の概要 adobeio

Adobe Developer は、アドビの開発者エコシステムおよびコミュニティです。これにはすべてのアドビ製品の API が含まれます。

Adobe APIs を設定および使用する場合は、この方法をお勧めします。

前提条件 prerequisites

JWT 認証を設定する前に、Adobe DeveloperAdobe Developer Console にアクセスできることを確認します。アクセスリクエストについては、組織の管理者にお問い合わせください。

認証 auth

次の手順に従って、Adobe Developer を使用して JWT (Service Account) 認証を設定します。

  1. Adobe Developer Console にログインします。
  2. サービスアカウント接続の手順に従います。
  3. 手順 3 の指示に基づいて最初の API 呼び出しをおこない、接続を試します。
note note
NOTE
Audience Manager REST APIs を自動的に設定および操作するため、プログラムによって JWT を生成できます。詳しい手順については、JWT(サービスアカウント)認証を参照してください。

テクニカルアカウントの RBAC 権限

Audience Manager アカウントで役割ベースのアクセス制御を使用する場合は、Audience Manager のテクニカルユーザーアカウントを作成し、API 呼び出しをおこなう Audience Manager の RBAC グループに追加する必要があります。

以下の手順に従って、テクニカルユーザーアカウントを作成し、RBAC グループに追加します。

  1. https://aam.adobe.io/v1/users/self に対して GET 呼び出しを実行します。この呼び出しにより、Admin Console の Users ページに表示されるテクニカルユーザーアカウントが作成されます。

    テクニカルアカウント

  2. Audience Manager アカウントにログインし、API 呼び出しをおこなうユーザーグループにテクニカルユーザーアカウントを追加します

[​ 非推奨 ​]{class="badge negative"}OAuth 認証(廃止予定) oauth-deprecated

認証トークンを取得する、廃止された従来の OAuth 認証方法に関する情報を表示します。
note warning
WARNING
OAuth 2.0Audience Manager 介した REST API トークンの認証と更新は非推奨(廃止予定)になりました。
代わりに、JWT(サービスアカウント)認証を使用してください。

Audience Manager REST API では、OAuth 2.0 標準規格に従って、トークンの認証と更新をおこないます。以下のセクションでは、API を認証し、使用を開始する方法について説明します。

汎用の API ユーザーの作成 requirements

Audience Manager APIを使用するための個別の技術的なユーザーアカウントを作成することをお勧めします。これは、組織の特定ユーザーに関連していない、または関連付けられていない一般的なアカウントです。このような API ユーザーアカウントによって 2 つのことが可能になります。

  • API の呼び出し元のサービスを特定する(アドビの API を使用するアプリケーションからの呼び出し、または API 要求をおこなう他のツールからの呼び出しなど)。
  • API への妨げられることのないアクセスを提供する。特定ユーザーが退社すると、そのユーザーに関連するアカウントが無効になることがあります。すると、利用可能な API コードを使用できなくなってしまいます。特定の従業員に関連付けられていない汎用のアカウントを使用することで、この問題を回避できます。

このタイプのアカウントの例やユースケースとして、 一括管理ツールを使用して一度に多くのセグメントを変更するとします。 これをおこなうためには、ユーザーアカウントに API へのアクセス権が付与されている必要があります。特定のユーザーに対して権限を追加するのではなく、適切な資格情報、キー、および API 呼び出し用の暗号鍵を持つ汎用の API ユーザーアカウントを作成します。これは、Audience Manager API を使用する独自のアプリケーションを開発する場合にも便利です。

担当の Audience Manager コンサルタントにご相談のうえ、API 専用のユーザーアカウントの設定をおこなってください。

パスワード認証ワークフロー password-authentication-workflow

パスワード認証により、 REST API へのアクセスが保護されます。以下の手順は、ブラウザーで JSON クライアントからパスワードを認証する際のワークフローの概要を示しています。

note tip
TIP
更新トークンをデータベースに保存する場合は、アクセスと更新トークンを暗号化します。

手順 1:API アクセスのリクエスト

パートナーソリューションソリューションに問い合わせます。API クライアント ID と暗号鍵が通知されます。この ID と暗号鍵により、API での認証をおこないます。

注意:更新トークンを受け取る場合は、API アクセスをリクエストする際にその旨を申告してください。

ステップ 2:トークンのリクエスト

JSON クライアントでトークンのリクエストを渡します。リクエストをおこなうには、次の手順に従います。

  • POST メソッドを使用して https://api.demdex.com/oauth/token を呼び出します。
  • クライアント ID と暗号鍵を、base-64 でエンコードされた文字列に変換します。この変換では、ID と暗号鍵はコロンで区切ります。例えば、資格情報 testId : testSecretdGVzdElkOnRlc3RTZWNyZXQ= に変換されます。
  • HTTP headers Authorization:Basic <base-64 clientID:clientSecret> および Content-Type: application/x-www-form-urlencoded で渡します。ヘッダーの例を次に示します。
    Authorization: Basic dGVzdElkOnRlc3RTZWNyZXQ=
    Content-Type: application/x-www-form-urlencoded
  • リクエストの本文を次のように設定します。

    grant_type=password&username=<your-AudienceManager-user-name>&password=<your-AudienceManager-password>

ステップ 3:トークンの受け取り

JSON応答にはアクセストークンが含まれています。応答は次のようになっています。

code language-json
{
    "access_token": "28fed402-eafd-456c-9341-ac753f25bbbc",
    "token_type": "bearer",
    "refresh_token": "b27122c0-b0c7-4b39-a71b-1547a3b3b88e",
    "expires_in": 21922,
    "scope": "read write"
}

expires_in キーは、アクセストークンの有効期間を秒単位で表しています。トークンが公開される場合、ベストプラクティスとして、有効期間を短く設定し、公開時間を制限します。

更新トークン refresh-token

更新トークンは、元のトークンの有効期間が終了した後、API アクセスを更新します。リクエストがあれば、パスワードワークフローの応答 JSON に更新トークンが含まれます。更新トークンを受け取らない場合、パスワード認証プロセスにより新しいトークンを作成します。

また、更新トークンを使用して、既存のアクセストークンの有効期間が終了する前に新しいトークンを作成することもできます。

アクセストークンの有効期間が終了している場合、401 Status Code が生成され、応答のヘッダーが次のようになります。

WWW-Authenticate: Bearer realm="oauth", error="invalid_token", error_description="Access token expired: <token>"

次の表は、更新トークンを使用してブラウザーの JSON クライアントから新しいアクセストークンを作成するワークフローを示しています。

ステップ 1:新しいトークンのリクエスト

優先 JSON クライアントで更新トークンのリクエストを渡します。リクエストをおこなうには、次の手順に従います。

  • POST メソッドを使用して https://api.demdex.com/oauth/token を呼び出します。
  • クライアント ID と暗号鍵を、base-64 でエンコードされた文字列に変換します。この変換では、ID と暗号鍵はコロンで区切ります。例えば、資格情報 testId : testSecretdGVzdElkOnRlc3RTZWNyZXQ= に変換されます。
  • HTTP ヘッダー Authorization:Basic <base-64 clientID:clientSecret>Content-Type: application/x-www-form-urlencoded を渡します。ヘッダーの例を次に示します。
    Authorization: Basic dGVzdElkOnRlc3RTZWNyZXQ=
    Content-Type: application/x-www-form-urlencoded
  • リクエストの本文で、grant_type:refresh_token を指定し、前のアクセスリクエストで受け取った更新トークンを渡します。リクエストは次のようになっています。
    grant_type=refresh_token&refresh_token=b27122c0-b0c7-4b39-a71b-1547a3b3b88e

ステップ 2:新しいトークンの受け取り

JSON 応答に新しいアクセストークンが含まれます。応答は次のようになっています。

code language-json
{
    "access_token": "4fdfc261-2ffc-4fb7-8dbd-64221714c45f",
    "token_type": "bearer",
    "refresh_token": "295fa487-1825-4caa-a715-80b81ac17dae",
    "expires_in": 21922,
    "scope": "read write"
}

認証コードと暗黙的な認証 authentication-code-implicit

Audience Manager は、認証コードを暗黙的な認証をサポートしています。REST APIこれらのアクセス方法を利用するには、ユーザーが https://api.demdex.com/oauth/authorize にログインし、アクセス権と更新トークンを取得する必要があります。

認証済み API リクエストの作成 authenticated-api-requests

認証トークン受信後の API メソッドの呼び出しの要件。

使用可能な API メソッドに対する呼び出しをおこなうには:

  • HTTP ヘッダーで Authorization: Bearer <token> を設定します。
  • JWT(サービスアカウント)認証を使用する場合、x-api-key ヘッダー(client_id と同じ)を提供する必要があります。client_id については、Adobe Developer 統合ページから取得できます。
  • 必要な API メソッドを呼び出します。

オプションの API クエリパラメーター optional-api-query-parameters

オブジェクトのすべてのプロパティを返すメソッドに使用可能なオプションのパラメーターを設定します。

オブジェクトのAPIすべて​ のプロパティを返す メソッドで、これらのオプションパラメーターを使用できます。そのクエリを API に渡す際に、リクエスト文字列にこれらのオプションを設定します。

パラメーター
説明
page
ページ番号を返します。番号は 0 から始まります。
pageSize
リクエストによって返された応答結果の番号を設定します(10 がデフォルト)。
sortBy
指定された JSON プロパティに従って、結果を並べ替えて返します。
descending
結果を降順で並べ替えて返します。ascending がデフォルトです。
search
検索パラメーターとして使用する指定文字列に基づいて結果を返します。例えば、項目の任意のフィールドに「Test」という語があるすべてのモデルの結果を探したい場合は、サンプルリクエストは次のようになります。 GET https://aam.adobe.io/v1/models/?search=Test。 「get all」メソッドで返されるすべての値を検索できます。
folderId
指定されたフォルダー内のtraitsのすべての ID を返します。すべてのメソッドに対して使用できるわけではありません。
permissions

指定された権限に基づいて、セグメントのリストを返します。READ がデフォルトです。権限には以下のものがあります。

  • READ:セグメントに関する情報を返して表示します。
  • WRITEPUT を使用してセグメントを更新します。
  • CREATEPOST を使用してセグメントを作成します。
  • DELETE:セグメントの削除。基になる特性がある場合、その特性へのアクセス権が必要です。例えば、特性を削除する場合、セグメントに属する特性を削除する権限が必要です。

複数の権限を個別のキーと値のペアで指定します。例えば、READ および WRITE 権限だけを持っているセグメントのリストを返すには、"permissions":"READ""permissions":"WRITE" を渡します。

includePermissions
(Boolean)true に設定して、セグメントの権限を返します。初期設定は false です。

ページオプションに関する注意

ページ情報が指定​ されていない ​場合、リクエストは、プレーンな JSON 結果を配列で返します。ページ情報が指定​ されている ​場合、返されるリストは、合計結果と現在のページに関する情報を含んだ JSON オブジェクトにラッピングされます。ページオプションを使用したサンプルリクエストは次のようになります。

GET https://aam.adobe.io/v1/models/?page=1&pageSize=2&search=Test

API URLs api-urls

リクエストの URLs、ステージング環境および実稼動環境、バージョンの説明です。

リクエスト URLs request-urls

次の表は、API リクエストを渡すためのリクエスト URLs のリストを、メソッド別に示しています。

使用する認証方法に応じて、次の表に従ってリクエスト URLs を調整する必要があります。

[​ のリクエスト URLs ート ​]{class="badge informative"} 推奨){type=positive}[​ 非推奨 ​]{class="badge negative"}Adobe Developerによる JWT 認証 request-urls-jwt

API メソッド
リクエスト URL
Algorithmic Modeling
https://aam.adobe.io/v1/models/
Data Source
https://aam.adobe.io/v1/datasources/
Derived Signals
https://aam.adobe.io/v1/signals/derived/
Destinations
https://aam.adobe.io/v1/destinations/
Domains
https://aam.adobe.io/v1/partner-sites/
Folders
特性:https://aam.adobe.io/v1/folders/traits /
セグメント:https://aam.adobe.io/v1/folders/segments /
Schema
https://aam.adobe.io/v1/schemas/
Segments
https://aam.adobe.io/v1/segments/
Traits
https://aam.adobe.io/v1/traits/
Trait Types
https://aam.adobe.io/v1/customer-trait-types
Taxonomy
https://aam.adobe.io/v1/taxonomies/0/

のリクエス URLs リクエスト [​ 非推奨 ​]{class="badge negative"}OAuth 認証 request-urls-oauth

API メソッド
リクエスト URL
Algorithmic Modeling
https://api.demdex.com/v1/models/
Data Source
https://api.demdex.com/v1/datasources/
Derived Signals
https://api.demdex.com/v1/signals/derived/
Destinations
https://api.demdex.com/v1/destinations/
Domains
https://api.demdex.com/v1/partner-sites/
Folders
特性:https://api.demdex.com/v1/folders/traits /
セグメント:https://api.demdex.com/v1/folders/segments /
Schema
https://api.demdex.com/v1/schemas/
Segments
https://api.demdex.com/v1/segments/
Traits
https://api.demdex.com/v1/traits/
Trait Types
https://api.demdex.com/v1/customer-trait-types
Taxonomy
https://api.demdex.com/v1/taxonomies/0/

環境 environments

Audience Manager API では、複数の作業環境にアクセスできます。これらの環境では、使用中の実稼動データに影響することなく、個別のデータベースについてコードをテストすることができます。次の表は、使用可能な API 環境と、対応するリソースホスト名のリストです。

使用する認証方法に応じて、次の表に従って環境 URLs を調整する必要があります。

環境
ホスト名(JWT 認証)
ホスト名(OAuth 認証)
実稼動
https://aam.adobe.io/...
https://api.demdex.com/...
ベータ
https://aam-beta.adobe.io/...
https://api-beta.demdex.com/...
NOTE
Audience Manager ベータ環境は、実稼動環境の小規模なスタンドアロンバージョンです。テストするデータはすべてこの環境で入力および収集する必要があります。

バージョン versions

これらの API では、新しいバージョンが定期的にリリースされています。新しいリリースでは、API バージョン番号が増加しています。リクエスト URL では、バージョン番号は次の例のように v<version number> として参照されます。

https://<host>/v1/...

レスポンスコードの定義 response-codes-defined

Audience Manager REST API によって返される HTTP ステータスコードおよび応答テキスト。

レスポンスコード ID
レスポンスのテキスト
定義
200
OK
リクエストは正常に処理されました。必要があれば、予期されたコンテンツまたはデータを返します。
201
Created
リソースが作成されました。PUT および POST リクエストに対して返されます。
204
No Content
リソースが削除されました。レスポンス本文は空白になります。
400
Bad Request
サーバーがリクエストを理解できませんでした。通常は、構文が正しくないことが原因です。リクエストを確認して、再試行してください。
403
Forbidden
このリソースへのアクセス権がありません。
404
Not Found
指定されたパスでリソースが見つかりません。
409
Conflict
リソースの状態に競合が発生しているので、リクエストを完了できません。
500
Server Error
サーバーで予期しないエラーが発生し、リクエストを完了できません。
de293fbf-b489-49b0-8daa-51ed303af695