---
title: "デバイス検出サービスのAPI参照"
slug: "api-reference-for-the-device-detection-service"
abstract: "このAPIリファレンストピックで、Sitecore体験をさらにカスタマイズしましょう。"
---
# デバイス検出サービスのAPI参照

Sitecoreデバイス検出モジュールは以下のアセンブリで構成されています。

-   Sitecore.CES.DeviceDetection デバイスの検出を可能にし、デバイスのパラメータに関する情報を提供するAPIを含みます。
-   Sitecore.CES.DeviceDetection.Rules デバイス検出ルールで使用される条件を含みます。

これらのアセンブリは、以下のAPI参照を使ってSitecoreソリューションをさらにカスタマイズすることを可能にします:

## Sitecore。CES。デバイス検出

この名前空間には主要なデバイス検出APIクラスが含まれています。

**クラス名**

DeviceInformationProviderBase

**概要**

これはデバイス情報プロバイダーの抽象的な基底クラスです。このクラスから派生して、独自のデバイス情報プロバイダーを実装する必要があります。

**フィールド**

-   DeviceCache  
    デバイスのキャッシュインスタンスに関する情報を含みます。

**方法**

-   DeviceInformation GetDeviceInformation(string userAgent)  
    userAgentのキャッシュからデバイス情報を取得します。キャッシュに必要なデバイス情報が含まれていない場合、DoGetDeviceInformationメソッドを呼び出して応答をキャッシュに追加します。
-   DeviceInformation DoGetDeviceInformation(string userAgent)  
    ユーザーエージェントの文字列に基づいてデバイス情報を取得します。
-   string GetExtendedProperty(string userAgent, string propertyName)  
    userAgentのキャッシュからデバイスのプロパティを取得します。キャッシュに必要なデバイスプロパティが含まれていない場合は、DoGetExtendedPropertyメソッドを呼び出してレスポンスをキャッシュに追加します。
-   string DoGetExtendedProperty(string userAgent,\`\`string propertyName)  
    デバイスデータベースからデバイスプロパティを取得しますが、そのプロパティが DeviceInformation クラスの一部でない場合に限ります。

**性質**

-   bool\`\`IsEnabled  
    プロバイダーが有効で使用可能かどうかを判断します。プロバイダーが無効化できる場合、例えばデフォルトのプロバイダーのサブスクリプションが必要な場合はこのプロパティを上書きしてください。
-   bool\`\`IsInitialized  
    プロバイダーが初期化されているかどうかを判定します。このプロパティは、プロバイダーが非同期で初期化でき、初期化メソッドが初期化プロセスを開始するだけならばオーバーライドします。

**クラス名**

DeviceDetectionManager

**概要**

これはユーザーエージェントの文字列に基づいてデバイス情報を解決する静的クラスです。

**方法**

-   DeviceInformation GetDeviceInformation(string userAgent)  
    ユーザーエージェントの文字列に基づいてデバイス情報を取得します。
-   string GetExtendedProperty(string userAgent, string propertyName)  
    DeviceInformationに見つからない場合はデバイスデータベースから拡張プロパティを取得します。
-   bool\`\`CheckInitialization(TimeSpan timeout)  
    プロバイダーの初期化を試み、プロバイダーが初期化されるかタイムアウトが終了するまで待ちます。プロバイダが初期化された場合はtrueを返し、そうでなければfalseを返します。
-   bool\`\`CheckInitialization()  
    プロバイダーの初期化を試み、プロバイダーが初期化されるかデフォルトのタイムアウトが終了するまで待ちます。詳細 DeviceDetection.CheckInitializationTimeoutを参照してください。メソッドはプロバイダーが初期化されるとtrueを返し、そうでなければfalseを返します。

**性質**

-   bool\`\`IsEnabled  
    デバイス検出サービスとプロバイダーが設定で有効になっているかどうかを示します。このプロパティは有効なライセンスと設定ファイルに有効な DeviceDetectionEnabled = true がある場合に当てはまります。
-   bool\`\`IsReady  
    デバイス検出が有効であるかどうか、プロバイダーが初期化されていることを示す値を取得します。

クラス名

DeviceDetectionManagerBase

Description

このクラスはユーザーエージェントの文字列に基づいてデバイス情報を解決します。

**方法**

-   DeviceInformation GetDeviceInformation(string userAgent)  
    ユーザーエージェントの文字列に基づいてデバイス情報を取得します。
-   string GetExtendedProperty(string userAgent, string propertyName)  
    DeviceInformationに見つからない場合はデバイスデータベースから拡張プロパティを取得します。
-   boolCheckInitialization(TimeSpan timeout)  
    プロバイダーの初期化を試み、プロバイダーが初期化されるかタイムアウトが終了するまで待ちます。プロバイダが初期化された場合は *true*を返し、そうでなければ *false*を返します。
-   boolCheckInitialization()  
    プロバイダーの初期化を試み、プロバイダーが初期化されるかデフォルトのタイムアウトが終了するまで待ちます。詳細 DeviceDetection.CheckInitializationTimeoutを参照してください。メソッドは戻ります  
    *プロバイダーが初期化されるときにtrue**となり、そうでなければfalseを返します。*

**性質**

-   boolIsEnabled  
    デバイス検出サービスとプロバイダーが設定で有効になっているかどうかを示します。このプロパティは有効なライセンスと設定ファイルに有効な DeviceDetectionEnabled = true がある場合に当てはまります。
-   boolIsReady  
    デバイス検出が有効であるかどうか、プロバイダーが初期化されていることを示す値を取得します。

クラス名

DefaultDeviceDetectionManager

**概要**

このクラスは、ユーザーエージェントの文字列に基づいてデバイス情報を解決するサービスのデフォルト実装です。

**方法**

-   DeviceInformation GetDeviceInformation(string userAgent)  
    ユーザーエージェントの文字列に基づいてデバイス情報を取得します。
-   string GetExtendedProperty(string userAgent, string propertyName)  
    DeviceInformationに見つからない場合はデバイスデータベースから拡張プロパティを取得します。
-   boolCheckInitialization(TimeSpan timeout)  
    プロバイダーの初期化を試み、プロバイダーが初期化されるかタイムアウトが終了するまで待ちます。プロバイダが初期化された場合は *true*を返し、そうでなければ *false*を返します。
-   boolCheckInitialization()  
    プロバイダーの初期化を試み、プロバイダーが初期化されるかデフォルトのタイムアウトが終了するまで待ちます。詳細 DeviceDetection.CheckInitializationTimeoutを参照してください。メソッドはプロバイダーが初期化されると *true*を返し、そうでなければ *false*を返します。

**性質**

-   boolIsEnabled  
    デバイス検出サービスとプロバイダーが設定で有効になっているかどうかを示します。このプロパティは有効なライセンスと設定ファイルに有効な DeviceDetectionEnabled = true がある場合に当てはまります。
-   boolIsReady  
    デバイス検出が有効であるかどうか、プロバイダーが初期化されていることを示す値を取得します。

**クラス名**

DeviceInformation

**概要**

このクラスにはデバイスに関する基本情報が含まれています。

**性質**

-   Browser  
    ブラウザ名とバージョンを含みます。
-   BrowserCanJavaScript  
    ブラウザがJavaScriptをサポートしているかどうかを指定します。
-   BrowserHtml5AudioCanAudio  
    ブラウザがHTML5音声をサポートしているかどうかを指定します。
-   BrowserHtml5VideoCanVideo  
    ブラウザがHTML5動画をサポートしているかどうかを指定します。
-   CanTouchScreen  
    ブラウザとデバイスがタッチスクリーン対応かどうかを指定します。
-   DeviceIsSmartphone  
    デバイスがスマートフォンかどうかを指定します。
-   DeviceModelName  
    デバイスのモデル名を指定します。
-   DeviceOperatingSystemModel  
    デバイスのオペレーティングシステムのモデルを指定します。
-   DeviceOperatingSystemVendor  
    デバイスのオペレーティングシステムのベンダーを指定します。
-   DeviceType  
    デバイスの種類を指定します。
-   DeviceVendor  
    デバイスのベンダーを指定します。
-   HardwareDisplayHeight  
    デバイスの表示高さを指定します。ブラウザの値は0です。
-   HardwareDisplayWidth  
    デバイスの表示幅を指定します。ブラウザの場合、値は0です。
-   IsBot  
    例えば、その装置がクローラー、ボット、ロボット、またはクモのいずれかであるかを指定します。

クラス名

DeviceDetectionServicesConfigurator

**概要**

このクラスはSitecore.CES.DeviceDetection議会のIServicesConfiguratorを表しています。

**方法**

-   void Configure(IServiceCollection serviceCollection)  
    デバイス検出サービスを登録します。

-   **列挙名**: DeviceType
-   **説明**:この列挙は一種の装置を表しています。
-   **メンバー**:その他MobilePhoneMobileConsoleEReaderTabletMediaPlayerSettopBoxCameraBotNoteenumデバイスType.Botは現在廃止されました。ロボットを確認するには、代わりに以下のコードを使ってください:WearableComputerComputer

var isRobot = DeviceDetectionManager.GetExtendedProperty(HttpContext.Current.Request.UserAgent, "IsCrawler");

## Sitecore。CES。DeviceDetection。キャッシュ

この名前空間には **デバイス検出** キャッシュクラスが含まれています。

> !注キャッシュ名は DeviceDetection

**クラス名**

DeviceDetectionCache

**概要**

このクラスはデバイス情報や拡張プロパティのためのキャッシュを実装しています。

**方法**

-   DeviceInformation\`\`GetDeviceInformation(string userAgent)  
    キャッシュからデバイス情報を取得します
-   string GetExtendedProperty(string userAgent, string propertyName)  
    キャッシュから拡張プロパティを取得する
-   AddDeviceInformation(string userAgent and DeviceInformation deviceInfo)  
    デバイス情報をキャッシュに追加します
-   AddExtendedProperty(string userAgent\`\`and string propertyName\`\`and string value)  
    キャッシュに拡張プロパティを追加します

## Sitecore。CES。デバイス検出。設定

この名前空間には、デバイス検出モジュールの設定へのアクセスを提供するクラスが含まれています。

**クラス名**

DeviceDetectionSettings

**概要**

このクラスはデバイス検出モジュールの設定へのアクセスを提供します。

**性質**

-   Enabled  
    デバイス検出モジュールが有効かどうかを指定します。
-   DatabaseUpdateCheckInterval  
    データベース更新チェックがどのくらいの頻度で行われるかを指定します。
-   FailDatabaseCheckInterval  
    初期化失敗時にデータベースが再初期化を試みる頻度を指定します。
-   DeviceDetectionCacheSize  
    デバイス検出キャッシュサイズを指定します。
-   DeviceDetectionServiceName  
    デバイス検出サービスの名前を指定します。
-   DatabasePath  
    デバイスデータベースが保存される経路を指定します。

## Sitecore。CES。DeviceDetection。データ

この名前空間にはSitecoreクラウドサービスと通信するためのクラスが含まれています。

**クラス名**

KeyInfo

**概要**

このクラスはデバイス検出データベースの復号鍵に関する情報を指定します。

**性質**

-   Key  
    復号鍵を指定します。
-   RecommendedCacheTimeSpan  
    将来のキャッシュ期間についての推奨を行いましょう。

**クラス名**

UpdateInfo

**概要**

このクラスにはデータベースの更新に関する情報が含まれています。

**性質**

-   DatabaseLink  
    暗号化されたデータベースファイルのリンクを指定します。
-   DatabaseVersion  
    データベースのバージョンを指定します

## Sitecore。CES。DeviceDetection。Diagnostics。PerformanceCounters

この名前空間にはデバイス検出パフォーマンスカウンタークラスが含まれています。

**クラス名**

DeviceDetectionCount

**概要**

これはデバイス検出性能カウンタへのアクセスを提供する静的クラスです。

**性質**

-   RequestsTotal  
    デバイス情報のリクエスト総数をカウントします
-   CacheHits  
    キャッシュヒット数をカウントします
-   CacheMisses  
    キャッシュミス数をカウントします
-   AverageResolveTime  
    データベースへのリクエストを解決するのにかかる平均時間をカウントします。

## Sitecore。CES。DeviceDetection。Diagnostics。例外

この名前空間にはデバイス検出例外クラスが含まれています。

**クラス名**

DeviceDetectionException

**概要**

このクラスはデバイス検出例外を表します。APIは、デバイス検出サービスのサブスクリプションがない場合、プロバイダーが初期化されていない、または無効化された場合にこの例外を投げ出します。

## Sitecore。CES。DeviceDetection。Providers.FiftyOneDegrees

この名前空間はデフォルトのプロバイダーを実装します。

**クラス名**

DeviceInformationProvider51Degrees

**概要**

このクラスは DeviceInformationProviderBase を実装し、データベースの更新を保証します。

**方法**

-   DeviceInformation GetDeviceInformation(string userAgent)  
    ライセンスを確認し、ベースクラスから GetDeviceInformation メソッドを呼び出します
-   DeviceInformation DoGetDeviceInformation(string userAgent)  
    データベースからユーザーエージェントの文字列に基づいてデバイスの情報を取得します。
-   string GetExtendedProperty(string userAgent, string propertyName)  
    ライセンスを確認し、ベースクラスから GetExtendedProperty メソッドを呼び出します
-   string DoGetExtendedProperty(string userAgent, string propertyName)  
    デバイスプロパティが DeviceInformation
-   Initialize(string name, NameValueCollection config)  
    プロバイダーを初期化し、更新監視を開始します

## Sitecore。CES。DeviceDetection。ルール

この名前空間には条件クラスのヘルパーインターフェースが含まれています。

**クラス名**

IRuleDeviceInformationManager

**概要**

このインターフェースはルールのデバイス情報を取得するために使用されます。

**方法**

-   DeviceInformation GetDeviceInformation(RuleContext ruleContext)  
    コンテキストからデバイス情報を取得します。
-   string GetExtendedProperty( RuleContext ruleContext, string propertyName)  
    文脈から拡張された性質を得ています。

## Sitecore。CES。DeviceDetection。ルール。条件

この名前空間には条件クラスが含まれています。

**クラス名**

DeviceBoolConditionBase

**概要**

これはブール条件を持つルールを作成するための抽象クラスです。

**方法**

-   bool\`\`Execute(T ruleContext)  
    デバイス情報は RuleDeviceInformationManager から取得し、 GetDeviceProperty メソッドを呼び出します
-   bool\`\`GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイスのブール属性を取得します

**クラス名**

DeviceBrowserCanJavaScriptCondition

**概要**

このクラスは、ブラウザがJavaScriptを実行できるかどうかをチェックするルールを実装しています。

**方法**

-   bool\`\`GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から BrowserCanJavaScript プロパティを返します。

**クラス名**

DeviceBrowserCondition

**概要**

このクラスは、ブラウザ名とバージョンが条件を満たすかどうかを指定するルールを実装しています。

**方法**

-   string GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から Browser プロパティを返します。

**クラス名**

DeviceBrowserHtml5AudioCanAudioCondition

**概要**

このクラスは、ブラウザがHTML5の音声を再生できるかどうかを定義するルールを実装しています。

**方法**

-   bool\`\`GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から BrowserHtml5AudioCanAudio プロパティを返します。

**クラス名**

DeviceBrowserHtml5VideoCanVideoCondition

**概要**

このクラスは、ブラウザがHTML5の動画を再生できるかどうかを定義するルールを実装しています。

**方法**

-   bool\`\`GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から BrowserHtml5VideoCanVideo プロパティを返します。

**クラス名**

DeviceCanTouchScreenCondition

**概要**

このクラスは、デバイスとブラウザがタッチスクリーンをサポートするかどうかを定義するルールを実装しています。

**方法**

-   bool\`\`GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から CanTouchScreen プロパティを返します。

**クラス名**

DeviceModelNameCondition

**概要**

このクラスは、ブラウザモデル名が条件を満たすかどうかを定義するルールを実装します。

**方法**

-   string GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から DeviceModelName プロパティを返します。

**クラス名**

DeviceHardwareDisplayHeightCondition

**概要**

このクラスは、デバイスの高さが条件を満たすかどうかを定義するルールを実装しています。ただし、これはブラウザでは正しく動作しません。

**方法**

-   int GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から HardwareDisplayHeight プロパティを返します。

**クラス名**

DeviceHardwareDisplayWidthCondition

**概要**

このクラスは、デバイス幅が条件を満たすかどうかを定義するルールを実装します。ただし、これはブラウザでは正しく動作しません。

**方法**

-   int GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から HardwareDisplayWidth プロパティを返します。

**クラス名**

DeviceIntegerConditionBase

**概要**

これは整数条件を持つルールを作成する抽象クラスです。

**方法**

-   bool\`\`Execute(T ruleContext)  
    RuleDeviceInformationManagerからデバイス情報を取得し、GetDevicePropertyメソッドを呼び出します。
-   int GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイスの整数プロパティを取得します。

**クラス名**

DeviceOperatingSystemModelCondition

**概要**

このクラスは、デバイスオペレーティングシステムモデルがその条件を満たしているかどうかを定義するルールを実装します。

**方法**

-   string GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から DeviceModelName プロパティを返します。

**クラス名**

DeviceOperatingSystemVendorCondition

**概要**

このクラスは、オペレーティングシステムのベンダーが条件を満たすかどうかを定義するルールを実装します。

**方法**

-   string GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス情報から DeviceOperatingSystemVendor プロパティを返します。

**クラス名**

DevicePropertyCondition

**概要**

このクラスは、拡張された性質が条件を満たすかどうかを定義する規則を実装します。

**方法**

-   bool\`\`Execute(T ruleContext)  
    RuleDeviceInformationManagerから拡張された性質を取得し、条件の値と比較します。

**性質**

-   Value  
    条件の価値
-   PropertyName  
    拡張された不動産名。

**クラス名**

DeviceStringConditionBase

**概要**

これはString条件付きのルールを作成するための抽象クラスです。

**方法**

-   bool\`\`Execute(T ruleContext)  
    デバイス情報を RuleDeviceInformationManager から取得し、 GetDeviceProperty メソッドを呼び出します。
-   string GetDeviceProperty(DeviceInformation deviceInformation)  
    デバイス文字列のプロパティを取得します。

**性質**

-   Value  
    条件の価値。

**クラス名**

DeviceTypeCondition

**概要**

このクラスは、デバイスタイプが条件を満たしているかどうかを確認するルールを実装しています。

**方法**

-   bool\`\`Execute(T ruleContext)  
    デバイス情報 RuleDeviceInformationManager から取得し、状態値と比較します。

**性質**

-   Value  
    条件の価値。

**クラス名**

DeviceVendorCondition

**概要**

このクラスは、デバイスベンダーが条件を満たしているかどうかを定義するルールを実装します。

**方法**

-   string GetDeviceProperty(DeviceInformation deviceInformation)  
    DeviceVendorプロパティを から返しますDevice Information

**クラス名**

DeviceTypeIds \- *Obsolete*、代わりに Sitecore.ContentTesting.Rules.Conditions.DeviceTypeIDs を使え。

**概要**

このクラスは Sitecore.ContentTesting から来ており、デバイスタイプに対応するアイテムIDを含みます。

**定数**

-   MobilePhone
-   FeaturePhone
-   Smartphone
-   MobileConsole
-   EReader
-   Tablet
-   MediaPlayer
-   SettopBox
-   Camera
-   Bot
-   WearableComputer
-   Computer
-   Other