Partager via


Gérer les lignes de livraison

Utilisez ces méthodes dans l’API de promotions du Microsoft Store pour créer une ou plusieurs lignes de livraison pour acheter l’inventaire et distribuer vos publicités pour une campagne publicitaire promotionnelle. Pour chaque ligne de livraison, vous pouvez définir le ciblage, définir le prix de votre offre et déterminer le montant que vous souhaitez dépenser en définissant un budget et en liant les créations que vous souhaitez utiliser.

Pour plus d’informations sur la relation entre les lignes de distribution et les campagnes publicitaires, les profils de ciblage et les créatifs, consultez Exécuter des campagnes publicitaires à l’aide des services du Microsoft Store.

Notez avant de pouvoir créer des lignes de remise pour les campagnes publicitaires à l’aide de cette API, vous devez d’abord créer une campagne publicitaire payante à l’aide de la page Campagnes publicitaires dans l’Espace partenaires, et vous devez ajouter au moins un instrument de paiement sur cette page. Une fois cette opération effectuée, vous serez en mesure de créer des lignes de remise facturables pour les campagnes publicitaires à l’aide de cette API. Les campagnes publicitaires que vous créez à l’aide de l’API facturent automatiquement l’instrument de paiement par défaut choisi dans la page Campagnes publicitaires dans l’Espace partenaires.

Prérequis

Pour utiliser ces méthodes, vous devez d’abord effectuer les opérations suivantes :

  • Si ce n’est pas déjà fait, remplissez toutes les conditions préalables relatives à l’API d’analyse du Windows Store.

    Remarque

    Dans le cadre des conditions préalables, veillez à créer au moins une campagne publicitaire payante dans l’Espace partenaires et à ajouter au moins un instrument de paiement pour la campagne publicitaire dans l’Espace partenaires. Les lignes de remise que vous créez à l’aide de cette API facturent automatiquement l’instrument de paiement par défaut choisi dans la page Campagnes publicitaires dans l’Espace partenaires.

  • Obtenir un jeton d’accès Azure AD à utiliser dans l’en-tête de requête pour ces méthodes. Une fois que vous avez récupéré le jeton d’accès, vous avez 60 minutes pour l’utiliser avant qu’il n’expire. Une fois le jeton expiré, vous pouvez en obtenir un nouveau.

Demande

Ces méthodes ont les URI suivants.

Type de méthode URI de requête Description
POST https://manage.devcenter.microsoft.com/v1.0/my/promotion/line Crée une ligne de livraison.
PUT https://manage.devcenter.microsoft.com/v1.0/my/promotion/line/{lineId} Modifie la ligne de remise spécifiée par lineId.
GET https://manage.devcenter.microsoft.com/v1.0/my/promotion/line/{lineId} Obtient la ligne de remise spécifiée par lineId.
En-tête Type Description
Autorisation string Obligatoire. Jeton d’accès Azure AD au format porteur<jeton>.
ID de suivi GUID Facultatif. ID qui effectue le suivi du flux d’appels.

Corps de la demande

Les méthodes POST et PUT nécessitent un corps de requête JSON avec les champs requis d’un objet de ligne de remise et tous les champs supplémentaires que vous souhaitez définir ou modifier.

Exemples de requête

L’exemple suivant montre comment appeler la méthode POST pour créer une ligne de remise.

POST https://manage.devcenter.microsoft.com/v1.0/my/promotion/line HTTP/1.1
Authorization: Bearer <your access token>

{
    "name": "Contoso App Campaign - Paid Line",
    "configuredStatus": "Active",
    "startDateTime": "2017-01-19T12:09:34Z",
    "endDateTime": "2017-01-31T23:59:59Z",
    "bidAmount": 0.4,
    "dailyBudget": 20,
    "targetProfileId": {
        "id": 310021746
    },
    "creatives": [
        {
            "id": 106851
        }
    ],
    "campaignId": 31043481,
    "minMinutesPerImp ": 1
}

L’exemple suivant montre comment appeler la méthode GET pour récupérer une ligne de remise.

GET https://manage.devcenter.microsoft.com/v1.0/my/promotion/line/31019990  HTTP/1.1
Authorization: Bearer <your access token>

Response

Ces méthodes retournent un corps de réponse JSON avec un objet de ligne de remise qui contient des informations sur la ligne de remise créée, mise à jour ou récupérée. L’exemple suivant illustre un corps de réponse pour ces méthodes.

{
    "Data": {
        "id": 31043476,
        "name": "Contoso App Campaign - Paid Line",
        "configuredStatus": "Active",
        "effectiveStatus": "Active",
        "effectiveStatusReasons": [
            "{\"ValidationStatusReasons\":null}"
        ],
        "startDateTime": "2017-01-19T12:09:34Z",
        "endDateTime": "2017-01-31T23:59:59Z",
        "createdDateTime": "2017-01-17T10:28:34Z",
        "bidType": "CPM",
        "bidAmount": 0.4,
        "dailyBudget": 20,
        "targetProfileId": {
            "id": 310021746
        },
        "creatives": [
            {
                "id": 106126
            }
        ],
        "campaignId": 31043481,
        "minMinutesPerImp ": 1,
        "pacingType ": "SpendEvenly",
        "currencyId ": 732
    }
}

Objet de ligne de remise

Les corps de requête et de réponse pour ces méthodes contiennent les champs suivants. Ce tableau indique les champs en lecture seule (ce qui signifie qu’ils ne peuvent pas être modifiés dans la méthode PUT) et quels champs sont requis dans le corps de la requête pour les méthodes POST ou PUT.

Champ Type Description Lecture seule Par défaut Obligatoire pour POST/PUT
id entier ID de la ligne de livraison. Oui Non
nom chaîne Nom de la ligne de livraison. Non POST
configureStatus string Une des valeurs suivantes qui spécifie l’état de la ligne de remise spécifiée par le développeur :
  • Actif
  • Inactif
Non POST
effectiveStatus string Une des valeurs suivantes qui spécifie l’état effectif de la ligne de remise en fonction de la validation du système :
  • Actif
  • Inactif
  • Processing
  • Échec
Oui Non
effectiveStatusReasons tableau Une ou plusieurs des valeurs suivantes qui spécifient la raison de l’état effectif de la ligne de livraison :
  • AdCreativesInactive
  • Échec de la validation
Oui Non
startDatetime string Date et heure de début de la ligne de livraison, au format ISO 8601. Cette valeur ne peut pas être modifiée si elle est déjà dans le passé. Non POST, PUT
endDatetime string Date et heure de fin de la ligne de livraison, au format ISO 8601. Cette valeur ne peut pas être modifiée si elle est déjà dans le passé. Non POST, PUT
createdDatetime string Date et heure de création de la ligne de remise au format ISO 8601. Oui Non
bidType string Valeur qui spécifie le type d’offre de la ligne de livraison. Actuellement, la seule valeur prise en charge est CPM. Non CPM Non
bidAmount decimal Montant de l’offre à utiliser pour l’enchère de toute demande publicitaire. Non Valeur CPM moyenne basée sur les marchés cibles (cette valeur est révisée régulièrement). Non
dailyBudget decimal Budget quotidien de la ligne de livraison. DailyBudget ou lifetimeBudget doit être défini. Non POST, PUT (si lifetimeBudget n’est pas défini)
lifetimeBudget decimal Budget de durée de vie de la ligne de livraison. LifetimeBudget* ou dailyBudget doit être défini. Non POST, PUT (si dailyBudget n’est pas défini)
targetingProfileId object Sur l’objet qui identifie le profil de ciblage qui décrit les utilisateurs, les zones géographiques et les types d’inventaire que vous souhaitez cibler pour cette ligne de livraison. Cet objet se compose d’un champ d’ID unique qui spécifie l’ID du profil de ciblage. Non Non
créatifs tableau Un ou plusieurs objets qui représentent les créations associées à la ligne de livraison. Chaque objet de ce champ se compose d’un seul champ d’ID qui spécifie l’ID d’un objet créatif. Non Non
campaignId entier ID de la campagne de publicité parente. Non Non
minMinutesPerImp entier Spécifie l’intervalle de temps minimal (en minutes) entre deux impressions affichées au même utilisateur à partir de cette ligne de remise. Non 4000 Non
pacingType string Une des valeurs suivantes qui spécifient le type de rythme :
  • SpendEvenly
  • SpendAsFastAsPossible
Non SpendEvenly Non
currencyId entier ID de la devise de la campagne. Oui Devise du compte de développeur (vous n’avez pas besoin de spécifier ce champ dans les appels POST ou PUT) Non