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:
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