DocumentatieAdobe PassAdobe Pass-verificatie

Koptekst - X-Apparaat-Info

Laatst bijgewerkt: 5 mei 2025
  • Onderwerpen:
  • Authenticatie
OPMERKING
De inhoud op deze pagina wordt alleen ter informatie verstrekt. Voor het gebruik van deze API is een huidige licentie van Adobe vereist. Ongeautoriseerd gebruik is niet toegestaan.

Overzicht

De x-apparaat-Info verzoekkopbal bevat de cliëntinformatie (apparaat, verbinding en toepassing) met betrekking tot het daadwerkelijke het stromen apparaat en wordt gebruikt om platform-specifieke regels te bepalen die MVPDs kan afdwingen.

Syntaxis

x-apparaat-Info : <device_information>
Type koptekstKoptekst aanvragen
StandaardNee

Richtlijnen

<device_information>

De Base64-encoded -waarde van het JSON-element dat ten minste de kenmerken bevat die zijn gemarkeerd als vereist door de volgende tabel.

AanwezigheidSleutelBeschrijvingBeperktMogelijke waarden
primaryHardwareTypeHet primaire hardwaretype van het apparaat.✓

De waarden zijn beperkt:

  • Camera
  • DataCollectionTerminal
  • Desktop
  • EmbeddedNetworkModule
  • eReader
  • GamesConsole
  • GeolocationTracker
  • Bril
  • MediaPlayer
  • Mobiele telefoon
  • PaymentTerminal
  • PluginModem
  • SetTopBox
  • TV
  • Tablet
  • WirelessHotspot
  • polshorloge
  • Onbekend
vereistmodelDe modelnaam van het apparaat.bv. iPhone, SM-G930V, AppleTV, enz.
vereistversieDe apparaatversie.bv. 2.0.1, enz.
fabrikantHet productiebedrijf/de organisatie van het apparaat.bv. Samsung, LG, ZTE, Huawei, Motorola, Apple, enz.
leverancierDe verkoopmaatschappij/organisatie van het apparaat.bijvoorbeeld Apple, Samsung, LG, Google, enz.
vereistosNameDe naam van het besturingssysteem van het apparaat.✓

De waarden zijn beperkt:

  • Android
  • CHROME OS
  • Linux
  • MAC OS
  • OS X
  • OpenBSD
  • Roku OS
  • Windows
  • iOS
  • tvOS
  • webOS
osFamilyDe groepsnaam van het besturingssysteem van het apparaat.✓

De waarden zijn beperkt:

  • Android
  • BSD
  • Linux
  • PlayStation-besturingssysteem
  • Roku OS
  • Symbian
  • Tizen
  • Windows
  • iOS
  • tvOS
  • macOS
  • webOS
osVendorDe leverancier van het besturingssysteem van het apparaat.✓

De waarden zijn beperkt:

  • Amazon
  • Apple
  • Google
  • LG
  • Microsoft
  • Mozilla
  • Nintendo
  • Nokia
  • Roku
  • Samsung
  • Sony
  • Tizen Project
vereistosVersionDe versie van het besturingssysteem van het apparaat.bv. 10.2, 9.0.1, enz.
browserNameDe browsernaam.✓

De waarden zijn beperkt:

  • Android Browser
  • Chrome
  • Edge
  • Firefox
  • Internet Explorer
  • Opera
  • Safari
  • SeaMonkey
  • Symbian Browser
browserVendorDe bouwonderneming/organisatie van de browser.✓

De waarden zijn beperkt:

  • Amazon
  • Apple
  • Google
  • Microsoft
  • Motorola
  • Mozilla
  • Netscape
  • Nintendo
  • Nokia
  • Samsung
  • Sony Ericsson
browserVersionDe browserversie van het apparaat.bijv. 60.0.3112
userAgentDe gebruikersagent van het apparaat.Bijvoorbeeld 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
displayWidthDe fysieke schermbreedte van het apparaat.
displayHeightDe fysieke schermhoogte van het apparaat.
displayPpiDe fysieke pixeldichtheid van het scherm van het apparaat.bijv. 294
diagonalScreenSizeDe fysieke schermdiagonale afmeting van het apparaat in inches.bv. 5.5, 10.1
connectionIpIP van het apparaat gebruikt voor het verzenden van HTTP- verzoeken.bijv. 8.8.4.4
connectionPortDe poort van het apparaat die wordt gebruikt voor het verzenden van HTTP-aanvragen.bijv. 53124
vereistconnectionTypeHet type netwerkverbinding.bijv. WiFi, LAN, 3G, 4G, 5G
connectionSecureDe beveiligingsstatus van de netwerkverbinding.✓

De waarden zijn beperkt:

  • true - in het geval van een beveiligd netwerk
  • false - in het geval van een openbare hotspot
applicationIdDe unieke id van de toepassing.bijv. REF30

Voorbeelden

// 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

IMPORTANT
De codefragmenten en documentatiemiddelen worden verstrekt voor verwijzende doeleinden.
De codefragmenten zijn niet uitputtend en kunnen extra wijzigingen vereisen om in uw project te werken.
Ongeacht uw daadwerkelijke implementatie, moet de X-Device-Info kopbal een waarde bevatten die zoals in de wordt beschreven Richtlijnensectie.

Browsers

Voor clienttoepassingen die in een browser worden uitgevoerd, kan de header X-Device-Info worden weggelaten omdat de browser automatisch een minimale set vereiste informatie in de header van User-Agent verzendt.

U kunt de header van X-Device-Info nog steeds gebruiken om aanvullende informatie over het apparaat, de verbinding en de toepassing op te geven, voor het geval dat uw clienttoepassing een bibliotheek of service integreert die een apparaat-identificatiemechanisme biedt.

Mobiele apparaten

iOS en iPadOS

Om de X-Device-Info kopbal voor apparaten te bouwen die iOS of iPadOSin werking stellen, kunt u naar de volgende documenten en onder codefragment verwijzen:

  • Apple ontwikkelaarsdocumentatie voor UIDevice.
  • Apple ontwikkelaarsdocumentatie voor Reachability.
  • De handdocumentatie van Linux voor uname.
+ (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;
}

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
uname.machine
iPhone
leverancier
hardgecodeerd
Apple
fabrikant
hardgecodeerd
Apple
versie
uname.machine
8,1
displayWidth
UIScreen.mainScreen
320
displayHeight
UIScreen.mainScreen
568
osName
UIDevice.systemName
iOS
osVersion
UIDevice.systemVersion
10,2

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
[ Reachability currentReachabilityStatus ]
connectionSecure

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Android

Om de X-Device-Info kopbal voor apparaten te bouwen die Androidin werking stellen, kunt u naar de volgende documenten en onder codefragment verwijzen:

  • De ontwikkelaarsdocumentatie van Android voor bouwtklasse.
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);
}

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
Build.MODEL
GT-I9505
leverancier
Build.BRAND
samsung
fabrikant
Build.MANUFACTURER
samsung
versie
Build.DEVICE
jflte
displayWidth
DisplayMetrics.widthPixels
600
displayHeight
DisplayMetrics.heightPixels
800
osName
hardgecodeerd
Android
osVersion
Build.VERSION.RELEASE
5.0.1.

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
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

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Op tv aangesloten apparaten

tvOS

Om de X-Device-Info kopbal voor apparaten te bouwen die tvOSin werking stellen, kunt u naar de volgende documenten en onder codefragment verwijzen:

  • Apple ontwikkelaarsdocumentatie voor UIDevice.
  • Apple ontwikkelaarsdocumentatie voor Reachability.
  • De handdocumentatie van Linux voor uname.
+ (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;
}

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
uname.machine
AppleTV
leverancier
hardgecodeerd
Apple
fabrikant
hardgecodeerd
Apple
versie
uname.machine
8,1
displayWidth
UIScreen.mainScreen
1920
displayHeight
UIScreen.mainScreen
1080
osName
UIDevice.systemName
tvOS
osVersion
UIDevice.systemVersion
10,2

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
[ Reachability currentReachabilityStatus ]
connectionSecure

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Fire OS

Om de X-Device-Info kopbal voor apparaten te bouwen die Vuur OSin werking stellen, kunt u naar de volgende documenten verwijzen:

  • De ontwikkelaarsdocumentatie van Android voor bouwtklasse.
  • De ontwikkelaarsdocumentatie van Amazon voor het identificeren van de Apparaten van TV van het Vuur.

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
Build.MODEL
AFTM
leverancier
Build.BRAND
Amazon
fabrikant
Build.MANUFACTURER
Amazon
versie
Build.DEVICE
montoya
displayWidth
DisplayMetrics.widthPixels
displayHeight
DisplayMetrics.heightPixels
osName
hardgecodeerd
Android
osVersion
Build.VERSION.RELEASE
5.1.1.

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
connectionSecure

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Roku OS

Om de X-Device-Info kopbal voor apparaten te bouwen die Roku OSin werking stellen, kunt u naar de volgende documenten verwijzen:

  • De ontwikkelaarsdocumentatie van Roku voor ifDeviceInfo.

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
hardgecodeerd
"Roku"
leverancier
ifDeviceInfo.GetModelDetails().VendorName
"Sharp", "Roku"
fabrikant
ifDeviceInfo.GetModelDetails().VendorName
"Sharp", "Roku"
versie
ifDeviceInfo.GetModelDetails().ModelNumber
"5303X"
displayWidth
ifDeviceInfo.GetDisplaySize().w
1920
displayHeight
ifDeviceInfo.GetDisplaySize().h
1080
osName
hardgecodeerd
"Roku"
osVersion
ifDeviceInfo.getVersion()

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
ifDeviceInfo.GetConnectionType()
"WifiConnection", "WiredConnection"
connectionSecure
hardgecodeerd
true als de verbinding is bekabeld

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Overige

Voor apparaatplatforms die niet in de documentatie worden besproken, moet de clientinformatie (apparaat, verbinding en toepassing) worden gekoppeld aan alle beschikbare hardware- en besturingssysteemkenmerken (OS), die doorgaans in de hardware- en besturingssysteemhandleidingen van het apparaat worden vermeld.

recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b