Executar campanhas publicitárias usando os serviços da Store
Use a API de promoções da Microsoft Store para gerenciar programaticamente campanhas publicitárias promocionais para aplicativos registrados em sua conta do Partner Center ou da sua organização. Essa API permite que você crie, atualize e monitore suas campanhas e outros recursos relacionados, como segmentação e criativos. Essa API é especialmente útil para desenvolvedores que criam grandes volumes de campanhas e que desejam fazer isso sem usar o Partner Center. Essa API usa o Azure Active Directory (Azure AD) para autenticar as chamadas do aplicativo ou serviço.
As etapas a seguir descrevem o processo completo:
- Certifique-se de ter concluído todos os pré-requisitos.
- Antes de chamar um método na API de promoções da Microsoft Store, obtenha um token de acesso do Azure AD. Depois de obter um token, você tem 60 minutos para usá-lo em chamadas para a API de promoções da Microsoft Store antes que o token expire. Depois que o token expirar, será possível gerar um novo.
- Chame a API de promoções da Microsoft Store.
Como alternativa, você pode criar e gerenciar campanhas publicitárias usando o Partner Center, e todas as campanhas publicitárias criadas programaticamente por meio da API de promoções da Microsoft Store também podem ser acessadas no Partner Center. Para obter mais informações sobre como gerenciar campanhas publicitárias no Partner Center, consulte Criar uma campanha publicitária para seu aplicativo.
Observação
Qualquer desenvolvedor com uma conta do Partner Center pode usar a API de promoções da Microsoft Store para gerenciar campanhas publicitárias para seus aplicativos. As agências de mídia também podem solicitar acesso a essa API para executar campanhas publicitárias em nome de seus anunciantes. Se você é uma agência de mídia que deseja saber mais sobre essa API ou solicitar acesso a ela, envie sua solicitação para storepromotionsapi@microsoft.com.
Etapa 1: Concluir os pré-requisitos para usar a API de promoções da Microsoft Store
Antes de começar a escrever código para chamar a API de promoções da Microsoft Store, verifique se você concluiu os pré-requisitos a seguir.
Antes de criar e iniciar com êxito uma campanha publicitária usando essa API, você deve primeiro criar uma campanha publicitária paga usando a página Campanhas publicitárias no Partner Center e adicionar pelo menos um instrumento de pagamento nessa página. Depois de fazer isso, você poderá criar com êxito linhas de entrega faturáveis para campanhas publicitárias usando essa API. As linhas de entrega para campanhas publicitárias criadas usando essa API cobrarão automaticamente o instrumento de pagamento padrão escolhido na página Campanhas publicitárias no Partner Center.
Você (ou sua organização) deve ter um diretório do Azure AD e você deve ter permissão de Administrador global para o diretório. Se já usa o Microsoft 365 ou outros serviços empresariais da Microsoft, você já tem o diretório do Azure AD. Caso contrário, crie um Azure AD na Central de Parceiros sem custo adicional.
Você deve associar um aplicativo do Azure AD à sua conta do Partner Center, recuperar a ID do locatário e a ID do cliente para o aplicativo e gerar uma chave. O aplicativo Azure AD representa o aplicativo ou serviço do qual você deseja chamar a API de promoções da Microsoft Store. Você precisa da ID do locatário, da ID do cliente e da chave para obter um token de acesso do Azure AD que é passado para a API.
Observação
É necessário executar essa tarefa apenas uma vez. Depois de obter a ID do locatário, a ID do cliente e a chave, você poderá reutilizá-las sempre que precisar criar um novo token de acesso do Azure AD.
Para associar um aplicativo do Azure AD à sua conta do Partner Center e recuperar os valores necessários:
Na Central de Parceiros, associe a conta da Central de Parceiros da sua organização ao diretório do Azure AD da sua organização.
Em seguida, na página Usuários na seção Configurações da conta do Partner Center, adicione o aplicativo Azure AD que representa o aplicativo ou serviço que você usará para gerenciar campanhas de promoção para sua conta do Partner Center. Lembre-se de atribuir esse aplicativo à função de Gerenciador. Se o aplicativo ainda não existir no diretório do Azure AD, crie um novo aplicativo do Azure AD na Central de Parceiros.
Retorne à página Usuários, clique no nome do seu aplicativo do Azure AD para acessar as configurações do aplicativo e copie os valores de ID do Locatário e ID do Cliente.
Clique em Adicionar nova chave. Na tela a seguir, copie o valor da Chave. Você não poderá acessar essas informações novamente depois de sair da página. Para saber mais, veja Gerenciar chaves de um aplicativo do Azure AD.
Etapa 2: obter um token de acesso do Azure AD
Antes de chamar qualquer um dos métodos na API de promoções da Microsoft Store, você deve primeiro obter um token de acesso do Azure AD que você passa para o cabeçalho Authorization de cada método na API. Após obter um token de acesso, você tem 60 minutos para usá-lo antes dele expirar. Depois de expirar, é possível renovar o token para que você possa continuar a usá-lo em chamadas futuras para a API.
Para obter o token de acesso, siga as instruções em Chamadas de Serviço para Serviço Usando Credenciais do Cliente para enviar um HTTP POST para o ponto de extremidade https://login.microsoftonline.com/<tenant_id>/oauth2/token
. Confira a seguir um exemplo de solicitação.
POST https://login.microsoftonline.com/<tenant_id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
grant_type=client_credentials
&client_id=<your_client_id>
&client_secret=<your_client_secret>
&resource=https://manage.devcenter.microsoft.com
Para o valor tenant_id no POST URI e nos parâmetros client_id e client_secret, especifique a ID do locatário, a ID do cliente e a chave para o aplicativo recuperado do Partner Center na seção anterior. Para o parâmetro resource, especifique https://manage.devcenter.microsoft.com
.
Depois que seu token de acesso expirar, você poderá atualizá-lo seguindo as instruções aqui.
Etapa 3: Chamar a API de promoções da Microsoft Store
Depois de ter um token de acesso do Azure AD, você estará pronto para chamar a API de promoções da Microsoft Store. Você deve passar o token de acesso para o cabeçalho Authorization de cada método.
No contexto da API de promoções da Microsoft Store, uma campanha publicitária consiste em um objeto de campanha que contém informações de alto nível sobre a campanha e objetos adicionais que representam as linhas de entrega, perfis de segmentação e criativos da campanha publicitária. A API inclui diferentes conjuntos de métodos que são agrupados por esses tipos de objeto. Para criar uma campanha, você normalmente chama um método POST diferente para cada um desses objetos. A API também fornece métodos GET que você pode usar para recuperar qualquer objeto e métodos PUT que podem ser usados para editar objetos de campanha, linha de entrega e perfil de segmentação.
Para obter mais informações sobre esses objetos e seus métodos relacionados, consulte a tabela a seguir.
Objeto | Descrição |
---|---|
Campanhas | Esse objeto representa a campanha publicitária e fica na parte superior da hierarquia do modelo de objeto para campanhas publicitárias. Esse objeto identifica o tipo de campanha que você está executando (paga, doméstica ou comunitária), o objetivo da campanha, as linhas de entrega da campanha e outros detalhes. Cada campanha pode ser associada a apenas um aplicativo. Para obter mais informações sobre os métodos relacionados a esse objeto, consulte Gerenciar campanhas publicitárias. Observação Depois de criar uma campanha publicitária, você pode recuperar dados de desempenho da campanha usando o método Obter dados de desempenho da campanha publicitária na API de análise da Microsoft Store. |
Linhas de entrega | Cada campanha tem uma ou mais linhas de entrega que são usadas para comprar inventário e exibir seus anúncios. Para cada linha de exibição, você pode definir a segmentação, definir o preço do lance e decidir quanto deseja gastar definindo um orçamento e vinculando aos criativos que deseja usar. Para obter mais informações sobre os métodos relacionados a esse objeto, consulte Gerenciar linhas de entrega para campanhas publicitárias. |
Perfis de segmentação | Cada linha de entrega tem um perfil de segmentação que especifica os usuários, as regiões geográficas e os tipos de inventário que você deseja segmentar. Os perfis de segmentação podem ser criados como um modelo e compartilhados entre as linhas de exibição. Para obter mais informações sobre os métodos relacionados a esse objeto, consulte Gerenciar perfis de segmentação para campanhas publicitárias. |
Criativos | Cada linha de entrega tem um ou mais criativos que representam os anúncios exibidos aos clientes como parte da campanha. Um criativo pode ser associado a uma ou mais linhas de exibição, mesmo em campanhas publicitárias, desde que sempre represente o mesmo aplicativo. Para obter mais informações sobre os métodos relacionados a esse objeto, consulte Gerenciar criativos para campanhas publicitárias. |
O diagrama a seguir ilustra a relação entre campanhas, linhas de exibição, perfis de segmentação e criativos.
Exemplo de código
O exemplo de código a seguir demonstra como obter um token de acesso do Azure AD e chamar a API de promoções da Microsoft Store de um aplicativo de console C#. Para usar este exemplo de código, atribua as variáveis tenantId, clientId, clientSecret e appID aos valores apropriados para seu cenário. Este exemplo requer o pacote Json.NET da Newtonsoft para desserializar os dados JSON retornados pela API de promoções da Microsoft Store.
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
namespace TestPromotionsAPI
{
class Program
{
static void Main(string[] args)
{
string tenantId = "<your tenant ID>";
string clientId = "<your client ID>";
string clientSecret = "<your secret>";
string scope = "https://manage.devcenter.microsoft.com";
// Retrieve an Azure AD access token
string accessToken = GetClientCredentialAccessToken(
tenantId,
clientId,
clientSecret,
scope).Result;
int pageSize = 100;
int startPageIndex = 0;
// This is your app's Store ID. This ID is available on
// the App identity page of the Dev Center dashboard.
string appID = "<your app's Store ID>";
// Call the Windows Store promotions API
CallPromotionsAPI(accessToken, appID, pageSize, startPageIndex);
Console.Read();
}
private static void CallPromotionsAPI(string accessToken, string appID, int fetch, int skip)
{
string requestURI;
// Get ad campaigns.
requestURI = string.Format(
"https://manage.devcenter.microsoft.com/v1.0/my/promotion/campaign?applicationId={0}&fetch={1}&skip={2}&campaignSetSortColumn=createdDateTime",
appID, fetch, skip);
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, requestURI);
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
WebRequestHandler handler = new WebRequestHandler();
HttpClient httpClient = new HttpClient(handler);
HttpResponseMessage response = httpClient.SendAsync(requestMessage).Result;
Console.WriteLine(response);
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
response.Dispose();
}
public static async Task<string> GetClientCredentialAccessToken(string tenantId, string clientId, string clientSecret, string scope)
{
string tokenEndpointFormat = "https://login.microsoftonline.com/{0}/oauth2/token";
string tokenEndpoint = string.Format(tokenEndpointFormat, tenantId);
dynamic result;
using (HttpClient client = new HttpClient())
{
string tokenUrl = tokenEndpoint;
using (
HttpRequestMessage request = new HttpRequestMessage(
HttpMethod.Post,
tokenUrl))
{
string content =
string.Format(
"grant_type=client_credentials&client_id={0}&client_secret={1}&resource={2}",
clientId,
clientSecret,
scope);
request.Content = new StringContent(content, Encoding.UTF8, "application/x-www-form-urlencoded");
using (HttpResponseMessage response = await client.SendAsync(request))
{
string responseContent = await response.Content.ReadAsStringAsync();
result = JsonConvert.DeserializeObject(responseContent);
}
}
}
return result.access_token;
}
}
}
Tópicos relacionados
- Gerenciar campanhas publicitárias
- Gerenciar linhas de entrega para campanhas publicitárias
- Gerenciar perfis de segmentação para campanhas publicitárias
- Gerenciar criativos para campanhas publicitárias
- Obter dados de desempenho da campanha publicitária