Header - X-Device-Info header-x-device-info

NOTE
このページのコンテンツは、情報提供のみを目的として提供されています。 このAPIを使用するには、Adobeの現在のライセンスが必要です。 無断使用は認められません。

概要 overview

X-Device-Info リクエストヘッダーには、実際のストリーミングデバイスに関連するクライアント情報(デバイス、接続、アプリケーション)が含まれており、MVPDが適用する可能性のあるプラットフォーム固有のルールを決定するために使用されます。

構文 syntax

X-Device-Info: <device_information>
ヘッダータイプ
リクエストヘッダー
Standard
いいえ

指令 directives

<device_information>

次の表で必須とマークされた属性を少なくとも含むJSON要素のBase64-encoded値。

プレゼンス
キー
説明
制限付き
使用可能な値
primaryHardwareType
デバイスの主なハードウェアタイプ。
✓

値は次のように制限されています。

  • カメラ
  • DataCollectionTerminal
  • デスクトップ
  • EmbeddedNetworkModule
  • eReader
  • GamesConsole
  • GeolocationTracker
  • メガネ
  • MediaPlayer
  • MobilePhone
  • PaymentTerminal
  • PluginModem
  • SetTopBox
  • TV
  • タブレット
  • WirelessHotspot
  • 腕時計
  • 不明
必須
モデル
デバイスのモデル名。
iPhone、SM-G930V、AppleTVなど
必須
バージョン
デバイスのバージョン。
e.g. 2.0.1など
メーカー
デバイスの製造会社/組織。
例:Samsung、LG、ZTE、Huawei、Motorola、Appleなど
ベンダー
デバイスの販売会社/組織。
例:Apple、Samsung、LG、Googleなど
必須
osName
デバイスのオペレーティングシステム(OS)名。
✓

値は次のように制限されています。

  • Android
  • CHROME OS
  • Linux
  • MAC OS
  • OS X
  • OpenBSD
  • Roku OS
  • Windows
  • iOS
  • tvOS
  • webOS
osFamily
デバイスのOS グループ名。
✓

値は次のように制限されています。

  • Android
  • BSD
  • Linux
  • PlayStation OS
  • Roku OS
  • シンビアン
  • タイゼン
  • Windows
  • iOS
  • tvOS
  • macOS
  • webOS
osVendor
デバイスのオペレーティングシステム(OS)サプライヤー。
✓

値は次のように制限されています。

  • Amazon
  • Apple
  • Google
  • LG
  • Microsoft
  • Mozilla
  • 任天堂
  • ノキア
  • 六区
  • Samsung
  • ソニー
  • Tizen プロジェクト
必須
osVersion
デバイスのオペレーティングシステム(OS)バージョン。
例:10.2、9.0.1など
browserName
ブラウザーの名前。
✓

値は次のように制限されています。

  • Android Browser
  • Chrome
  • Edge
  • Firefox
  • Internet Explorer
  • オペラ
  • Safari
  • シーモンキー
  • Symbian ブラウザー
browserVendor
ブラウザーのビルド会社/組織。
✓

値は次のように制限されています。

  • Amazon
  • Apple
  • Google
  • Microsoft
  • モトローラ
  • Mozilla
  • Netscape
  • 任天堂
  • ノキア
  • Samsung
  • ソニー・エリクソン
browserVersion
デバイスのブラウザーバージョン。
e.g. 60.0.3112
userAgent
デバイスのユーザーエージェント。
e.g. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8
displayWidth
デバイスの物理スクリーン幅。
displayHeight
デバイスの物理的な画面の高さ。
displayPpi
デバイスの物理的な画面ピクセル密度。
e.g. 294
diagonalScreenSize
デバイスの物理的な画面の対角寸法(インチ)。
e.g. 5.5, 10.1
connectionIp
HTTP リクエストの送信に使用されるデバイスのIP。
e.g. 8.8.4.4
connectionPort
HTTP リクエストの送信に使用されるデバイスのポート。
e.g. 53124
必須
connectionType
ネットワーク接続タイプ。
例:WiFi、LAN、3G、4G、5G
connectionSecure
ネットワーク接続のセキュリティ状態。
✓

値は次のように制限されています。

  • true – 安全なネットワークの場合
  • false – 公共のホットスポットの場合
applicationId
アプリケーションの一意のID。
e.g. REF30

例 examples

// Device information
// {
//  "primaryHardwareType" : "MobilePhone",
//  "model":"SM-S901U",
//  "vendor":"samsung",
//  "version":"r0q",
//  "manufacturer":"samsung",
//  "osName":"Android",
//  "osVersion":"14"
// }

// BASE64-encoded
// ewogICJwcmltYXJ5SGFyZHdhcmVUeXBlIiA6ICJNb2JpbGVQaG9uZSIsCiAgIm1vZGVsIjoiU00tUzkwMVUiLAogICJ2ZW5kb3I
// iOiJzYW1zdW5nIiwKICAidmVyc2lvbiI6InIwcSIsCiAgIm1hbnVmYWN0dXJlciI6InNhbXN1bmciLAogICJvc05hbWUiOiJBbmRyb
// 2lkIiwKICAib3NWZXJzaW9uIjoiMTQiCn0=

X-Device-Info: ewogICJwcmltYXJ5SGFyZHdhcmVUeXBlIiA6ICJNb2JpbGVQaG9uZSIsCiAgIm1vZGVsIjoiU00tUzkwMVUiLAogICJ2ZW5kb3IiOiJzYW1zdW5nIiwKICAidmVyc2lvbiI6InIwcSIsCiAgIm1hbnVmYWN0dXJlciI6InNhbXN1bmciLAogICJvc05hbWUiOiJBbmRyb2lkIiwKICAib3NWZXJzaW9uIjoiMTQiCn0=

Cookbooks cookbooks

IMPORTANT
コードスニペットとドキュメントリソースは、参照目的で提供されます。
コードスニペットは完全なものではなく、プロジェクトで作業するには、追加の変更が必要になる場合があります。
実際の実装に関係なく、X-Device-Info ヘッダーには、​ ディレクティブ ​ セクションで説明されているようにフォーマットされた値を含める必要があります。

ブラウザー browsers

ブラウザーで実行されているクライアントアプリケーションの場合、X-Device-Info ヘッダーは省略できます。ブラウザーは、User-Agent ヘッダーに必要な最小限の情報セットを自動的に送信します。

クライアントアプリケーションがデバイス識別メカニズムを提供するライブラリまたはサービスを統合する場合は、X-Device-Info ヘッダーを使用して、デバイス、接続、およびアプリケーションに関する追加情報を提供できます。

モバイルデバイス mobile-devices

iOSとiPadOS ios-ipados

iOSまたはiPadOSを実行しているデバイスのX-Device-Info ヘッダーを作成するには、次のドキュメントとコードスニペットの下を参照してください。

  • UIDeviceのApple開発者向けドキュメント。
  • ReachabilityのApple開発者向けドキュメント。
  • unameのLinux マニュアル ドキュメント。
+ (NSString *)computeClientInformation {
        struct utsname u;
        uname(&u);

        NSString *hardware = [NSString stringWithCString:u.machine encoding:NSUTF8StringEncoding];

        UIDevice *device = [UIDevice currentDevice];

        NSString *deviceType;

        switch (UI_USER_INTERFACE_IDIOM()) {
            case UIUserInterfaceIdiomPhone:
                deviceType = @"MobilePhone";
                break;
            case UIUserInterfaceIdiomPad:
                deviceType = @"Tablet";
                break;
            case UIUserInterfaceIdiomTV:
                deviceType = @"TV";
                break;
            default:
                deviceType = @"Unknown";
        }

        CGRect screenRect = [[UIScreen mainScreen] bounds];
        NSNumber *screenWidth = @((float) screenRect.size.width);
        NSNumber *screenHeight = @((float) screenRect.size.height);

        Reachability *reachability = [Reachability reachabilityForInternetConnection];
        [reachability startNotifier];

        NetworkStatus status = [reachability currentReachabilityStatus];

        NSString *connectionType;

        if (status == NotReachable) {
            connectionType = @"notConnected";
        } else if (status == ReachableViaWiFi) {
            connectionType = @"WiFi";
        } else if (status == ReachableViaWWAN) {
            connectionType = @"cellular";
        }

        NSMutableDictionary *clientInformation = [@{
                @"type": deviceType,
                @"model": device.model,
                @"vendor": @"Apple",
                @"manufacturer": @"Apple",
                @"version": [hardware stringByReplacingOccurrencesOfString:device.model withString:@""],
                @"osName": device.systemName,
                @"osVersion": device.systemVersion,
                @"displayWidth": screenWidth,
                @"displayHeight": screenHeight,
                @"connectionType": connectionType,
                @"applicationId": @"REF30"
        } mutableCopy];

        NSError *error;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:clientInformation options:NSJSONWritingPrettyPrinted error:&error];
        NSString *base64Encoded = [jsonData base64EncodedStringWithOptions:0];

        return base64Encoded;
}

デバイス情報は、次のように構築できます。

キー
Source
値(例)
モデル
uname.machine
iPhone
ベンダー
ハードコードされた
Apple
メーカー
ハードコードされた
Apple
バージョン
uname.machine
8,1
displayWidth
UIScreen.mainScreen
320
displayHeight
UIScreen.mainScreen
568
osName
UIDevice.systemName
iOS
osVersion
UIDevice.systemVersion
10.2

接続情報は、次の方法で作成できます。

キー
Source
値(例)
connectionType
[Reachability currentReachabilityStatus]
connectionSecure

アプリケーション情報は、次の方法で作成できます。

キー
Source
値(例)
applicationId
ハードコードされた
REF30

Android android

Androidを実行しているデバイスのX-Device-Info ヘッダーを作成するには、次のドキュメントとコードスニペットの下を参照してください。

private JSONObject computeClientInformation() {
     String LOGGING_TAG = "DefineClass.class";

     JSONObject clientInformation = new JSONObject();

     String connectionType;

     try {
          ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(CONNECTIVITY_SERVICE);
          NetworkInfo activeNetwork = cm.getActiveNetworkInfo();

          if (activeNetwork != null && activeNetwork.isConnectedOrConnecting()) {
              switch (activeNetwork.getType()) {
                    case ConnectivityManager.TYPE_WIFI: {
                        connectionType = "WIFI";
                        break;
                    }
                    case ConnectivityManager.TYPE_BLUETOOTH: {
                        connectionType = "BLUETOOTH";
                        break;
                    }
                    case ConnectivityManager.TYPE_MOBILE: {
                        connectionType = "MOBILE";
                        break;
                    }
                    case ConnectivityManager.TYPE_ETHERNET: {
                        connectionType = "ETHERNET";
                        break;
                    }
                    case ConnectivityManager.TYPE_VPN: {
                        connectionType = "VPN";
                        break;
                    }
                    case ConnectivityManager.TYPE_DUMMY: {
                        connectionType = "DUMMY";
                        break;
                    }
                    case ConnectivityManager.TYPE_MOBILE_DUN: {
                        connectionType = "MOBILE_DUN";
                        break;
                    }
                    case ConnectivityManager.TYPE_WIMAX: {
                        connectionType = "WIMAX";
                        break;
                    }
                    default:
                       connectionType = ConnectivityManager.EXTRA_OTHER_NETWORK_INFO;
              }
          } else {
                connectionType = ConnectivityManager.EXTRA_NO_CONNECTIVITY;
          }
     } catch (Exception e) {
          connectionType = "notAccessible";
     }

     try {
          clientInformation.put("model", Build.MODEL);
          clientInformation.put("vendor", Build.BRAND);
          clientInformation.put("manufacturer", Build.MANUFACTURER);
          clientInformation.put("version", Build.DEVICE);
          clientInformation.put("osName", "Android");
          clientInformation.put("osVersion", Build.VERSION.RELEASE);
          clientInformation.put("connectionType", connectionType);
          clientInformation.put("applicationId", "REF30");
     } catch (JSONException e) {
          Log.e(LOGGING_TAG, e.getMessage());
     }

     return Base64.encodeToString(clientInformation.toString().getBytes(), Base64.NO_WRAP);
}

デバイス情報は、次のように構築できます。

キー
Source
値(例)
モデル
Build.MODEL
GT-I9505
ベンダー
Build.BRAND
samsung
メーカー
Build.MANUFACTURER
samsung
バージョン
Build.DEVICE
jflte
displayWidth
DisplayMetrics.widthPixels
600
displayHeight
DisplayMetrics.heightPixels
800
osName
ハードコードされた
Android
osVersion
Build.VERSION.RELEASE
5.0.1

接続情報は、次の方法で作成できます。

キー
Source
値(例)
connectionType
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo().getType()
"WIFI","BLUETOOTH","MOBILE","ETHERNET","VPN","DUMMY","MOBILE_DUN","WIMAX","notAccessible"
connectionSecure

アプリケーション情報は、次の方法で作成できます。

キー
Source
値(例)
applicationId
ハードコードされた
REF30

TV接続デバイス tv-connected-devices

tvOS tvos

tvOSを実行しているデバイスのX-Device-Info ヘッダーを作成するには、次のドキュメントとコードスニペットの下を参照してください。

  • UIDeviceのApple開発者向けドキュメント。
  • ReachabilityのApple開発者向けドキュメント。
  • unameのLinux マニュアル ドキュメント。
+ (NSString *)computeClientInformation {
        struct utsname u;
        uname(&u);

        NSString *hardware = [NSString stringWithCString:u.machine encoding:NSUTF8StringEncoding];

        UIDevice *device = [UIDevice currentDevice];

        NSString *deviceType;

        switch (UI_USER_INTERFACE_IDIOM()) {
            case UIUserInterfaceIdiomPhone:
                deviceType = @"MobilePhone";
                break;
            case UIUserInterfaceIdiomPad:
                deviceType = @"Tablet";
                break;
            case UIUserInterfaceIdiomTV:
                deviceType = @"TV";
                break;
            default:
                deviceType = @"Unknown";
        }

        CGRect screenRect = [[UIScreen mainScreen] bounds];
        NSNumber *screenWidth = @((float) screenRect.size.width);
        NSNumber *screenHeight = @((float) screenRect.size.height);

        Reachability *reachability = [Reachability reachabilityForInternetConnection];
        [reachability startNotifier];

        NetworkStatus status = [reachability currentReachabilityStatus];

        NSString *connectionType;

        if (status == NotReachable) {
            connectionType = @"notConnected";
        } else if (status == ReachableViaWiFi) {
            connectionType = @"WiFi";
        } else if (status == ReachableViaWWAN) {
            connectionType = @"cellular";
        }

        NSMutableDictionary *clientInformation = [@{
                @"type": deviceType,
                @"model": device.model,
                @"vendor": @"Apple",
                @"manufacturer": @"Apple",
                @"version": [hardware stringByReplacingOccurrencesOfString:device.model withString:@""],
                @"osName": device.systemName,
                @"osVersion": device.systemVersion,
                @"displayWidth": screenWidth,
                @"displayHeight": screenHeight,
                @"connectionType": connectionType,
                @"applicationId": @"REF30"
        } mutableCopy];

        NSError *error;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:clientInformation options:NSJSONWritingPrettyPrinted error:&error];
        NSString *base64Encoded = [jsonData base64EncodedStringWithOptions:0];

        return base64Encoded;
}

デバイス情報は、次のように構築できます。

キー
Source
値(例)
モデル
uname.machine
AppleTV
ベンダー
ハードコードされた
Apple
メーカー
ハードコードされた
Apple
バージョン
uname.machine
8,1
displayWidth
UIScreen.mainScreen
1920
displayHeight
UIScreen.mainScreen
1080
osName
UIDevice.systemName
tvOS
osVersion
UIDevice.systemVersion
10.2

接続情報は、次の方法で作成できます。

キー
Source
値(例)
connectionType
[Reachability currentReachabilityStatus]
connectionSecure

アプリケーション情報は、次の方法で作成できます。

キー
Source
値(例)
applicationId
ハードコードされた
REF30

Fire OS fireos

Fire OSを実行しているデバイスのX-Device-Info ヘッダーを作成するには、次のドキュメントを参照してください。

デバイス情報は、次のように構築できます。

キー
Source
値(例)
モデル
Build.MODEL
AFTM
ベンダー
Build.BRAND
Amazon
メーカー
Build.MANUFACTURER
Amazon
バージョン
Build.DEVICE
モントーヤ
displayWidth
DisplayMetrics.widthPixels
displayHeight
DisplayMetrics.heightPixels
osName
ハードコードされた
Android
osVersion
Build.VERSION.RELEASE
5.1.1

接続情報は、次の方法で作成できます。

キー
Source
値(例)
connectionType
connectionSecure

アプリケーション情報は、次の方法で作成できます。

キー
Source
値(例)
applicationId
ハードコードされた
REF30

Roku OS rokuos

Roku OSを実行しているデバイスのX-Device-Info ヘッダーを作成するには、次のドキュメントを参照してください。

デバイス情報は、次のように構築できます。

キー
Source
値(例)
モデル
ハードコードされた
「六」
ベンダー
ifDeviceInfo.GetModelDetails ().VendorName
「シャープ」「ロク」
メーカー
ifDeviceInfo.GetModelDetails ().VendorName
「シャープ」「ロク」
バージョン
ifDeviceInfo.GetModelDetails ().ModelNumber
「5303X」
displayWidth
ifDeviceInfo.GetDisplaySize ().w
1920
displayHeight
ifDeviceInfo.GetDisplaySize ().h
1080
osName
ハードコードされた
「六」
osVersion
ifDeviceInfo.getVersion ()

接続情報は、次の方法で作成できます。

キー
Source
値(例)
connectionType
ifDeviceInfo.GetConnectionType ()
“WifiConnection”, “WiredConnection”
connectionSecure
ハードコードされた
接続が有線の場合はtrue

アプリケーション情報は、次の方法で作成できます。

キー
Source
値(例)
applicationId
ハードコードされた
REF30

その他 others

ドキュメントに記載されていないデバイスプラットフォームの場合、クライアント情報(デバイス、接続、アプリケーション)は、使用可能なハードウェアおよびオペレーティングシステム(OS)属性(通常はデバイスのハードウェアおよびOS マニュアルで指定)にリンクする必要があります。

recommendation-more-help
pass-help-authentication