Partager via


Enregistrement de flux - En bloc

Définit un flux qui peut être téléchargé et chargé dans un fichier en bloc.

Conseil

Pour obtenir une vue d’ensemble de l’utilisation des flux et des éléments de flux, consultez les guides techniques Flux du personnalisateur d’annonces, Flux d’inventaire automatique et Flux de page .

Remarque

  • Mettez à niveau vos annonces textuelles développées en annonces de recherche réactives d’après le 1er février 2023. Après cette date, vous ne serez plus en mesure de créer ou de modifier des annonces textuelles développées existantes. Pour plus d’informations, consultez À propos des annonces de recherche réactive.
  • Vos flux planifiés continueront à s’exécuter et les annonces texte développées existantes utilisant des flux de personnalisateur d’annonces continueront à être diffusées. Vous serez en mesure d’afficher des rapports sur leurs performances.
  • Vous pourrez toujours suspendre, exécuter ou supprimer vos flux de personnalisateur d’annonces existants. Sinon, les tentatives de création ou de modification de personnalisateurs d’annonces publicitaires existants pour les annonces textuelles développées entraînent une CustomerNotEligibleForAdCustomizersFeed erreur.
  • En savoir plus sur cette modification.

Si vous créez des entités parentes et enfants dans le même fichier en bloc, les enregistrements dépendants doivent être inclus après les dépendances en fonction de la hiérarchie :

  1. Flux
  2. Campagne
  3. Groupe d’annonces
  4. Élément de flux

Vous pouvez avoir 100 flux par compte (ce nombre maximal inclut tous les types de flux) et le nombre maximal d’éléments de flux (lignes) par compte est de 5 millions.

Vous pouvez télécharger tous les enregistrements de flux dans le compte en incluant la valeur DownloadEntity de Feeds dans la demande de service DownloadCampaignsByAccountIds ou DownloadCampaignsByCampaignIds . En outre, la demande de téléchargement doit inclure l’étendue EntityData . Pour plus d’informations sur le service en bloc, y compris les meilleures pratiques, consultez Téléchargement et chargement en bloc.

L’exemple csv en bloc suivant ajoute un nouveau flux de page, un inventaire automatique et un flux de personnalisateur d’annonces avec un élément de flux pour chacun.

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

Si vous utilisez les Kits de développement logiciel (SDK) Bing Ads pour .NET, Java ou Python, vous pouvez gagner du temps à l’aide de BulkServiceManager pour charger et télécharger l’objet BulkFeed , au lieu d’appeler directement les opérations de service et d’écrire du code personnalisé pour analyser chaque champ dans le fichier en bloc.

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

Pour un enregistrement de flux , les champs d’attribut suivants sont disponibles dans le schéma de fichier en bloc.

ID client

Permet d’associer des enregistrements du fichier de chargement en bloc aux enregistrements du fichier de résultats. La valeur de ce champ n’est pas utilisée ou stockée par le serveur ; il est simplement copié de l’enregistrement chargé vers l’enregistrement de résultat correspondant. Il peut s’agir d’une chaîne valide d’une longueur maximale de 100.

Ajouter: Optionnel
Mettre à jour: Optionnel
Supprimer: En lecture seule

Attributs personnalisés

Les attributs sont personnalisés pour chaque sous-type de flux et définissent les informations sur vos produits ou services que vous souhaitez insérer dans vos publicités.

Pour le sous-type AdCustomizerFeed , vous pouvez inclure jusqu’à 100 attributs personnalisés par élément de flux où chaque nom d’attribut personnalisé est unique.

Pour le sous-type DynamicDataAutosListingFeed , vous pouvez inclure jusqu’à 100 attributs personnalisés par élément de flux où chaque nom d’attribut personnalisé est unique.

Pour le sous-type PageFeed , vous pouvez inclure un ou deux attributs personnalisés par élément de flux où chaque nom d’attribut personnalisé est unique.

Les attributs personnalisés sont représentés dans le fichier en bloc sous la forme d’une chaîne JSON. Pour plus d’informations, consultez feedAttributeType, isPartOfKey et nom ci-dessous.

Voici des exemples d’attributs personnalisés que vous pouvez charger pour un flux de page.

Remarque

Dans le fichier en bloc séparé par des virgules, vous devez entourer la liste des attributs, chaque clé d’attribut et chaque valeur d’attribut avec un ensemble supplémentaire de guillemets doubles, par exemple, la chaîne JSON ci-dessus est écrite sous la forme « [{""name" » :"Page URL" »,"feedAttributeType" » :"Url »,"isPartOfKey" » :true},{"name" » : » :"name » : » : » « "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"
	}
]

Ajouter: Obligatoire. Pour un personnalisateur de publicité et un flux DynamicDataAutosListing, vous devez définir au moins un attribut avec les clés name et feedAttributeType . Pour un flux de page, vous devez définir au moins un attribut dont le nom est défini sur « Url de la page ». Seules les clés name, feedAttributeType et isPartOfKey sont respectées.
Mettre à jour: Optionnel. Vous ne pouvez pas supprimer les attributs personnalisés une fois le flux créé. Vous pouvez ajouter de nouveaux attributs personnalisés en chargeant uniquement les nouveaux attributs, c’est-à-dire ne pas inclure d’attributs existants avec les nouveaux attributs. Si vous incluez des attributs existants avec de nouveaux attributs, une erreur est retournée. Si vous laissez ce champ vide ou chargez une copie exacte des attributs existants sans aucune modification, aucune modification n’est apportée.
Supprimer: En lecture seule

feedAttributeType

Type de données de chaque attribut personnalisé. Vous définissez le type de données dans l’enregistrement de flux, puis définissez des valeurs dans l’élément de flux. Tant que chaque nom d’attribut personnalisé est unique dans le flux, vous pouvez définir plusieurs attributs avec le même type de données.

Il existe quatre types de données différents feedAttributeType que vous pouvez définir pour les flux de personnalisateur d’annonces :

feedAttributeType Cas d'utilisation Valeurs d’élément de flux acceptées
Chaîne Noms de produits, catégories de produits, descriptions Lettres, chiffres ou symboles
Int64 Nombre d’inventaires, nombre de couleurs disponibles N’importe quel nombre entier
Price Coût du produit, remise sur la vente N’importe quel nombre (y compris les décimales) et les caractères monétaires valides
Date/heure Heure de début de l’événement, dernier jour d’une vente aaaa/mm/jj HH :mm :ss
Pour que la valeur par défaut soit minuit au début de la journée, vous pouvez omettre la partie HH :mm :ss.

Par exemple, nous pouvons définir les attributs personnalisés d’un flux de personnalisateur d’annonces.

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

Ensuite, nous pouvons mapper chaque nom de flux, c’est-à-dire « DateTimeName », « Int64Name », « PriceName » et « StringName » dans le chargement de l’élément de flux :

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

Il existe six types de données différents feedAttributeType que vous pouvez définir pour les flux DynamicDataAutosListing :

feedAttributeType Cas d'utilisation Valeurs d’élément de flux acceptées
Chaîne Nom du véhicule, catégorie de véhicule, description Lettres, chiffres ou symboles
Int64 année du véhicule, moteur N’importe quel nombre entier
Price Coût du véhicule, remise sur la vente N’importe quel nombre (y compris les décimales) et les caractères monétaires valides
Date/heure Heure de début de l’événement, dernier jour d’une vente aaaa/mm/jj HH :mm :ss
Pour que la valeur par défaut soit minuit au début de la journée, vous pouvez omettre la partie HH :mm :ss.
Url Contient l’URL de votre site web à inclure dans le flux. Vous devez inclure une URL par élément de flux.
StringList Étiquettes qui vous permettent de regrouper les URL dans le flux. Vous pouvez inclure entre une et dix étiquettes personnalisées par élément de flux.
Chaque étiquette personnalisée est représentée sous la forme d’un élément de liste en notation JSON. Par exemple, la partie étiquette personnalisée de l’élément de flux peut être écrite sous la forme « "Étiquette personnalisée » :[""Label_1_3001 »,""Label_2_3001"""]

Par exemple, nous pouvons définir les attributs personnalisés d’un flux 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"
	}
]

Ensuite, nous pouvons mapper chaque nom de flux, c’est-à-dire « DateTimeName », « Int64Name », « PriceName » et « StringName » dans le chargement de l’élément de flux :

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

Voici les feedAttributeType types de données que vous pouvez définir pour les flux de page :

feedAttributeType Cas d'utilisation Valeurs d’élément de flux acceptées
Chaîne Titre statique affiché au lieu du titre généré dynamiquement. Toutes les lettres, chiffres ou symboles jusqu’à 63 caractères. Vous pouvez inclure un titre d’annonce par élément de flux.
StringList Étiquettes qui vous permettent de regrouper les URL dans le flux. Vous pouvez inclure entre une et dix étiquettes personnalisées par élément de flux.
Chaque étiquette personnalisée est représentée sous la forme d’un élément de liste en notation JSON. Par exemple, la partie étiquette personnalisée de l’élément de flux peut être écrite sous la forme « "Étiquette personnalisée » :[""Label_1_3001 »,""Label_2_3001"""]
Url Contient l’URL de votre site web à inclure dans le flux. Vous devez inclure une URL par élément de flux.

Par exemple, nous pouvons définir les attributs personnalisés du flux de page.

Remarque

est feedAttributeType facultatif pour les flux de page. Si vous définissez , feedAttributeTypeil doit être défini sur « Url » pour « Url de page », « StringList » pour « Étiquette personnalisée » et « String » pour les attributs nommés « Ad Title ».

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

Ensuite, nous pouvons mapper chaque nom de flux, c’est-à-dire « URL de page », « Étiquette personnalisée » et « Titre de l’annonce » dans le chargement de l’élément de flux :

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

isPartOfKey

détermine isPartOfKey si les valeurs d’un attribut personnalisé doivent être uniques dans tous les enregistrements d’élément de flux qui se cumulent au flux. Si est isPartOfKey défini sur « true », les valeurs doivent être uniques ; sinon, vous pouvez charger des valeurs en double pour le même attribut personnalisé.

Pour les flux de personnalisateur d’annonces et les éléments de flux, une chaîne nommée « ID personnalisé » est toujours traitée comme une clé unique, c’est-à-dire que est isPartOfKey toujours « true ». L’attribut « Id personnalisé » est actuellement le seul moyen de définir une clé unique pour les flux de personnalisateurs d’annonces via l’application web Microsoft Advertising. Avec l’API en bloc, vous avez plus de flexibilité pour utiliser n’importe quel nom d’attribut comme clé unique.

Pour les flux de page et les éléments de flux, l'« URL de page » est toujours traitée comme une clé unique, c’est-à-dire que est isPartOfKey toujours « true ».

Pour les flux et les éléments de flux DynamicDataAutosListing, le « VehicleId » est toujours traité comme une clé unique, c’est-à-dire que est isPartOfKey toujours « true ».

nom

L’attribut name est utilisé pour mapper un attribut personnalisé distinct entre le flux et l’élément de flux. En fait, c’est ainsi que vous vous assurez qu’un élément de flux spécifique se cumule à la même « colonne » dans le flux. Dans l’exemple de personnalisateur d’annonces ci-dessus, les noms « DateTimeName », « Int64Name », « PriceName » et « StringName » sont utilisés à la fois dans le flux et l’élément de flux.

Nom du flux

Nom du flux.

Le nom doit être unique (ne respectant pas la casse) parmi tous les flux du compte. Le nom peut contenir un maximum de 128 caractères.

Ajouter: Obligatoire
Mettre à jour: Optionnel. Si aucune valeur n’est définie pour la mise à jour, ce paramètre n’est pas modifié.
Supprimer: En lecture seule

ID

Identificateur généré par le système du flux.

Ajouter: Optionnel. Vous devez laisser ce champ vide ou spécifier un identificateur négatif. Un ensemble d’identificateurs négatifs pour le flux peut ensuite être référencé dans le champ Id des types d’enregistrements dépendants tels que l’élément de flux. Cette option est recommandée si vous ajoutez de nouveaux flux et éléments de flux dans le même fichier en bloc. Pour plus d’informations, consultez Clés de référence de schéma de fichier en bloc.
Mettre à jour: Lecture seule et Obligatoire
Supprimer: Lecture seule et Obligatoire

Heure de modification

Date et heure de la dernière mise à jour de l’entité. La valeur est exprimée au format UTC (temps universel coordonné).

Remarque

La valeur de date et d’heure reflète la date et l’heure sur le serveur, et non le client. Pour plus d’informations sur le format de la date et de l’heure, consultez l’entrée dateTime dans Types de données XML primitifs.

Ajouter: En lecture seule
Mettre à jour: En lecture seule
Supprimer: En lecture seule

Parent Id

Identificateur généré par le système du compte qui contient le flux.

Ce champ en bloc est mappé au champ Id de l’enregistrement de compte .

Ajouter: En lecture seule
Mettre à jour: En lecture seule
Supprimer: En lecture seule

Statut

Status du flux.

Les valeurs possibles sont Active ou Deleted.

Ajouter: Optionnel. La valeur par défaut est Active.
Mettre à jour: Optionnel. Si aucune valeur n’est définie pour la mise à jour, ce paramètre n’est pas modifié.
Supprimer: Obligatoire. L’état doit être défini sur Supprimé.

Sous-type

Le sous-type de flux est inclus dans le fichier de téléchargement en bloc pour plus de lisibilité.

Les valeurs possibles sont les suivantes :

  • Flux de pages
  • AdCustomizerFeed
  • DynamicDataToursAndActivitiesFeed
  • DynamicDataCreditCardsFeed
  • DynamicDataCruisesFeed
  • DynamicDataHealthInsuranceFeed
  • DynamicDataProfessionalServiceFeed
  • DynamicDataMortgageLendersFeed
  • DynamicDataEventsFeed
  • DynamicDataHotelsAndVacationRentalsFeed
  • DynamicDataCustomFeed
  • DynamicDataAutosListingFeed

Les nouvelles valeurs pouvant être prises en charge à l’avenir, vous ne devez pas dépendre d’un ensemble fixe de valeurs.

Ajouter: En lecture seule
Mettre à jour: En lecture seule
Supprimer: En lecture seule