Condividi tramite


Feed Record - Bulk

Definisce un feed che può essere scaricato e caricato in un file bulk.

Consiglio

Per una panoramica su come usare feed ed elementi del feed, vedi le guide tecniche Feed di Personalizzazione annunci, Feed di inventario automatico e Feed di pagine .

Nota

  • Aggiorna gli annunci di testo espansi agli annunci di ricerca reattivi entro il 1° febbraio 2023. Dopo questa data, non sarà più possibile creare annunci di testo espansi nuovi o modificare quelli esistenti. Per altre informazioni, vedi Informazioni sugli annunci di ricerca reattivi.
  • I feed pianificati continueranno a essere eseguiti e gli annunci di testo espansi esistenti usando i feed di personalizzazione degli annunci continueranno a essere pubblicati. Sarà possibile visualizzare i report sulle prestazioni.
  • Potrai comunque sospendere, eseguire o rimuovere i feed di personalizzazione degli annunci esistenti. In caso contrario, i tentativi di creare o modificare gli strumenti di personalizzazione degli annunci esistenti per gli annunci di testo espansi genereranno un CustomerNotEligibleForAdCustomizersFeed errore.
  • Altre informazioni su questa modifica.

Se si creano nuove entità padre e figlio nello stesso file bulk, i record dipendenti devono essere inclusi dopo le dipendenze in base alla gerarchia:

  1. Feed
  2. Campagna
  3. Gruppo di annunci
  4. Elemento feed

È possibile avere 100 feed per account (questo numero massimo include tutti i tipi di feed) e il numero massimo di elementi di feed (righe) per account è 5 milioni.

È possibile scaricare tutti i record dei feed nell'account includendo il valore DownloadEntity dei feed nella richiesta di servizio DownloadCampaignsByAccountIds o DownloadCampaignsByCampaignIds . Inoltre, la richiesta di download deve includere l'ambito EntityData . Per altre informazioni sul servizio bulk, incluse le procedure consigliate, vedere Download e caricamento in blocco.

L'esempio csv bulk seguente aggiunge un nuovo feed di pagine, un inventario automatico e un feed di personalizzazione degli annunci con un elemento feed per ognuno.

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 si usano gli SDK di Bing Ads per .NET, Java o Python, è possibile risparmiare tempo usando BulkServiceManager per caricare e scaricare l'oggetto BulkFeed , anziché chiamare direttamente le operazioni del servizio e scrivere codice personalizzato per analizzare ogni campo nel file bulk.

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

Per un record feed , i campi dell'attributo seguenti sono disponibili nello schema file bulk.

ID Client

Usato per associare i record nel file di caricamento bulk ai record nel file dei risultati. Il valore di questo campo non viene utilizzato o archiviato dal server; viene semplicemente copiato dal record caricato nel record di risultati corrispondente. Può essere qualsiasi stringa valida fino a 100 di lunghezza.

Aggiungere: Opzionale
Aggiornamento: Opzionale
Elimina: Sola lettura

Attributi personalizzati

Gli attributi sono personalizzati per ogni sottotipo di feed e definiscono le informazioni sui prodotti o i servizi che vuoi inserire negli annunci.

Per il sottotipo AdCustomizerFeed , è possibile includere fino a 100 attributi personalizzati per ogni elemento del feed in cui ogni nome di attributo personalizzato è univoco.

Per il sottotipo DynamicDataAutosListingFeed , è possibile includere fino a 100 attributi personalizzati per ogni elemento del feed in cui ogni nome di attributo personalizzato è univoco.

Per il sottotipo PageFeed , è possibile includere uno o due attributi personalizzati per ogni elemento del feed in cui ogni nome di attributo personalizzato è univoco.

Gli attributi personalizzati sono rappresentati nel file bulk come stringa JSON. Per altri dettagli, vedere feedAttributeType, isPartOfKey e il nome riportato di seguito.

Ecco alcuni attributi personalizzati di esempio che è possibile caricare per un feed di pagine.

Nota

Nel file bulk separato da virgole è necessario racchiudere l'elenco di attributi, ogni chiave di attributo e ogni valore di attributo con un set aggiuntivo di virgolette doppie, ad esempio La stringa JSON precedente verrà scritta come "[{""name":""Page Url"","feedAttributeType"":"Url"","isPartOfKey"":true},{""name"":"Custom Label"","feedAttributeType"":"String""}",{"name":""Ad Title"","feedAttributeType"":"String""}]".

[
	{
		"name": "Page Url",
		"feedAttributeType": "Url",
		"isPartOfKey": true
	},
	{
		"name": "Custom Label",
		"feedAttributeType": "StringList"
	},
	{
		"name": "Ad Title",
		"feedAttributeType": "String"
	}
]

Aggiungere: Obbligatorio. Per un personalizzatore di annunci e un feed DynamicDataAutosListing è necessario impostare almeno un attributo con le chiavi name e feedAttributeType . Per un feed di pagina è necessario impostare almeno un attributo con il nome impostato su "URL pagina". Vengono rispettate solo le chiavi name, feedAttributeType e isPartOfKey .
Aggiornamento: Opzionale. Non è possibile rimuovere attributi personalizzati dopo la creazione del feed. È possibile aggiungere nuovi attributi personalizzati caricando solo i nuovi attributi, ad esempio non includere attributi esistenti con i nuovi attributi. Se si includono attributi esistenti con nuovi attributi, verrà restituito un errore. Se si lascia vuoto questo campo o si carica una copia esatta degli attributi esistenti senza alcuna modifica, non verranno apportate modifiche.
Elimina: Sola lettura

feedAttributeType

Tipo di dati di ogni attributo personalizzato. Si definisce il tipo di dati nel record del feed e quindi si impostano i valori nell'elemento del feed. Finché ogni nome di attributo personalizzato è univoco all'interno del feed, è possibile definire più attributi con lo stesso tipo di dati.

Sono disponibili quattro diversi feedAttributeType tipi di dati che è possibile impostare per i feed di personalizzazione degli annunci:

feedAttributeType Situazioni di utilizzo Valori dell'elemento feed accettati
Stringa Nomi di prodotti, categorie di prodotti, descrizioni Lettere, numeri o simboli
Int64 Numero di inventario, numero di colori disponibili Qualsiasi numero intero
Prezzo Costo del prodotto, sconto per la vendita Qualsiasi numero (inclusi i decimali) e caratteri di valuta validi
DateTime Ora di inizio evento, ultimo giorno di vendita aaaa/mm/gg HH:mm:ss
Per impostazione predefinita a mezzanotte all'inizio della giornata, è possibile omettere la parte HH:mm:ss.

Ad esempio, è possibile definire gli attributi personalizzati di un feed di personalizzazione degli annunci.

[
	{
		"name": "DateTimeName",
		"feedAttributeType": "DateTime"
	},
	{
		"name": "Int64Name",
		"feedAttributeType": "Int64"
	},
	{
		"name": "PriceName",
		"feedAttributeType": "Price"
	},
	{
		"name": "StringName",
		"feedAttributeType": "String",
		"isPartOfKey": true
	}
]

È quindi possibile eseguire il mapping di ogni nome di feed, ad esempio "DateTimeName", "Int64Name", "PriceName" e "StringName" nel caricamento dell'elemento feed :

{
	"DateTimeName": "2020/06/22 00:00:00",
	"Int64Name": 237601,
	"PriceName": "$601",
	"StringName": "s237601"
}

Sono disponibili sei diversi feedAttributeType tipi di dati che è possibile impostare per i feed DynamicDataAutosListing:

feedAttributeType Situazioni di utilizzo Valori dell'elemento feed accettati
Stringa Nome del veicolo, categoria di veicolo, descrizione Lettere, numeri o simboli
Int64 anno del veicolo, motore Qualsiasi numero intero
Prezzo Costo del veicolo, sconto per la vendita Qualsiasi numero (inclusi i decimali) e caratteri di valuta validi
DateTime Ora di inizio evento, ultimo giorno di vendita aaaa/mm/gg HH:mm:ss
Per impostazione predefinita a mezzanotte all'inizio della giornata, è possibile omettere la parte HH:mm:ss.
Url Contiene l'URL del sito Web da includere nel feed. È necessario includere un URL per elemento feed.
StringList Etichette che consentono di raggruppare gli URL all'interno del feed. È possibile includere da una a dieci etichette personalizzate per elemento feed.
Ogni etichetta personalizzata è rappresentata come voce di elenco nella notazione JSON. Ad esempio, la parte personalizzata dell'etichetta dell'elemento feed può essere scritta come ""Etichetta personalizzata":[""Label_1_3001"",""Label_2_3001"""]

Ad esempio, è possibile definire gli attributi personalizzati di un 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"
	}
]

È quindi possibile eseguire il mapping di ogni nome di feed, ad esempio "DateTimeName", "Int64Name", "PriceName" e "StringName" nel caricamento dell'elemento 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"
	],
}

Questi sono i feedAttributeType tipi di dati che è possibile impostare per i feed di pagine:

feedAttributeType Situazioni di utilizzo Valori dell'elemento feed accettati
Stringa Titolo statico visualizzato invece del titolo generato dinamicamente. Lettere, numeri o simboli fino a 63 caratteri. Puoi includere un titolo per ogni elemento del feed.
StringList Etichette che consentono di raggruppare gli URL all'interno del feed. È possibile includere da una a dieci etichette personalizzate per elemento feed.
Ogni etichetta personalizzata è rappresentata come voce di elenco nella notazione JSON. Ad esempio, la parte personalizzata dell'etichetta dell'elemento feed può essere scritta come ""Etichetta personalizzata":[""Label_1_3001"",""Label_2_3001"""]
Url Contiene l'URL del sito Web da includere nel feed. È necessario includere un URL per elemento feed.

Ad esempio, è possibile definire gli attributi personalizzati del feed di pagine.

Nota

È feedAttributeType facoltativo per i feed di pagine. Se si imposta feedAttributeType, deve essere impostato su "Url" per "URL pagina", "StringList" per "Etichetta personalizzata" e "String" per gli attributi denominati "Titolo annuncio".

[
	{
		"name": "Page Url",
		"feedAttributeType": "Url",
		"isPartOfKey": true
	},
	{
		"name": "Custom Label",
		"feedAttributeType": "StringList"
	},
	{
		"name": "Ad Title",
		"feedAttributeType": "String"
	}
]

È quindi possibile eseguire il mapping di ogni nome di feed, ad esempio "URL pagina", "Etichetta personalizzata" e "Titolo annuncio" nel caricamento dell'elemento feed :

{
	"Page Url": "https://contoso.com/3001",
	"Custom Label": [
		"Label_1_3001",
		"Label_2_3001"
	],
    "Ad Title": "Find New Customers & Increase Sales!",
}

isPartOfKey

Determina isPartOfKey se i valori per un attributo personalizzato devono essere univoci in tutti i record dell'elemento feed che vengono rollup nel feed. Se è isPartOfKey impostato su "true", i valori devono essere univoci e in caso contrario è possibile caricare valori duplicati per lo stesso attributo personalizzato.

Per i feed e gli elementi del feed di ad customizer, una stringa denominata "ID personalizzato" viene sempre considerata come una chiave univoca, ad esempio l'oggetto isPartOfKey è sempre "true". L'attributo "Id personalizzato" è attualmente l'unico modo per impostare una chiave univoca per i feed di personalizzazione degli annunci tramite l'applicazione Web Microsoft Advertising. Con l'API bulk è più flessibile usare qualsiasi nome di attributo come chiave univoca.

Per i feed di pagine e gli elementi del feed, l'"URL pagina" viene sempre considerato come una chiave univoca, ovvero è isPartOfKey sempre "true".

Per i feed e gli elementi del feed DynamicDataAutosListing il "VehicleId" viene sempre considerato come una chiave univoca, ad esempio , è isPartOfKey sempre "true".

Nome

L'attributo name viene usato per eseguire il mapping di un attributo personalizzato distinto tra il feed e l'elemento feed. In effetti, questo è il modo in cui si garantisce che un elemento di feed specifico venga eseguito il rollup nella stessa "colonna" nel feed. Nell'esempio di personalizzazione degli annunci precedente, i nomi "DateTimeName", "Int64Name", "PriceName" e "StringName" vengono usati sia nel feed che nell'elemento del feed.

Nome feed

Nome del feed.

Il nome deve essere univoco (senza distinzione tra maiuscole e minuscole) tra tutti i feed all'interno dell'account. Il nome può contenere un massimo di 128 caratteri.

Aggiungere: Obbligatorio
Aggiornamento: Opzionale. Se non è impostato alcun valore per l'aggiornamento, questa impostazione non viene modificata.
Elimina: Sola lettura

Id

Identificatore generato dal sistema del feed.

Aggiungere: Opzionale. È necessario lasciare vuoto questo campo o specificare un identificatore negativo. È quindi possibile fare riferimento a un identificatore negativo impostato per il feed nel campo Id dei tipi di record dipendenti, ad esempio Elemento feed. Questa operazione è consigliata se si aggiungono nuovi feed ed elementi di feed nello stesso file bulk. Per altre informazioni, vedere Chiavi di riferimento dello schema file bulk.
Aggiornamento: Sola lettura e Obbligatorio
Elimina: Sola lettura e Obbligatorio

Ora modifica

Data e ora dell'ultimo aggiornamento dell'entità. Il valore è espresso nell'ora UTC (Coordinated Universal Time).

Nota

Il valore di data e ora riflette la data e l'ora nel server, non nel client. Per informazioni sul formato della data e dell'ora, vedere la voce dateTime in Tipi di dati XML primitivi.

Aggiungere: Sola lettura
Aggiornamento: Sola lettura
Elimina: Sola lettura

Parent Id

Identificatore generato dal sistema dell'account che contiene il feed.

Questo campo bulk esegue il mapping al campo ID del record account .

Aggiungere: Sola lettura
Aggiornamento: Sola lettura
Elimina: Sola lettura

Stato

Stato del feed.

I valori possibili sono Attivo o Eliminato.

Aggiungere: Opzionale. Il valore predefinito è Attivo.
Aggiornamento: Opzionale. Se non è impostato alcun valore per l'aggiornamento, questa impostazione non viene modificata.
Elimina: Obbligatorio. Lo stato deve essere impostato su Eliminato.

Sottotipo

Il sottotipo di feed è incluso nel file di download bulk per la leggibilità.

I valori possibili sono i seguenti:

  • PageFeed
  • AdCustomizerFeed
  • DynamicDataToursAndActivitiesFeed
  • DynamicDataCreditCardsFeed
  • DynamicDataCruisesFeed
  • DynamicDataHealthInsuranceFeed
  • DynamicDataProfessionalServiceFeed
  • DynamicDataMortgageLendersFeed
  • DynamicDataEventsFeed
  • DynamicDataHotelsAndVacationRentalsFeed
  • DynamicDataCustomFeed
  • DynamicDataAutosListingFeed

I nuovi valori potrebbero essere supportati in futuro, quindi non è necessario assumere una dipendenza da un set fisso di valori.

Aggiungere: Sola lettura
Aggiornamento: Sola lettura
Elimina: Sola lettura