Freigeben über


Feeddatensatz – Massenvorgang

Definiert einen Feed, der heruntergeladen und in eine Massendatei hochgeladen werden kann.

Tipp

Eine Übersicht über die Verwendung von Feeds und Feedelementen finden Sie in den technischen Anleitungen Ad Customizer Feeds, Auto Inventory Feeds und Seitenfeeds .

Hinweis

  • Aktualisieren Sie Ihre erweiterten Textanzeigen bis zum 1. Februar 2023 auf reaktionsfähige Suchanzeigen. Nach diesem Datum können Sie keine neuen erweiterten Textanzeigen mehr erstellen oder bearbeiten. Weitere Informationen finden Sie unter Informationen zu reaktionsfähigen Suchanzeigen.
  • Ihre geplanten Feeds werden weiterhin ausgeführt, und vorhandene erweiterte Textanzeigen mit Anzeigenanpassungsfeeds werden weiterhin bereitgestellt. Sie können Berichte zu deren Leistung anzeigen.
  • Sie können Ihre vorhandenen Ad Customizer-Feeds weiterhin anhalten, ausführen oder entfernen. Andernfalls führen Versuche, vorhandene Anzeigenanpassungen für erweiterte Textanzeigen zu erstellen oder zu bearbeiten, zu einem CustomerNotEligibleForAdCustomizersFeed Fehler.
  • Erfahren Sie mehr über diese Änderung.

Wenn Sie neue übergeordnete und untergeordnete Entitäten in derselben Massendatei erstellen, müssen die abhängigen Datensätze nach Abhängigkeiten gemäß der Hierarchie eingeschlossen werden:

  1. Feed
  2. Kampagnen
  3. Anzeigengruppe
  4. Feedelement

Sie können 100 Feeds pro Konto haben (diese maximale Anzahl umfasst alle Feedtypen), und die maximale Anzahl von Feedelementen (Zeilen) pro Konto beträgt 5 Millionen.

Sie können alle Feeddatensätze im Konto herunterladen, indem Sie den DownloadEntity-Wert von Feeds in die Serviceanforderung DownloadCampaignsByAccountIds oder DownloadCampaignsByCampaignIds einschließen. Darüber hinaus muss die Downloadanforderung den EntityData-Bereich enthalten. Weitere Informationen zum Massendienst, einschließlich bewährter Methoden, finden Sie unter Massendownload und -upload.

Im folgenden Massen-CSV-Beispiel werden ein neuer Seitenfeed, eine automatische Inventur und ein Anzeigenanpasserfeed mit jeweils einem Feedelement hinzugefügt.

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""}"

Wenn Sie die Bing Ads SDKs für .NET, Java oder Python verwenden, können Sie Zeit sparen, indem Sie bulkServiceManager verwenden, um das BulkFeed-Objekt hochzuladen und herunterzuladen, anstatt die Dienstvorgänge direkt aufzurufen und benutzerdefinierten Code zu schreiben, um jedes Feld in der Massendatei zu analysieren.

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

Für einen Feeddatensatz sind die folgenden Attributfelder im Massendateischema verfügbar.

Client-ID

Wird verwendet, um Datensätze in der Massenuploaddatei datensätzen in der Ergebnisdatei zuzuordnen. Der Wert dieses Felds wird vom Server nicht verwendet oder gespeichert. es wird einfach aus dem hochgeladenen Datensatz in den entsprechenden Ergebnisdatensatz kopiert. Es kann eine beliebige gültige Zeichenfolge sein, die eine Länge von bis zu 100 hat.

Hinzufügen: Optional
Aktualisieren: Optional
Löschen: Schreibgeschützt

Benutzerdefinierte Attribute

Die Attribute werden für jeden Feeduntertyp angepasst und definieren, welche Informationen zu Ihren Produkten oder Diensten Sie in Ihre Anzeigen einfügen möchten.

Für den Untertyp AdCustomizerFeed können Sie bis zu 100 benutzerdefinierte Attribute pro Feedelement einschließen, wobei jeder benutzerdefinierte Attributname eindeutig ist.

Für den Untertyp DynamicDataAutosListingFeed können Sie bis zu 100 benutzerdefinierte Attribute pro Feedelement einschließen, wobei jeder benutzerdefinierte Attributname eindeutig ist.

Für den Untertyp PageFeed können Sie ein oder zwei benutzerdefinierte Attribute pro Feedelement einschließen, wobei jeder benutzerdefinierte Attributname eindeutig ist.

Die benutzerdefinierten Attribute werden in der Massendatei als JSON-Zeichenfolge dargestellt. Weitere Informationen finden Sie unter feedAttributeType, isPartOfKey und name unten.

Hier finden Sie Benutzerdefinierte Beispielattribute, die Sie für einen Seitenfeed hochladen können.

Hinweis

In der durch Trennzeichen getrennten Massendatei müssen Sie die Liste der Attribute, jeden Attributschlüssel und jeden Attributwert mit einem zusätzlichen Satz doppelter Anführungszeichen einschließen, z. B. Die obige JSON-Zeichenfolge wird als "[{""name""":"Seiten-URL"","""feedAttributeType"":""Url"",""isPartOfKey"":true},{""name""name"" geschrieben.:""Custom Label"",""feedAttributeType"":""StringList""},{""name""":"Ad Title"",""feedAttributeType"":"String""}]".

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

Hinzufügen: Erforderlich. Für einen Anzeigenanpasser und einen DynamicDataAutosListing-Feed müssen Sie mindestens ein Attribut mit name und feedAttributeType-Schlüsseln festlegen. Für einen Seitenfeed müssen Sie mindestens ein Attribut mit dem Namen "Seiten-URL" festlegen. Nur die Schlüssel name, feedAttributeType und isPartOfKey werden berücksichtigt.
Aktualisieren: Optional. Sie können benutzerdefinierte Attribute nicht entfernen, nachdem der Feed erstellt wurde. Sie können neue benutzerdefinierte Attribute hinzufügen, indem Sie nur die neuen Attribute hochladen, d. h., vorhandene Attribute nicht mit den neuen Attributen einschließen. Wenn Sie vorhandene Attribute mit neuen Attributen einschließen, wird ein Fehler zurückgegeben. Wenn Sie dieses Feld leer lassen oder eine exakte Kopie vorhandener Attribute ohne Änderungen hochladen, werden keine Änderungen vorgenommen.
Löschen: Schreibgeschützt

feedAttributeType

Der Datentyp jedes benutzerdefinierten Attributs. Sie definieren den Datentyp im Feeddatensatz und legen dann Werte im Feedelement fest. Solange jeder benutzerdefinierte Attributname innerhalb des Feeds eindeutig ist, können Sie mehrere Attribute mit demselben Datentyp definieren.

Es gibt vier verschiedene Datentypen feedAttributeType , die Sie für Ad Customizer-Feeds festlegen können:

feedAttributeType Anwendungsfälle Akzeptierte Feedelementwerte
Zeichenfolge Produktnamen, Produktkategorien, Beschreibungen Beliebige Buchstaben, Zahlen oder Symbole
Int64 Bestandsanzahl, Anzahl der verfügbaren Farben Beliebige ganze Zahl
Kurs Produktkosten, Rabatt Beliebige Zahl (einschließlich Dezimalstellen) und gültige Währungszeichen
DateTime Startzeit des Ereignisses, letzter Tag eines Verkaufs jjjj/mm/tt HH:mm:ss
Wenn sie am Anfang des Tages standardmäßig auf Mitternacht festgelegt ist, können Sie den HH:mm:ss-Teil weglassen.

Beispielsweise können wir die benutzerdefinierten Attribute eines Ad Customizer-Feeds definieren.

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

Anschließend können wir jeden Feednamen zuordnen, d. h. "DateTimeName", "Int64Name", "PriceName" und "StringName" im Feedelementupload :

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

Es gibt sechs verschiedene Datentypen feedAttributeType , die Sie für DynamicDataAutosListing-Feeds festlegen können:

feedAttributeType Anwendungsfälle Akzeptierte Feedelementwerte
Zeichenfolge Fahrzeugname, Fahrzeugkategorie, Beschreibung Beliebige Buchstaben, Zahlen oder Symbole
Int64 Fahrzeugjahr, Motor Beliebige ganze Zahl
Kurs Fahrzeugkosten, Rabatt Beliebige Zahl (einschließlich Dezimalstellen) und gültige Währungszeichen
DateTime Startzeit des Ereignisses, letzter Tag eines Verkaufs jjjj/mm/tt HH:mm:ss
Wenn sie am Anfang des Tages standardmäßig auf Mitternacht festgelegt ist, können Sie den HH:mm:ss-Teil weglassen.
Url Enthält die URL Ihrer Website, die in den Feed eingeschlossen werden soll. Sie müssen eine URL pro Feedelement angeben.
StringList Bezeichnungen, mit denen Sie die URLs innerhalb des Feeds gruppieren können. Sie können eine bis zehn benutzerdefinierte Bezeichnungen pro Feedelement einschließen.
Jede benutzerdefinierte Bezeichnung wird als Listenelement in JSON-Notation dargestellt. Beispielsweise könnte der benutzerdefinierte Bezeichnungsteil des Feedelements als ""Benutzerdefinierte Bezeichnung""":[""Label_1_3001""",""Label_2_3001""]] geschrieben werden.

Beispielsweise können wir die benutzerdefinierten Attribute eines DynamicDataAutosListing-Feeds definieren.

[
	{
		"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"
	}
]

Anschließend können wir jeden Feednamen zuordnen, d. h. "DateTimeName", "Int64Name", "PriceName" und "StringName" im Feedelementupload :

{
	"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"
	],
}

Dies sind die Datentypen, die feedAttributeType Sie für Seitenfeeds festlegen können:

feedAttributeType Anwendungsfälle Akzeptierte Feedelementwerte
Zeichenfolge Statische Überschrift, die anstelle der dynamisch generierten Überschrift angezeigt wird. Alle Buchstaben, Zahlen oder Symbole bis zu 63 Zeichen. Sie können einen Anzeigentitel pro Feedelement einschließen.
StringList Bezeichnungen, mit denen Sie die URLs innerhalb des Feeds gruppieren können. Sie können eine bis zehn benutzerdefinierte Bezeichnungen pro Feedelement einschließen.
Jede benutzerdefinierte Bezeichnung wird als Listenelement in JSON-Notation dargestellt. Beispielsweise könnte der benutzerdefinierte Bezeichnungsteil des Feedelements als ""Benutzerdefinierte Bezeichnung""":[""Label_1_3001""",""Label_2_3001""]] geschrieben werden.
Url Enthält die URL Ihrer Website, die in den Feed eingeschlossen werden soll. Sie müssen eine URL pro Feedelement angeben.

Beispielsweise können wir die benutzerdefinierten Attribute des Seitenfeeds definieren.

Hinweis

Ist feedAttributeType für Seitenfeeds optional. Wenn Sie festlegen feedAttributeType, muss er auf "Url" für "Seiten-URL", "StringList" für "Benutzerdefinierte Bezeichnung" und "String" für benannte Attribute " Anzeigentitel" festgelegt werden.

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

Anschließend können wir jeden Feednamen zuordnen, z. B. "Seiten-URL", "Benutzerdefinierte Bezeichnung" und "Anzeigentitel" im Feedelementupload :

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

isPartOfKey

Bestimmt isPartOfKey , ob die Werte für ein benutzerdefiniertes Attribut für alle Feedelementdatensätze , die zum Feed rollups führen, eindeutig sein müssen. Wenn auf isPartOfKey "true" festgelegt ist, müssen die Werte eindeutig sein. Andernfalls können Sie doppelte Werte für dasselbe benutzerdefinierte Attribut hochladen.

Für Anzeigenanpasserfeeds und Feedelemente wird eine Zeichenfolge mit dem Namen "Benutzerdefinierte ID" immer als eindeutiger Schlüssel behandelt, d. h. der isPartOfKey ist immer "true". Das Attribut "Benutzerdefinierte ID" ist derzeit die einzige Möglichkeit, einen eindeutigen Schlüssel für Ad Customizer-Feeds über die Microsoft Advertising-Webanwendung festzulegen. Mit der Massen-API haben Sie mehr Flexibilität, einen beliebigen Attributnamen als eindeutigen Schlüssel zu verwenden.

Für Seitenfeeds und Feedelemente wird die "Seiten-URL" immer als eindeutiger Schlüssel behandelt, d. h., der isPartOfKey ist immer "true".

Für DynamicDataAutosListing-Feeds und Feedelemente wird die "VehicleId" immer als eindeutiger Schlüssel behandelt, d. h. der isPartOfKey ist immer "true".

name

Das name -Attribut wird verwendet, um ein eindeutiges benutzerdefiniertes Attribut sowohl für den Feed als auch für das Feedelement zuzuordnen. So stellen Sie effektiv sicher, dass ein bestimmtes Feedelement ein Rollup zur gleichen "Spalte" im Feed führt. Im obigen Beispiel für den Anzeigenanpasser werden die Namen "DateTimeName", "Int64Name", "PriceName" und "StringName" sowohl im Feed als auch im Feedelement verwendet.

Feedname

Der Name des Feeds.

Der Name muss für alle Feeds innerhalb des Kontos eindeutig sein (ohne Berücksichtigung der Groß-/Kleinschreibung). Der Name darf maximal 128 Zeichen lang sein.

Hinzufügen: Erforderlich
Aktualisieren: Optional. Wenn für das Update kein Wert festgelegt ist, wird diese Einstellung nicht geändert.
Löschen: Schreibgeschützt

Id

Der vom System generierte Bezeichner des Feeds.

Hinzufügen: Optional. Sie müssen dieses Feld entweder leer lassen oder einen negativen Bezeichner angeben. Auf einen negativen Bezeichner für den Feed kann dann im Feld Id von abhängigen Datensatztypen wie Feedelement verwiesen werden. Dies wird empfohlen, wenn Sie neue Feeds und Feedelemente in derselben Massendatei hinzufügen. Weitere Informationen finden Sie unter Massendateischemareferenzschlüssel.
Aktualisieren: Schreibgeschützt und erforderlich
Löschen: Schreibgeschützt und erforderlich

Änderungszeit

Das Datum und die Uhrzeit der letzten Aktualisierung der Entität. Der Wert wird in UTC (Coordinated Universal Time) angegeben.

Hinweis

Der Datums- und Uhrzeitwert gibt das Datum und die Uhrzeit auf dem Server und nicht auf dem Client an. Informationen zum Format von Datum und Uhrzeit finden Sie unter dateTime-Eintrag in Primitive XML-Datentypen.

Hinzufügen: Schreibgeschützt
Aktualisieren: Schreibgeschützt
Löschen: Schreibgeschützt

Übergeordnete ID

Der vom System generierte Bezeichner des Kontos, das den Feed enthält.

Dieses Massenfeld wird dem Feld Id des Kontodatensatzes zugeordnet.

Hinzufügen: Schreibgeschützt
Aktualisieren: Schreibgeschützt
Löschen: Schreibgeschützt

Status

Die status des Feeds.

Mögliche Werte sind Aktiv oder Gelöscht.

Hinzufügen: Optional. Der Standardwert ist Aktiv.
Aktualisieren: Optional. Wenn für das Update kein Wert festgelegt ist, wird diese Einstellung nicht geändert.
Löschen: Erforderlich. Der Status muss auf Gelöscht festgelegt werden.

Untertyp

Der Feeduntertyp ist aus Gründen der Lesbarkeit in der Massendownloaddatei enthalten.

Die folgenden Werte sind möglich:

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

Neue Werte können in Zukunft unterstützt werden, sodass Sie keine Abhängigkeit von einem festen Satz von Werten annehmen dürfen.

Hinzufügen: Schreibgeschützt
Aktualisieren: Schreibgeschützt
Löschen: Schreibgeschützt