Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Как реселлер вы можете связать метаданные, такие как номер телефона или номер заказа на покупку, с каждым устройством. Вы можете связать метаданные, вызвав API или загрузив CSV-файл на автоматический портал. В таблице 1 показано, кто может связывать и просматривать метаданные:
Таблица 1 . Разрешения метаданных
Задача
Реселлеры
Клиенты
Свяжите метаданные, вызвав API
Свяжите метаданные, загрузив CSV-файл на автоматизированный портал.
Просмотр метаданных устройства в результатах вызовов API
Просмотр метаданных устройства на автоматическом портале
Назначить метаданные
Чтобы связать метаданные с каждым устройством, вызовите метод partners.devices.metadata . Вы можете добавить номера телефонов и заказов для своих Android-устройств, используя клавиши из таблицы 2 ниже:
Таблица 2 . Ключи метаданных для устройств Android
Данные
Ключ
Тип значения
Пример
Номер телефона
phonenumber
Нить
+1 (800) 555-0100
Номер заказа
ordernumber
Нить
GOOG#123/ABC-123456
Оба значения метаданных представляют собой строки произвольной формы, поэтому вы можете использовать формат, подходящий для вашей организации.
Для устройств ChromeOS можно использовать клавиши из таблицы 3 ниже:
Таблица 3 . Ключи метаданных для устройств ChromeOS
Данные
Ключ
Тип значения
Пример
Номер заказа
ordernumber
Нить
GOOG#123/ABC-123456
Чтобы назначить метаданные при создании устройств, включите метаданные при вызове claimAsync . В приведенном ниже примере показана установка номера телефона и номера заказа для существующего устройства TARGET_DEVICE_ID :
Ява
// Allowed metadata dictionary keys.privatestaticStringMETADATA_KEY_PHONE_NUMBER="phonenumber";privatestaticStringMETADATA_KEY_ORDER_NUMBER="ordernumber";// ...// Create the metadata record with the values.DeviceMetadatametadata=newDeviceMetadata();Map<String,String>entries=newHashMap<String,String>();entries.put(METADATA_KEY_ORDER_NUMBER,"GOOG123/ABC-#123456");entries.put(METADATA_KEY_PHONE_NUMBER,"+1 (800) 555-0100");metadata.setEntries(entries);// Set the metadata values on the target device.UpdateDeviceMetadataRequestbody=newUpdateDeviceMetadataRequest();body.setDeviceMetadata(metadata);DeviceMetadataresponse=service.partners().devices().metadata(PARTNER_ID,targetDeviceId,body).execute();
.СЕТЬ
// Allowed metadata dictionary keys.privatestaticstringMetadataKeyPhoneNumber="phonenumber";privatestaticstringMetadataKeyOrderNumber="ordernumber";// ...// Create the metadata record with the values.DeviceMetadatametadata=newDeviceMetadata{Entries=newDictionary<string,string>{{MetadataKeyOrderNumber,"GOOG123/ABC-#123456"},{MetadataKeyPhoneNumber,"+1 (800) 555-0100"}}};// Set the metadata values on the target device.UpdateDeviceMetadataRequestbody=newUpdateDeviceMetadataRequest{DeviceMetadata=metadata};varrequest=service.Partners.Devices.Metadata(body,PartnerId,targetDeviceId);varresults=request.Execute();
Питон
# Allowed metadata dictionary keys.METADATA_KEY_ENTRIES="entries";METADATA_KEY_PHONE_NUMBER="phonenumber";METADATA_KEY_ORDER_NUMBER="ordernumber";# ...# Create the record with values.new_metadata={METADATA_KEY_ENTRIES:{ \
METADATA_KEY_PHONE_NUMBER:'+1 (800) 555-0100', \
METADATA_KEY_ORDER_NUMBER:'GOOG123/ABC-#123456'}}# Set the metadata values on the target device.response=service.partners().devices().metadata(metadataOwnerId=PARTNER_ID,deviceId=target_device_id,body={'deviceMetadata':new_metadata}).execute()
Ваши аргументы метаданных заменяют существующие значения метаданных для того же ключа.
Удалить метаданные
Вы можете удалить свои метаданные с устройств. Передайте пустые строки для значений метаданных, которые вы хотите удалить. В примере ниже показано, как удалить номер телефона:
Ява
// Create the metadata record with the values.DeviceMetadatametadata=newDeviceMetadata();Map<String,String>entries=newHashMap<String,String>();entries.put(METADATA_KEY_PHONE_NUMBER,"");metadata.setEntries(entries);// Call partners().devices().metadata() to remove the phone metadata from the device...
.СЕТЬ
// Create the metadata record with empty values.DeviceMetadatametadata=newDeviceMetadata{Entries=newDictionary<string,string>{{MetadataKeyPhoneNumber,""}}};// Call Partners.Devices.Metadata to remove the phone metadata from the device...
Питон
# Create the metadata record with empty values.metadata_to_remove={METADATA_KEY_ENTRIES:{METADATA_KEY_PHONE_NUMBER:''}}# Call partners().devices().metadata() to remove the phone number# metadata from the device...
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-25 UTC."],[[["\u003cp\u003eResellers can associate metadata, such as telephone and order numbers, with each device through the API or by uploading a CSV file in the zero-touch portal.\u003c/p\u003e\n"],["\u003cp\u003eMetadata can be assigned to Android devices using \u003ccode\u003ephonenumber\u003c/code\u003e and \u003ccode\u003eordernumber\u003c/code\u003e keys, while ChromeOS devices only use the \u003ccode\u003eordernumber\u003c/code\u003e key.\u003c/p\u003e\n"],["\u003cp\u003eBoth resellers and customers can view device metadata, but only resellers can associate metadata.\u003c/p\u003e\n"],["\u003cp\u003eYou can assign metadata to devices by using the \u003ccode\u003epartners.devices.metadata\u003c/code\u003e method or when creating devices with \u003ccode\u003eclaimAsync\u003c/code\u003e, including the metadata in the request.\u003c/p\u003e\n"],["\u003cp\u003eMetadata values for a specific key can be updated by providing new values, or deleted by providing an empty string for that metadata key.\u003c/p\u003e\n"]]],["Resellers can associate metadata, like telephone or order numbers, with devices via API calls or CSV uploads. This metadata can be viewed by resellers and customers. For Android, keys `phonenumber` and `ordernumber` are used; for ChromeOS, only `ordernumber` is available. Metadata is assigned using the `partners.devices.metadata` method, including it in `claimAsync`, or setting values via an API call. To delete metadata, empty string values should be passed for the target keys.\n"],null,["# Device metadata\n\nAs a reseller you can associate metadata, such as a telephone number or a\npurchase order number, with each device. You can associate metadata by calling\nthe API or by [uploading a CSV file](/zero-touch/guides/portal#devices-import)\nin the zero-touch portal. Table 1 shows who can associate and view metadata:\n\n**Table 1**. Metadata permissions\n\n| Task | Resellers | Customers |\n|---------------------------------------------------------------------|-----------|-----------|\n| Associate metadata by calling the API | | |\n| Associate metadata by uploading a CSV file to the zero-touch portal | | |\n| View device metadata in the results of API calls | | |\n| View device metadata in the zero-touch portal | | |\n\nAssign metadata\n---------------\n\nTo associate metadata with each device, call the\n[`partners.devices.metadata`](/zero-touch/reference/reseller/rest/v1/partners.devices/metadata) method. You can add\ntelephone and order numbers for your Android devices using keys from the table 2\nbelow:\n\n**Table 2**. Metadata keys for Android devices\n\n| Data | Key | Value type | Example |\n|------------------|---------------|------------|-----------------------|\n| Telephone number | `phonenumber` | String | *+1 (800) 555-0100* |\n| Order number | `ordernumber` | String | *GOOG#123/ABC-123456* |\n\nBoth metadata values are free-form strings, so you can use a format that makes\nsense for your organization.\n\nFor ChromeOS devices, you can use the keys from table 3 below:\n\n**Table 3**. Metadata keys for ChromeOS devices\n\n| Data | Key | Value type | Example |\n|--------------|---------------|------------|-----------------------|\n| Order number | `ordernumber` | String | *GOOG#123/ABC-123456* |\n\nTo assign metadata as you create devices, include the metadata when calling\n[`claimAsync`](/zero-touch/reference/reseller/rest/v1/partners.devices/claimAsync). The example below shows setting a\ntelephone number and order number for the existing device `TARGET_DEVICE_ID`: \n\n### Java\n\n```java\n// Allowed metadata dictionary keys.\nprivate static String METADATA_KEY_PHONE_NUMBER = \"phonenumber\";\nprivate static String METADATA_KEY_ORDER_NUMBER = \"ordernumber\";\n\n// ...\n// Create the metadata record with the values.\nDeviceMetadata metadata = new DeviceMetadata();\nMap\u003cString,String\u003e entries = new HashMap\u003cString, String\u003e();\nentries.put(METADATA_KEY_ORDER_NUMBER, \"GOOG123/ABC-#123456\");\nentries.put(METADATA_KEY_PHONE_NUMBER, \"+1 (800) 555-0100\");\nmetadata.setEntries(entries);\n\n// Set the metadata values on the target device.\nUpdateDeviceMetadataRequest body = new UpdateDeviceMetadataRequest();\nbody.setDeviceMetadata(metadata);\n\nDeviceMetadata response = service\n .partners()\n .devices()\n .metadata(PARTNER_ID, targetDeviceId, body)\n .execute();\n```\n\n### .NET\n\n```c#\n// Allowed metadata dictionary keys.\nprivate static string MetadataKeyPhoneNumber = \"phonenumber\";\nprivate static string MetadataKeyOrderNumber = \"ordernumber\";\n\n// ...\n// Create the metadata record with the values.\nDeviceMetadata metadata = new DeviceMetadata\n{\n Entries = new Dictionary\u003cstring, string\u003e {\n {MetadataKeyOrderNumber, \"GOOG123/ABC-#123456\"},\n {MetadataKeyPhoneNumber, \"+1 (800) 555-0100\"}\n }\n};\n\n// Set the metadata values on the target device.\nUpdateDeviceMetadataRequest body = new UpdateDeviceMetadataRequest\n{\n DeviceMetadata = metadata\n};\nvar request = service.Partners.Devices.Metadata(body, PartnerId, targetDeviceId);\nvar results = request.Execute();\n```\n\n### Python\n\n```python\n# Allowed metadata dictionary keys.\nMETADATA_KEY_ENTRIES = \"entries\";\nMETADATA_KEY_PHONE_NUMBER = \"phonenumber\";\nMETADATA_KEY_ORDER_NUMBER = \"ordernumber\";\n\n# ...\n# Create the record with values.\nnew_metadata = {METADATA_KEY_ENTRIES:{ \\\n METADATA_KEY_PHONE_NUMBER:'+1 (800) 555-0100', \\\n METADATA_KEY_ORDER_NUMBER:'GOOG123/ABC-#123456'}}\n\n# Set the metadata values on the target device.\nresponse = service.partners().devices().metadata(\n metadataOwnerId=PARTNER_ID,\n deviceId=target_device_id,\n body={'deviceMetadata':new_metadata}).execute()\n```\n\nYour metadata arguments replace existing metadata values for the same key.\n\nDelete metadata\n---------------\n\nYou can delete your metadata from devices. Pass empty strings for metadata\nvalues you want to delete. The example below shows how to delete the telephone\nnumber: \n\n### Java\n\n```java\n// Create the metadata record with the values.\nDeviceMetadata metadata = new DeviceMetadata();\nMap\u003cString,String\u003e entries = new HashMap\u003cString, String\u003e();\nentries.put(METADATA_KEY_PHONE_NUMBER, \"\");\nmetadata.setEntries(entries);\n\n// Call partners().devices().metadata() to remove the phone metadata from the device...\n```\n\n### .NET\n\n```c#\n// Create the metadata record with empty values.\nDeviceMetadata metadata = new DeviceMetadata\n{\n Entries = new Dictionary\u003cstring, string\u003e {\n {MetadataKeyPhoneNumber, \"\"}\n }\n};\n\n// Call Partners.Devices.Metadata to remove the phone metadata from the device...\n```\n\n### Python\n\n```python\n# Create the metadata record with empty values.\nmetadata_to_remove = {METADATA_KEY_ENTRIES: {METADATA_KEY_PHONE_NUMBER:''}}\n\n# Call partners().devices().metadata() to remove the phone number\n# metadata from the device...\n```"]]