Passer au contenu principal
POST
Sponsorisez une publication Instagram existante pour créer une annonce. Cet endpoint vous permet de convertir vos publications organiques en annonces payantes avec des paramètres de ciblage, de budget et de planification personnalisés.
  • Les montants du budget et de l’enchère sont exprimés dans la devise du compte publicitaire. Utilisez jusqu’à deux décimales, ou des nombres entiers pour les devises que Meta accepte uniquement en unités entières : CLP, COP, CRC, HUF, IDR, ISK, JPY, KRW, PYG, TWD et VND.
  • The ad must run for at least 30 hours to address the Instagram requirement.
  • Vous pouvez utiliser l’endpoint interests pour trouver les ID de centres d’intérêt pour le ciblage.
  • Instagram may take up to 24 hours to review and approve boosted posts.
  • Si vous utilisez socialPostId directement (au lieu de postId Ayrshare), assurez-vous qu’il s’agit d’un ID de publication Instagram valide.
  • Si un boost échoue après que Facebook a créé sa campagne (à l’étape de la création publicitaire, de l’ensemble de publicités ou de la publicité), nous essayons de supprimer cette campagne. Si la suppression échoue également, la campagne vide reste dans votre compte publicitaire. Vous pouvez la retrouver et la supprimer dans le Gestionnaire de publicités (Ads Manager).
Meta refuse l’annonce tant que ces deux conditions ne sont pas remplies :
  • Un moyen de paiement sur le compte publicitaire. Ajoutez-en un dans Facturation et paiements de Meta et associez-le au compte publicitaire que vous envoyez dans accountId. Un moyen de paiement enregistré uniquement dans le portefeuille business ne suffit pas.
  • Publicités personnalisées activées (UE, EEE et Suisse). Si le propriétaire du compte Facebook ou Instagram associé à votre Facebook Page a choisi de voir des publicités moins personnalisées, ou s’est abonné pour utiliser Meta sans publicités, Meta ne permet pas à ce compte ni à la Page de diffuser des publicités. Le propriétaire peut revenir aux publicités personnalisées, ou résilier l’abonnement, dans Espace comptes → Préférences publicitaires → Expérience publicitaire. En savoir plus.

Objectifs publicitaires

Chaque annonce doit avoir un objectif. L’objectif détermine la manière dont l’annonce sera optimisée pour l’affichage.
  • engagement : Cet objectif vise à augmenter l’engagement tout en garantissant que l’annonce atteigne le nombre maximum d’utilisateurs uniques. Il équilibre la visibilité avec l’engagement, en montrant l’annonce à autant de personnes différentes que possible susceptibles d’interagir avec elle.
  • interactions : Conçu pour stimuler les interactions, telles que les likes, les commentaires et les partages, sur l’annonce. Instagram priorise l’affichage de l’annonce aux utilisateurs les plus susceptibles d’interagir avec elle.
  • awareness_views : Se concentre sur l’augmentation de la notoriété de la marque en maximisant le nombre de fois que l’annonce est affichée. Il priorise l’affichage de l’annonce autant de fois que possible dans le cadre du budget, quelle que soit la portée unique.
  • awareness_audience : Vise à améliorer la notoriété de la marque en maximisant le nombre de personnes uniques qui voient l’annonce. Il garantit que l’annonce atteint autant d’utilisateurs différents que possible et maximise la taille de l’audience unique plutôt que de la montrer plusieurs fois à la même audience.
Les annonces Instagram nécessitent un compte Instagram Business connecté via Facebook, une page Facebook associée et l’autorisation ads_management. Reconnectez le compte via Facebook pour accorder cette autorisation. Les comptes connectés avec Instagram Login ne peuvent pas utiliser ces endpoints publicitaires. L’ID du média et l’ID du compte Instagram sont résolus à partir de votre compte lié ; n’envoyez pas instagram_user_id.
Le sélecteur socialPostId accepte également l’alias spécifique à Instagram igPostId. fbPostId ne s’applique qu’à Facebook. Les réponses réussies incluent platform: "instagram", socialPostId et igPostId.

Paramètres d’en-tête

Paramètres du corps

string
Une clé unique et non vide pour cette requête de sponsorisation. Réessayez la même charge utile avec la même clé pour éviter de créer une annonce en double. Réutiliser la clé avec une charge utile différente, ou pour une sponsorisation sur Facebook, renvoie un HTTP 409. Sur toute autre plateforme, la même clé lance une sponsorisation distincte. Une requête encore en cours renvoie également un 409 ; une réservation indisponible renvoie un 503 sans créer d’annonce.
boolean
défaut:false
Autorise Meta à partager le budget entre les ensembles de publicités de la campagne.
string
requis
L’ID du compte publicitaire Instagram sur lequel sponsoriser la publication. L’ID du compte peut être récupéré depuis l’endpoint des comptes publicitaires.
string
requis
Nom de votre annonce (apparaît dans l’Instagram Ad Manager) au format {adName} - {postId or socialPostId} - {current date}. Si vous envoyez un idempotencyKey, le nom se termine aussi par - {request reference}, une courte référence identique pour cette clé.
number
requis
Montant maximum de l’enchère dans la devise du compte publicitaire, sous forme de montant positif.
number
requis
Budget quotidien dans la devise du compte publicitaire, sous forme de montant positif. Meta peut imposer des minimums selon votre compte et votre objectif.
string
L’ID de publication sociale Instagram de la publication à sponsoriser, qui vous permet de créer une annonce à partir d’une publication créée directement sur Instagram. Il s’agit de l’ID de la publication sur Instagram, pas d’Ayrshare. Requis si postId n’est pas défini.
string
défaut:"engagement"
L’objectif de l’annonce. Valeurs : engagement, interactions, awareness_views et awareness_audience. Consultez les détails des objectifs publicitaires ci-dessus pour plus d’informations.
object
Ciblez des pays avec {"countries": ["US", "CA"]} en utilisant les codes de pays. Vous pouvez également fournir des tableaux regions et cities ; consultez regions et cities. Un objet qui ne désigne aucun pays, aucune région ni aucune ville, comme {}, est refusé avec le code 101 ; omettez locations pour cibler les États-Unis.
string
L’ID de publication Ayrshare de la publication à sponsoriser. Requis si socialPostId n’est pas défini.
string
défaut:"active"
Le statut de l’annonce. Valeurs : active et paused.Vous pouvez modifier ultérieurement le statut de l’annonce en utilisant l’endpoint update ad.
object
Suivez l’annonce à l’aide d’un Meta Pixel.
array
Ajoutez des balises UTM à l’URL de l’annonce.
Par exemple, si l’URL de destination est https://www.mysite.com/my-post et que les balises d’URL ajoutées sont :utm_source=ayrshare, utm_medium=social et utm_campaign=ayrshare-social.L’URL de l’annonce sera : https://www.mysite.com/my-post?utm_source=ayrshare&utm_medium=social&utm_campaign=ayrshare-social.
array
Meta exige que les annonceurs des catégories publicitaires spéciales auto-identifient la catégorie de leur campagne.Si votre entreprise appartient à l’une de ces catégories, vous devez sélectionner la catégorie appropriée lors de la sponsorisation de votre publication.Les valeurs suivantes sont prises en charge :
  • housing : Annonces qui promeuvent ou renvoient directement à une opportunité de logement ou à un service connexe, y compris, mais sans s’y limiter, les annonces de vente ou de location d’une maison ou d’un appartement, l’assurance habitation, l’assurance hypothécaire, les prêts hypothécaires, les réparations domiciliaires et les services d’évaluation ou de prêt sur valeur nette du domicile.
  • financial_product_services : Annonces qui promeuvent ou renvoient directement à une offre de produits et services financiers, y compris le crédit.
  • employment : Annonces qui promeuvent ou renvoient directement à une opportunité d’emploi, y compris, mais sans s’y limiter, les emplois à temps partiel ou à temps plein, les stages ou les programmes de certification professionnelle. Les annonces connexes appartenant à cette catégorie incluent des promotions pour des tableaux d’emploi ou des salons de l’emploi, des services d’agrégation ou des annonces détaillant les avantages qu’une entreprise peut offrir, indépendamment d’une offre d’emploi spécifique.
  • issues_elections_politics : Annonces réalisées par, au nom de, ou concernant un candidat à une fonction publique, une personnalité politique, un parti politique ou plaidant pour l’issue d’une élection à une fonction publique. Cela inclut également les annonces concernant toute élection, référendum ou initiative de vote, y compris les campagnes électorales « Allez voter ». Les annonces réglementées comme publicité politique ou concernant des questions sociales dans tout lieu où l’annonce est diffusée. Si vous sélectionnez questions, élections ou politique, vous devez sélectionner le pays dans lequel vous souhaitez diffuser ces annonces. Vous devez être autorisé à diffuser des annonces concernant des questions sociales, des élections ou la politique dans le pays spécifié.
Meta a également besoin des pays dans lesquels une publicité de catégorie spéciale est diffusée. Ayrshare les déduit de locations : les pays que vous indiquez, plus le pays de chaque région et de chaque ville. Ainsi, un boost housing qui cible une ville du Royaume-Uni est configuré pour le Royaume-Uni, sans rien ajouter à votre requête. Sans locations, la publicité est diffusée aux États-Unis et la campagne est configurée pour les États-Unis.Meta impose aussi un rayon minimal autour de chaque ville pour ces catégories. Une ville du Royaume-Uni avec un rayon de 17 kilomètres a été refusée avec #2909039, qui exige au moins 25 kilomètres (15 miles). Utilisez donc 25 kilomètres ou plus.
Meta exige des annonceurs qu’ils identifient correctement la catégorie de leur campagne. Meta utilise des évaluateurs humains et l’apprentissage automatique pour identifier ce type d’annonces. Si vous nous envoyez un specialAdCategories incorrect, vos annonces risquent d’être mises en pause jusqu’à ce que la campagne soit ajustée.
string
La personne ou l’organisation bénéficiant de l’annonce. À définir conjointement avec dsaPayor. Utilisez l’endpoint des recommandations DSA pour obtenir des suggestions.
string
La personne ou l’organisation payant pour l’annonce. À définir conjointement avec dsaBeneficiary.
string
Date et heure de fin au format ISO 8601 (doit être au moins 30 heures après le début), par exemple 2025-03-01T00:00:00Z.Si non défini, l’annonce sera diffusée indéfiniment et aura une date de fin ongoing.
object
Excluez des localisations en utilisant la même structure countries, regions et cities que locations.
string
défaut:"all"
Le genre de l’audience. Valeurs : all, male, female.
array
Les centres d’intérêt cibles de l’annonce sous forme d’un tableau d’ID de centres d’intérêt Instagram.
number
défaut:65
Âge maximum pour le ciblage de l’annonce (par défaut : 65).
number
défaut:18
Âge minimum pour le ciblage de l’annonce (par défaut : 18).
string
Date et heure de début au format ISO 8601, par exemple 2025-03-01T00:00:00Z.Si non défini, l’annonce démarrera immédiatement.
Remplacez les ID d’exemple par les vôtres. Définissez startDate et endDate selon votre planification prévue ; les dates d’exemple sont illustratives.

Budgets totaux

Le corps ci-dessus définit un budget quotidien sur l’ensemble d’annonces. Pour un budget total, envoyez plutôt la forme imbriquée du corps de la requête de boost. Dans la forme imbriquée, accountId, postId (ou socialPostId à la place de igPostId), goal, status et callToAction restent au niveau supérieur. Trois objets remplacent les champs plats de budget, de dates et de ciblage : budget, schedule (start, end) et targeting (locations, excludedLocations, ageMin, ageMax, genders, interests). Les autres champs, adName, bidAmount, specialAdCategories, adSetBudgetSharingEnabled, link, tracking, urlTags, dsaBeneficiary et dsaPayor, passent sous platformOptions.instagram.
  • budget.type : daily (par défaut) ou lifetime. Un budget total est dépensé entre les dates de début et de fin : il nécessite donc schedule.end. Sans cette date, la requête est rejetée avec une erreur 400 et code: 101. Le partage de budget entre ensembles d’annonces de Meta ne fonctionne qu’avec les budgets quotidiens : un budget total avec adSetBudgetSharingEnabled: true est donc également rejeté avec code: 101.
La réponse ajoute budgetType: "lifetime" pour un budget total. Un budget quotidien ne renvoie pas budgetType : considérez donc un champ absent comme daily.

Budgets de campagne

Pour placer le budget sur la campagne plutôt que sur l’ensemble d’annonces, envoyez budget.level: "campaign" dans la forme imbriquée présentée ci-dessus. L’ensemble d’annonces n’a alors pas de budget propre. Cela fonctionne avec les budgets quotidiens comme avec les budgets totaux.
  • budget.level : adSet (par défaut) ou campaign. Un budget de campagne ne peut pas être combiné avec adSetBudgetSharingEnabled. L’envoi des deux est rejeté avec une erreur 400 et code: 101.
  • La réponse ajoute budgetLevel: "campaign" pour un budget de campagne. Un budget d’ensemble d’annonces ne renvoie pas budgetLevel : considérez donc un champ absent comme adSet.
  • Dans l’Historique, budgetDaily affiche le budget quotidien de la campagne pour une annonce avec un budget de campagne quotidien. Si plusieurs annonces partagent un même budget de campagne, chacune affiche l’intégralité du budget de la campagne, et non sa part. L’Historique n’affiche pas les budgets totaux, ni sur la campagne ni sur l’ensemble d’annonces. Une fois un budget de campagne total épuisé, chaque annonce de cette campagne affiche deliveryStatus: "COMPLETED" après la mise à jour nocturne suivante, y compris une annonce programmée ou en cours d’examen. Une annonce rejetée reste REJECTED.

Sponsoriser dans une campagne ou un ensemble d’annonces existant

Par défaut, chaque boost crée sa propre campagne, son propre ensemble d’annonces et sa propre annonce. Pour ajouter le boost à une campagne ou à un ensemble d’annonces que vous gérez déjà dans Meta, envoyez la forme imbriquée avec attachTo.
  • attachTo.campaignId : le boost crée un nouvel ensemble d’annonces et une nouvelle annonce dans cette campagne. Envoyez budget, targeting et bidAmount comme d’habitude : ils s’appliquent au nouvel ensemble d’annonces.
  • attachTo.adSetId : le boost crée uniquement l’annonce, dans cet ensemble d’annonces. Envoyez également attachTo.campaignId, la campagne à laquelle appartient l’ensemble d’annonces. Omettez budget, targeting et platformOptions.instagram.bidAmount : l’ensemble d’annonces conserve les siens. L’envoi de l’un d’eux renvoie une erreur 400 avec code: 101.
  • La campagne ou l’ensemble d’annonces doit se trouver dans le compte publicitaire indiqué par accountId et ne doit pas appartenir aux boosts d’un autre utilisateur. Sinon, la requête renvoie une erreur 400. Un boost Instagram ne peut pas non plus être rattaché à une campagne créée par un boost Facebook, et inversement.
  • attachTo ne peut pas être combiné avec budget.level: "campaign", specialAdCategories ou adSetBudgetSharingEnabled, qui sont définis sur une nouvelle campagne. Leur envoi renvoie code: 101.
  • Mettre en pause ou activer le boost ne modifie que ce que le boost a créé : l’annonce, ainsi que l’ensemble d’annonces lorsque le boost l’a créé. La campagne ou l’ensemble d’annonces que vous avez indiqué dans attachTo conserve son propre statut. L’annonce n’est diffusée que tant que la campagne et l’ensemble d’annonces dont elle dépend sont actifs. Cela s’applique aussi lorsqu’Ayrshare met vos annonces en pause, par exemple lorsqu’un profil est supprimé.
  • Si le boost échoue, la campagne ou l’ensemble d’annonces indiqué dans attachTo n’est jamais supprimé.
  • Si l’ensemble d’annonces auquel vous vous rattachez se trouve dans une campagne qui porte le budget (un budget de campagne), l’Historique présente le boost comme toute annonce avec un budget de campagne : budgetDaily affiche l’intégralité du budget de la campagne, et non la part du boost, et une fois un budget de campagne total épuisé, chaque annonce suivie par Ayrshare dans cette campagne affiche deliveryStatus: "COMPLETED" après la mise à jour nocturne suivante, y compris une annonce programmée ou en cours d’examen. Une annonce rejetée reste REJECTED.

Ouvrir une conversation au lieu d’un lien

Le bouton d’un boost peut ouvrir une conversation avec votre entreprise au lieu d’une page web. Envoyez la forme imbriquée avec callToAction.destination et omettez callToAction.link.
  • Utilisez l’objectif publicitaire engagement ou interactions. L’annonce est alors optimisée pour les conversations : Meta la montre aux personnes susceptibles de démarrer une conversation. Les autres objectifs renvoient une erreur 400 avec code: 101.
  • callToAction.type doit correspondre à la destination, comme indiqué dans le tableau. Toute casse est acceptée.
  • callToAction.link et callToAction.linkTitle ne peuvent pas être envoyés avec destination, car le bouton ouvre une conversation, et non une page. Sans destination, link reste obligatoire.
  • Les personnes envoient un message au compte associé à votre profil. Pour whatsapp, sa Facebook Page doit avoir un numéro WhatsApp Business connecté dans Meta.
  • destination ne peut pas être combiné avec attachTo.adSetId : l’ensemble d’annonces existant conserve la destination qu’il possède déjà. Avec attachTo.campaignId, la campagne doit avoir l’objectif Meta OUTCOME_ENGAGEMENT ; sinon, la requête renvoie une erreur 400 avec code: 101.
  • La réponse, ainsi que Get Boosted Ads, renvoient callToAction avec sa destination. Meta enregistre les mêmes paramètres pour les deux objectifs : un bouton de conversation sponsorisé avec interactions peut donc apparaître avec l’objectif engagement lorsque l’annonce est relue depuis Meta.