Metadatos del dispositivo

Como revendedor, puedes asociar metadatos, como un número de teléfono o un número de orden de compra, con cada dispositivo. Para asociar metadatos, puedes llamar a la API o subir un archivo CSV en el portal de inscripción automática. En la tabla 1, se muestra quién puede asociar y ver metadatos:

Tabla 1: Permisos de metadatos

Tarea Revendedores Clientes
Asocia metadatos mediante una llamada a la API
Asocia metadatos subiendo un archivo CSV al portal de inscripción automática
Cómo ver los metadatos del dispositivo en los resultados de las llamadas a la API
Consultar los metadatos del dispositivo en el portal de inscripción automática

Asigna metadatos

Para asociar metadatos con cada dispositivo, llama al método partners.devices.metadata. Puedes agregar los números de teléfono y de pedido para tus dispositivos Android con las claves de la tabla 2 a continuación:

Tabla 2. Claves de metadatos para dispositivos Android

Datos Clave Tipo de valor Ejemplo
Número de teléfono phonenumber Cadena +1 (800) 555‐0100
Número de pedido ordernumber Cadena GOOG#123/ABC-123456

Ambos valores de metadatos son strings de formato libre, por lo que puedes usar un formato que tenga sentido para tu organización.

En dispositivos ChromeOS, puedes usar las claves de la tabla 3 a continuación:

Tabla 3: Claves de metadatos para dispositivos ChromeOS

Datos Clave Tipo de valor Ejemplo
Número de pedido ordernumber Cadena GOOG#123/ABC-123456

Para asignar metadatos mientras creas dispositivos, inclúyelos cuando llames a claimAsync. En el siguiente ejemplo, se muestra cómo configurar un número de teléfono y un número de pedido para el dispositivo existente TARGET_DEVICE_ID:

Java

// Allowed metadata dictionary keys.
private static String METADATA_KEY_PHONE_NUMBER = "phonenumber";
private static String METADATA_KEY_ORDER_NUMBER = "ordernumber";

// ...
// Create the metadata record with the values.
DeviceMetadata metadata = new DeviceMetadata();
Map<String,String> entries = new HashMap<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.
UpdateDeviceMetadataRequest body = new UpdateDeviceMetadataRequest();
body.setDeviceMetadata(metadata);

DeviceMetadata response = service
        .partners()
        .devices()
        .metadata(PARTNER_ID, targetDeviceId, body)
        .execute();

.NET

// Allowed metadata dictionary keys.
private static string MetadataKeyPhoneNumber = "phonenumber";
private static string MetadataKeyOrderNumber = "ordernumber";

// ...
// Create the metadata record with the values.
DeviceMetadata metadata = new DeviceMetadata
{
    Entries = new Dictionary<string, string> {
        {MetadataKeyOrderNumber, "GOOG123/ABC-#123456"},
        {MetadataKeyPhoneNumber, "+1 (800) 555-0100"}
    }
};

// Set the metadata values on the target device.
UpdateDeviceMetadataRequest body = new UpdateDeviceMetadataRequest
{
    DeviceMetadata = metadata
};
var request = service.Partners.Devices.Metadata(body, PartnerId, targetDeviceId);
var results = request.Execute();

Python

# 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()

Tus argumentos de metadatos reemplazan los valores de metadatos existentes para la misma clave.

Borrar metadatos

Puedes borrar los metadatos de tus dispositivos. Pasa strings vacías para los valores de metadatos que desees borrar. En el siguiente ejemplo, se muestra cómo borrar el número de teléfono:

Java

// Create the metadata record with the values.
DeviceMetadata metadata = new DeviceMetadata();
Map<String,String> entries = new HashMap<String, String>();
entries.put(METADATA_KEY_PHONE_NUMBER, "");
metadata.setEntries(entries);

// Call partners().devices().metadata() to remove the phone metadata from the device...

.NET

// Create the metadata record with empty values.
DeviceMetadata metadata = new DeviceMetadata
{
    Entries = new Dictionary<string, string> {
        {MetadataKeyPhoneNumber, ""}
    }
};

// Call Partners.Devices.Metadata to remove the phone metadata from the device...

Python

# 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...