Registo de Feed - Em massa
Define um feed que pode ser transferido e carregado num ficheiro em massa.
Sugestão
Para obter uma descrição geral de como utilizar feeds e itens de feed, veja os Guias técnicos de Feeds de Personalizador de Anúncios, Feeds de Inventário Automático e Feeds de Página .
Nota
- Atualize os anúncios de texto expandidos para anúncios de pesquisa reativos até 1 de fevereiro de 2023. Após esta data, deixará de poder criar anúncios de texto expandido novos ou editar existentes. Para obter mais informações, consulte Acerca dos anúncios de pesquisa reativos.
- Os feeds agendados continuarão a ser executados e os anúncios de texto expandido existentes através de feeds personalizadores de anúncios continuarão a servir. Poderá ver relatórios sobre o desempenho dos mesmos.
- Continuará a poder colocar em pausa, executar ou remover os feeds personalizadores de anúncios existentes. Caso contrário, as tentativas de criar ou editar personalizadores de anúncios existentes para anúncios de texto expandido resultarão num
CustomerNotEligibleForAdCustomizersFeed
erro. - Saiba mais sobre esta alteração.
Se estiver a criar novas entidades principais e subordinadas no mesmo ficheiro em massa, os registos dependentes têm de ser incluídos após as dependências de acordo com a hierarquia:
Pode ter 100 feeds por conta (este número máximo inclui todos os tipos de feed) e o número máximo de itens de feed (linhas) por conta é de 5 milhões.
Pode transferir todos os registos do Feed na conta ao incluir o valor DownloadEntity dos Feeds no pedido de serviço DownloadCampaignsByAccountIds ou DownloadCampaignsByCampaignIds . Além disso, o pedido de transferência tem de incluir o âmbito EntityData . Para obter mais detalhes sobre o Serviço em massa, incluindo as melhores práticas, veja Transferência e Carregamento em Massa.
O seguinte exemplo de CSV em Massa adicionaria um novo feed de páginas, inventário automático e feed personalizador de anúncios com um Item de Feed para cada um.
Type,Status,Id,Parent Id,Sub Type,Campaign,Ad Group,Client Id,Modified Time,Start Date,End Date,Device Preference,Keyword,Match Type,Target,Physical Intent,Name,Ad Schedule,Audience Id,Feed Name,Custom Attributes
Format Version,,,,,,,,,,,,,,,,6,,,,
Feed,Active,-20,,PageFeed,,,PageFeedClientIdGoesHere,,,,,,,,,,,,MyPageFeedName,"[{""name"":""Page Url"",""feedAttributeType"":""Url"",""isPartOfKey"":true},{""name"":""Custom Label"",""feedAttributeType"":""StringList""},{""name"":""Ad Title"",""feedAttributeType"":""String""}]"
Feed,Active,-21,,AdCustomizerFeed,,,AdCustomizerFeedClientIdGoesHere,,,,,,,,,,,,MyAdCustomizerFeedName,"[{""name"":""DateTimeName"",""feedAttributeType"":""DateTime""},{""name"":""Int64Name"",""feedAttributeType"":""Int64""},{""name"":""PriceName"",""feedAttributeType"":""Price""},{""name"":""StringName"",""feedAttributeType"":""String"",""isPartOfKey"":true}]"
Feed,Active,123456789,DynamicDataAutoListingFeedNew,CampaignName,AUTO ad group,-21,,DynamicDataAutosListingFeed,,"[{""name"":""Vehicle ID""},{""name"":""Final URL""},{""name"":""Image URL""},{""name"":""Make""},{""name"":""Model""},{""name"":""Price""},{""name"":""Title""},{""name"":""Target campaign""},{""name"":""Target ad group""},{""name"":""Latitude""},{""name"":""Longitude""},{""name"":""Mileage value""},{""name"":""Mileage unit""},{""name"":""Year""},{""name"":""Fuel type""},{""name"":""Transmission""},{""name"":""City""},{""name"":""VIN""},{""name"":""State of vehicle""}]"
Feed Item,Active,123456789,DynamicDataAutoListingFeedNew,CampaignName,AUTO ad group,,-21,,,"{""Vehicle Id"":""2g161290-1d13"",""""Final Url"""":""https:\/\/www.contoso.com\/used-Redmond1"",""Image Urls"":""https:\/\/www.contoso.com\/inventoryphotos\/01.jpg;https:\/\/www.contoso.com\/inventoryphotos\/02.jpg"",""Make"":""Contoso"",""Model"":""SUV"",""Price"":""65495.00 USD"",""Title"":""2020 SUV"",""Target campaign"":""CampaignName"",""Target ad group"":"""",""Latitude"":"""",""Logitude"":"""",""Mileage Value"":""13000"",""Mileage Unit"":""MI"",""Year"":""2020"",""Fuel Type"":"""",""Transmission"":"""",""City"":""Redmond"",""Vin"":""SALLJGML8HA004044"",""State of Vehicle"":""USED"",""Trim"":""HSE""}"
Feed Item,Active,-200,-20,,,,20;200,,2020/06/22 00:00:00,2020/06/30 00:00:00,,,,,,,,,,"{""Page Url"":""https://contoso.com/3001"",""Custom Label"":[""Label_1_3001"",""Label_2_3001""],""Ad Title"":""An ad title""}"
Feed Item,Active,-210,-21,,,,21;210,,2020/06/22 00:00:00,2020/06/30 00:00:00,,value,Broad,,PeopleIn,,(Sunday[09:00-17:00]),,,"{""DateTimeName"":""2020/06/22 00:00:00"",""Int64Name"":237601,""PriceName"":""$601"",""StringName"":""s237601""}"
Se estiver a utilizar os SDKs de Anúncios do Bing para .NET, Java ou Python, pode poupar tempo ao utilizar o BulkServiceManager para carregar e transferir o objeto BulkFeed , em vez de chamar diretamente as operações do serviço e escrever código personalizado para analisar cada campo no ficheiro em massa.
var uploadEntities = new List<BulkEntity>();
// Map properties in the Bulk file to the BulkFeed
var bulkAdCustomizerFeed = new BulkFeed
{
// 'Parent Id' column header in the Bulk file
AccountId = 0,
// 'Custom Attributes' column header in the Bulk file
CustomAttributes = new[]
{
// Each FeedCustomAttributeContract is represented as a JSON list item in the Bulk file.
new FeedCustomAttributeContract
{
FeedAttributeType = "DateTime",
Name = "DateTimeName"
},
new FeedCustomAttributeContract
{
FeedAttributeType = "Int64",
Name = "Int64Name"
},
new FeedCustomAttributeContract
{
FeedAttributeType = "Price",
Name = "PriceName"
},
new FeedCustomAttributeContract
{
FeedAttributeType = "String",
Name = "StringName",
IsPartOfKey = true
}
},
// 'Id' column header in the Bulk file
Id = adCustomizerFeedIdKey,
// 'Feed Name' column header in the Bulk file
Name = "My AdCustomizerFeed " + DateTime.UtcNow,
// 'Sub Type' column header in the Bulk file
SubType = "AdCustomizerFeed",
// 'Client Id' column header in the Bulk file
ClientId = "ClientIdGoesHere",
// 'Status' column header in the Bulk file
Status = Status.Active
};
uploadEntities.Add(bulkAdCustomizerFeed);
// Map properties in the Bulk file to the BulkFeed
var bulkPageFeed = new BulkFeed
{
// 'Parent Id' column header in the Bulk file
AccountId = 0,
// 'Custom Attributes' column header in the Bulk file
CustomAttributes = new []
{
// Each FeedCustomAttributeContract is represented as a JSON list item in the Bulk file.
new FeedCustomAttributeContract
{
FeedAttributeType = "Url",
Name = "Page Url"
},
new FeedCustomAttributeContract
{
FeedAttributeType = "StringList",
Name = "Custom Label"
}
},
// 'Id' column header in the Bulk file
Id = pageFeedIdKey,
// 'Feed Name' column header in the Bulk file
Name = "My PageFeed " + DateTime.UtcNow,
// 'Sub Type' column header in the Bulk file
SubType = "PageFeed",
// 'Client Id' column header in the Bulk file
ClientId = "ClientIdGoesHere",
// 'Status' column header in the Bulk file
Status = Status.Active
};
uploadEntities.Add(bulkPageFeed);
var entityUploadParameters = new EntityUploadParameters
{
Entities = uploadEntities,
ResponseMode = ResponseMode.ErrorsAndResults,
ResultFileDirectory = FileDirectory,
ResultFileName = DownloadFileName,
OverwriteResultFile = true,
};
var uploadResultEntities = (await BulkServiceManager.UploadEntitiesAsync(entityUploadParameters)).ToList();
Para um registo de Feed , os seguintes campos de atributo estão disponíveis no Esquema de Ficheiro em Massa.
ID de Cliente
Utilizado para associar registos no ficheiro de carregamento em massa a registos no ficheiro de resultados. O valor deste campo não é utilizado ou armazenado pelo servidor; é simplesmente copiado do registo carregado para o registo de resultados correspondente. Pode ser qualquer cadeia válida até 100 de comprimento.
Adicionar: Opcional
Atualização: Opcional
Eliminar: Só de leitura
Custom Attributes
Os atributos são personalizados para cada Subtipo de feed e definem as informações sobre os seus produtos ou serviços que pretende inserir nos seus anúncios.
Para o subtipo AdCustomizerFeed , pode incluir até 100 atributos personalizados por item de feed em que cada nome de atributo personalizado é exclusivo.
Para o subtipo DynamicDataAutosListingFeed , pode incluir até 100 atributos personalizados por item de feed em que cada nome de atributo personalizado é exclusivo.
Para o subtipo PageFeed , pode incluir um ou dois atributos personalizados por item de feed em que cada nome de atributo personalizado é exclusivo.
Os atributos personalizados são representados no ficheiro em massa como uma cadeia JSON. Para obter mais detalhes, veja feedAttributeType, isPartOfKey e o nome abaixo.
Eis alguns atributos personalizados de exemplo que pode carregar para um feed de página.
Nota
No ficheiro em massa separado por vírgulas, terá de colocar a lista de atributos, cada chave de atributo e cada valor de atributo com um conjunto extra de aspas duplas, por exemplo, a cadeia JSON acima seria escrita como "[{""name"":""Url de Página"","feedAttributeType""":""Url"",""isPartOfKey""":true},{"name"":""Etiqueta Personalizada"",""feedAttributeType"":""StringList""},{""name"":""Título do Anúncio"","feedAttributeType"":""Cadeia""}]".
[
{
"name": "Page Url",
"feedAttributeType": "Url",
"isPartOfKey": true
},
{
"name": "Custom Label",
"feedAttributeType": "StringList"
},
{
"name": "Ad Title",
"feedAttributeType": "String"
}
]
Adicionar: Obrigatório. Para um personalizador de anúncios e o feed DynamicDataAutosListing, tem de definir pelo menos um atributo com chaves name e feedAttributeType . Para um feed de página, tem de definir pelo menos um atributo com o nome definido como "Url de Página". Apenas as chaves name, feedAttributeType e isPartOfKey são honradas.
Atualização: Opcional. Não pode remover atributos personalizados depois de o feed ter sido criado. Pode adicionar novos atributos personalizados ao carregar apenas os novos atributos, ou seja, não incluir atributos existentes com os novos atributos. Se incluir atributos existentes com novos atributos, será devolvido um erro. Se deixar este campo vazio ou carregar uma cópia exata dos atributos existentes sem modificações, não serão efetuadas alterações.
Eliminar: Só de leitura
feedAttributeType
O tipo de dados de cada atributo personalizado. Defina o tipo de dados no registo de feed e, em seguida, defina valores no item de feed. Desde que cada nome de atributo personalizado seja exclusivo no feed, pode definir múltiplos atributos com o mesmo tipo de dados.
Existem quatro tipos de dados diferentes feedAttributeType
que pode definir para feeds personalizadores de anúncios:
feedAttributeType | Casos de utilização | Valores de itens de feed aceites |
---|---|---|
Cadeia | Nomes de produtos, categorias de produtos, descrições | Quaisquer letras, números ou símbolos |
Int64 | Contagem de inventário, número de cores disponíveis | Qualquer número inteiro |
Preço | Custo do produto, desconto de venda | Qualquer número (incluindo decimais) e carateres de moeda válidos |
DateTime | Hora de início do evento, último dia de uma venda | aaaa/mm/dd HH:mm:ss Por predefinição, até à meia-noite no início do dia, pode omitir a parte HH:mm:ss. |
Por exemplo, podemos definir os atributos personalizados de um feed personalizador de anúncios.
[
{
"name": "DateTimeName",
"feedAttributeType": "DateTime"
},
{
"name": "Int64Name",
"feedAttributeType": "Int64"
},
{
"name": "PriceName",
"feedAttributeType": "Price"
},
{
"name": "StringName",
"feedAttributeType": "String",
"isPartOfKey": true
}
]
Em seguida, podemos mapear cada nome de feed, ou seja, "DateTimeName", "Int64Name", "PriceName" e "StringName" no carregamento do Item do Feed :
{
"DateTimeName": "2020/06/22 00:00:00",
"Int64Name": 237601,
"PriceName": "$601",
"StringName": "s237601"
}
Existem seis tipos de dados diferentes feedAttributeType
que pode definir para feeds DynamicDataAutosListing:
feedAttributeType | Casos de utilização | Valores de itens de feed aceites |
---|---|---|
Cadeia | Nome do veículo, categoria do veículo, descrição | Quaisquer letras, números ou símbolos |
Int64 | ano do veículo, motor | Qualquer número inteiro |
Preço | Custo do veículo, desconto de venda | Qualquer número (incluindo decimais) e carateres de moeda válidos |
DateTime | Hora de início do evento, último dia de uma venda | aaaa/mm/dd HH:mm:ss Por predefinição, até à meia-noite no início do dia, pode omitir a parte HH:mm:ss. |
URL | Contém o URL do seu site a incluir no feed. | Tem de incluir um URL por Item de Feed. |
StringList | Etiquetas que lhe permitem agrupar os URLs no feed. | Pode incluir entre uma a dez etiquetas personalizadas por Item de Feed. Cada etiqueta personalizada é representada como um item de lista na notação JSON. Por exemplo, a parte da etiqueta personalizada do Item de Feed pode ser escrita como ""Etiqueta Personalizada":[""Label_1_3001"",""Label_2_3001"""] |
Por exemplo, podemos definir os atributos personalizados de um feed DynamicDataAutosListing.
[
{
"name": "DateTimeName",
"feedAttributeType": "DateTime"
},
{
"name": "Int64Name",
"feedAttributeType": "Int64"
},
{
"name": "PriceName",
"feedAttributeType": "Price"
},
{
"name": "StringName",
"feedAttributeType": "String",
"isPartOfKey": true
},
{
"name": "Page Url",
"feedAttributeType": "Url",
"isPartOfKey": true
},
{
"name": "Custom Label",
"feedAttributeType": "StringList"
}
]
Em seguida, podemos mapear cada nome de feed, ou seja, "DateTimeName", "Int64Name", "PriceName" e "StringName" no carregamento do Item do Feed :
{
"DateTimeName": "2020/06/22 00:00:00",
"Int64Name": 237601,
"PriceName": "$601",
"StringName": "s237601",
"Page Url": "https://contoso.com/3001",
"Custom Label": [
"Label_1_3001",
"Label_2_3001"
],
}
Estes são os feedAttributeType
tipos de dados que pode definir para feeds de página:
feedAttributeType | Casos de utilização | Valores de itens de feed aceites |
---|---|---|
Cadeia | Cabeçalho estático que é apresentado em vez do cabeçalho gerado dinamicamente. | Todas as letras, números ou símbolos até 63 carateres. Pode incluir um título de anúncio por item de feed. |
StringList | Etiquetas que lhe permitem agrupar os URLs no feed. | Pode incluir entre uma a dez etiquetas personalizadas por Item de Feed. Cada etiqueta personalizada é representada como um item de lista na notação JSON. Por exemplo, a parte da etiqueta personalizada do Item de Feed pode ser escrita como ""Etiqueta Personalizada":[""Label_1_3001"",""Label_2_3001"""] |
URL | Contém o URL do seu site a incluir no feed. | Tem de incluir um URL por Item de Feed. |
Por exemplo, podemos definir os atributos personalizados do feed de páginas.
Nota
O feedAttributeType
é opcional para feeds de página. Se definir o feedAttributeType
, tem de ser definido como "URL" para "Url de Página", "StringList" para "Etiqueta Personalizada" e "Cadeia" para os atributos nomeados "Título do Anúncio".
[
{
"name": "Page Url",
"feedAttributeType": "Url",
"isPartOfKey": true
},
{
"name": "Custom Label",
"feedAttributeType": "StringList"
},
{
"name": "Ad Title",
"feedAttributeType": "String"
}
]
Em seguida, podemos mapear cada nome de feed, ou seja, "Url de Página", "Etiqueta Personalizada" e "Título do Anúncio" no carregamento do Item de Feed :
{
"Page Url": "https://contoso.com/3001",
"Custom Label": [
"Label_1_3001",
"Label_2_3001"
],
"Ad Title": "Find New Customers & Increase Sales!",
}
isPartOfKey
O isPartOfKey
determina se os valores de um atributo personalizado têm ou não de ser exclusivos em todos os registos de Itens de Feed que se acumulam no feed. Se estiver isPartOfKey
definido como "verdadeiro", os valores têm de ser exclusivos e, caso contrário, pode carregar valores duplicados para o mesmo atributo personalizado.
Para feeds personalizadores de anúncios e itens de feed, uma Cadeia com o nome "ID Personalizado" é sempre tratada como uma chave exclusiva, ou seja, a isPartOfKey
é sempre "true". O atributo "ID Personalizado" é atualmente a única forma de definir uma chave exclusiva para feeds personalizadores de anúncios através da aplicação Web Microsoft Advertising. Com a API em Massa, tem mais flexibilidade para utilizar qualquer nome de atributo como uma chave exclusiva.
Para feeds de páginas e itens de feed, o "URL da Página" é sempre tratado como uma chave exclusiva, ou seja, o isPartOfKey
é sempre "verdadeiro".
Para feeds DynamicDataAutosListing e itens de feed, o "VehicleId" é sempre tratado como uma chave exclusiva, ou seja, o isPartOfKey
é sempre "verdadeiro".
nome
O name
atributo é utilizado para mapear um atributo personalizado distinto no feed e no Item de Feed. Efetivamente, é assim que garante que um item de feed específico é adicionado à mesma "coluna" no feed. No exemplo de personalizador de anúncios acima, os nomes "DateTimeName", "Int64Name", "PriceName" e "StringName" são utilizados no feed e no item de feed.
Nome do Feed
O nome do feed.
O nome tem de ser exclusivo (não sensível a maiúsculas e minúsculas) entre todos os feeds na conta. O nome pode conter um máximo de 128 carateres.
Adicionar: Necessário
Atualização: Opcional. Se não estiver definido nenhum valor para a atualização, esta definição não será alterada.
Eliminar: Só de leitura
ID
O identificador gerado pelo sistema do feed.
Adicionar: Opcional. Tem de deixar este campo vazio ou especificar um identificador negativo. Um conjunto de identificadores negativos para o feed pode, em seguida, ser referenciado no campo ID de tipos de registo dependentes, como Item de Feed. Isto é recomendado se estiver a adicionar novos feeds e itens de feed no mesmo ficheiro em massa. Para obter mais informações, veja Chaves de Referência do Esquema de Ficheiro em Massa.
Atualização: Só de leitura e Obrigatório
Eliminar: Só de leitura e Obrigatório
Hora da Modificação
A data e hora em que a entidade foi atualizada pela última vez. O valor está em Hora Universal Coordenada (UTC).
Nota
O valor de data e hora reflete a data e hora no servidor, não o cliente. Para obter informações sobre o formato da data e hora, veja a entrada dateTime em Tipos de Dados XML Primitivos.
Adicionar: Só de leitura
Atualização: Só de leitura
Eliminar: Só de leitura
ID principal
O identificador gerado pelo sistema da conta que contém o feed.
Este campo em massa mapeia para o campo ID do registo conta .
Adicionar: Só de leitura
Atualização: Só de leitura
Eliminar: Só de leitura
Estado
O estado do feed.
Os valores possíveis são Ativos ou Eliminados.
Adicionar: Opcional. O valor predefinido é Ativo.
Atualização: Opcional. Se não estiver definido nenhum valor para a atualização, esta definição não será alterada.
Eliminar: Obrigatório. O Estado tem de ser definido como Eliminado.
Subtipo
O subtipo de feed está incluído no ficheiro de transferência em massa para legibilidade.
Os valores possíveis são:
- PageFeed
- AdCustomizerFeed
- DynamicDataToursAndActivitiesFeed
- DynamicDataCreditCardsFeed
- DynamicDataCruisesFeed
- DynamicDataHealthInsuranceFeed
- DynamicDataProfessionalServiceFeed
- DynamicDataMortgageLendersFeed
- DynamicDataEventsFeed
- DynamicDataHotelsAndVacationRentalsFeed
- DynamicDataCustomFeed
- DynamicDataAutosListingFeed
Poderão ser suportados novos valores no futuro, pelo que não deve assumir uma dependência de um conjunto fixo de valores.
Adicionar: Só de leitura
Atualização: Só de leitura
Eliminar: Só de leitura