No momento, o lance de app para celular está disponível somente para publishers selecionados.
A mediação interna não está disponível publicamente
No momento, os lances internos com o Audience Network estão na versão beta fechada e não estão disponíveis publicamente. Compartilharemos atualizações se isso mudar.
Como alternativa, você pode acessar os lances do Audience Network usando uma das nossas plataformas parceiras de mediação.
O Audience Network do Facebook é compatível com lances em sites e apps para celular. As integrações de lances em apps para celular podem ser do cliente móvel para nosso servidor ou do seu servidor para o nosso. Esta visão geral abordará os conceitos gerais dos lances de app.
Com os lances do app, os publishers podem realizar um leilão aberto e imparcial de inventários de anúncios oferecendo as mesmas oportunidades para diversas fontes de demanda em tempo real. As fontes de demanda têm a oportunidade de competir e vencer impressões quando oferecerem valor mais alto.
Os lances de app são oferecidos por meio de um ponto de extremidade que implementa o protocolo Open Real-Time Bidding (ORTB) para fornecer lances em oportunidades de impressão individuais. Nos lances de app, o SDK do Audience Network é necessário para realizar estas ações:
buyeruid
(chamado bidderToken
no SDK do Audience Network). Esse token é um campo obrigatório na solicitação de lance, sendo único por usuário e app (ou seja, ele não é válido para outro usuário ou app).adm
da resposta de lance para o SDK do Audience Network no dispositivo do usuário. O campo adm
não contém o anúncio real, mas sim informações que permitem ao SDK recuperar o anúncio no servidor do Audience Network.Ao realizar um leilão (a terceira etapa no fluxo de lances acima), ele pode ser hospedado no lado do cliente ou do servidor. Veja abaixo três tipos diferentes de integração:
Arquitetura de integração de servidor para servidor
Na integração de servidor para servidor, um servidor de leilão chama o ponto de extremidade de lances do Audience Network do Facebook e todas as outras fontes de demanda para obter respostas de lances. Depois, o servidor de leilão executa o leilão e escolhe o lance vencedor. O servidor de leilão pode ser um servidor interno executando uma lógica de leilão criada por você ou um servidor de terceiros integrado aos lances de aplicativo do Audience Network. Isso permite que você utilize os recursos do servidor e a rede disponível para chamar os pontos de extremidade de lances das fontes de demanda. Permite ainda que você faça alterações a essas integrações dos pontos de extremidade sem necessariamente precisar atualizar o cliente.
Integração de servidor de anúncios externo
A integração do servidor de anúncios externo permite conectar o mundo atual de mediação de waterfall com lances de aplicativo. Isso funciona por meio de uma integração de servidor para servidor com as fontes de demanda compatíveis com lances de aplicativo, depois a passagem do vencedor do leilão à plataforma de mediação de waterfall que executa o waterfall e seleciona a fonte de demanda com vitória geral. Essa integração deve ser uma ponte intermediária entre os mundos da mediação de waterfall e de lances de aplicativo. Com esse tipo de integração, você não precisa escrever sua própria lógica de leilão.
Nosso ponto de extremidade de lances é compatível com um subconjunto da versão 2.5 do protocolo OpenRTB.
Observação: veja um exemplo da solicitação completa em Configuração do servidor de leilão.
'id' => string, // platform's auction identifier, 'imp' => vec< // slots to bid on shape( 'id' => string, // platform's identifier for this slot auction // only for banner impression opportunities 'banner' => shape( 'w' => int, // width 'h' => int, // height ), // only for native impression opportunities 'native' => shape( 'w' => int, // width 'h' => int, // height ), // only for video impression opportunities 'video' => shape( 'w' => int, // width 'h' => int, // height 'linearity' => int, // 1 = instream, optional 'ext' => shape( 'videotype' => string, // 'rewarded' for Rewarded Video impression opportunities, optional ), ), 'tagid' => string, // Placement ID 'instl' => int, // interstitial flag, 1 = On, 0 = Off, optional ) >, // app details (in-app bidding only) 'app' => shape( 'publisher' => shape( 'id' => string, // publisher app ID ), ), 'device' => shape( 'ua' => string, // device user-agent 'ifa' => string, // ID sanctioned for advertiser use // Do not send ip or ipv6 if you are requesting bids from the client device. // For server-side bid requests set ip or ipv6. 'ip' => string, // device IPv4 'ipv6' => string, // device IPv6 'dnt' => int, // "do not track", 1 = On, 0 = Off, optional 'lmt' => int, // "limit ad tracking", 1 = On, 0 = Off ), 'regs' => shape( // regulations object 'coppa' => int, // US FTC regulations for Children's Online Privacy Protection Act, 1 = On, 0 = Off, optional ), 'user' => shape( 'buyeruid' => string, // Audience Network Identity Token, mandatory ), 'ext' => shape( 'platformid' => string, // Mediation partner Platform ID or publisher FB app ID, mandatory 'authentication_id' => string // Authentication token to validate the originator of the request ), 'at' => int, // auction type: 1 = First Price, 2 = Second Price 'tmax' => int, // auction timeout in milliseconds 'test' => int, // 0 = normal, 1 = test-mode (we bid $99.99, but don't pay out), optional
No momento, há quatro tipos de anúncios compatíveis que podem ser solicitados por meio de OpenRTB: em banner, nativo (nativo ou em banner nativo), de vídeo (com incentivo ou vídeo in-stream) e intersticial. Nota: os objetos de banner, nativo e vídeo se excluem mutuamente, mas um deles é necessário.
Veja aqui uma lista dos formatos de anúncio compatíveis na solicitação de lance:
Formato do anúncio | Parâmetros da solicitação de lance |
---|---|
Nativo |
|
Banner nativo |
|
Intersticial |
|
Vídeo com incentivo |
|
Banner - Altura: 50 |
|
Banner - Altura: 250 |
|
Vídeo In-stream |
|
A resposta de lance é válida por 30 minutos. É possível solicitar o anúncio a qualquer momento até 30 minutos depois de receber a resposta do lance. As impressões baseadas em um lance com mais de 30 minutos não serão pagas.
Observação: quando você solicitar um anúncio com resposta de lance, ele poderá ser armazenado em cache no cliente, mas precisa ser exibido até 60 minutos após o carregamento. As impressões baseadas em um anúncio armazenado em cache por mais de 60 minutos não serão pagas.
1 'id' => string // platform's request identifier 'seatbid' => vec< shape( 'bid' => vec< shape( 'id' => string, // Our identifier for this bid 'impid' => string, // platform's identifier for this slot auction 'price' => float, // Our bid price on CPM basis, in USD 'adm' => string, // Our creative - see Rendering The Ad 'nurl' => string, // URL to get if we win the impression 'lurl' => string, // URL to get if we lose the impression ) >, ), >, 'bidid' => string, // Our identifier for this response 'cur' => string, // bid currency: USD
Nós exigimos notificações de ganhos, perdas, passível de cobrança e tempo limite com os códigos de perda apropriados conforme definido no ORTB. O nurl, lurl e burl do ORTB são oferecidos na resposta do lance. Consulte a seção anterior para ver um exemplo de resposta de lance. Caso o lance atinja o tempo limite, ofereceremos uma rota de geração de relatórios alternativa.
O nurl de vitória será oferecido na resposta do lance. É necessário popular o preço de venda no nurl:
"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=0&clearing_price=${AUCTION_PRICE}"
${AUCTION_PRICE}
: Deve ser substituído pelo preço de venda do leilão na mesma unidade do lance (ou seja, em dólares ou CPM).Nossa lurl de perda contém dois sinalizadores que você deve preencher:
"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=${AUCTION_LOSS}&clearing_price=${AUCTION_PRICE}"
${AUCTION_LOSS}
: Deve ser substituído pelo código de perda do ORTB.${AUCTION_PRICE}
: Deve ser substituído pelo preço de venda do leilão na mesma unidade do lance (ou seja, em dólares ou CPM).Veja abaixo uma lista com diferentes códigos de perda e os motivos de perda correspondentes.
Motivo de perda | Descrição | Código de perda ORTB v2.5 |
---|---|---|
Resposta de lance inválida. | O lance é inválido (mas feito a tempo, não é um não lance e é válido o suficiente para extrair o nurl) | 3 |
Tempo limite do lance * | Resposta de lance recebida, mas não a tempo de interromper o leilão | 2 |
Não lance | Não lances são indicados como HTTP 204 (ou seja, sem nurl para chamar), mas você pode interpretar nossa resposta como um não lance (provavelmente um problema de integração). Você também pode solicitar lances para várias impressões, e nós faremos lances em alguns, mas não todos. | 9 |
Não é o licitante RTB mais alto | Outro licitante nos superou, incluindo lances sintéticos (como trocas não RTB) se inseridas no mesmo leilão. | 102 |
O inventário não se materializou | Nosso lance venceu o leilão, mas a impressão não se materializou (por exemplo, a página não era longa o bastante para incluir esse espaço, ou o usuário saiu do aplicativo antes que o anúncio armazenado em cache fosse usado). Nem todos os parceiros podem oferecer isso (é um não evento); por isso, o inferiremos caso ele não seja oferecido. | 4902 |
Enviado para o servidor de anúncios | Envie isso se o último ponto de contato com o processo de decisão estiver enviando nosso lance alto ao servidor de anúncios. A impressão poderá continuar perdida por meio da perda dos itens de linha, do servidor de anúncios se sobrepondo ao leilão ou do inventário não se materializando. | 4900 |
Vencedor do RTB não escolhido pelo servidor de anúncios | Vencemos o leilão do RTB, mas o servidor de anúncios se sobrepôs ao leilão (por exemplo, diretamente). | 4903 |
Vitória | Vencemos a árvore de decisão completa, e a tag foi posicionada na página (Web) ou o objeto de anúncio foi armazenado em ache (aplicativo). Ainda assim, a impressão visualizável pode não resultar. | 0 |
Nós exigimos uma notificação de passível de cobrança caso um retorno de chamada de impressão seja acionado no SDK do Audience Network. É necessário popular o preço de venda no burl:
"https://www.facebook.com/audiencenetwork/burl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=0&clearing_price=${AUCTION_PRICE}"
${AUCTION_PRICE}
: Deve ser substituído pelo preço de venda do leilão na mesma unidade do lance (ou seja, em dólares ou CPM).Caso o lance atinja o tempo limite, ofereceremos uma rota de geração de relatórios alternativa. No nurl genérico que pode ser chamado sem a necessidade de esperar pela chegada do lance. O formato é o seguinte:
"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&auction=${AUCTION_ID}&ortb_loss_code=2"
Nota:${PARTNER_FBID}
, ${APP_FBID}
e ${AUCTION_ID}
devem ser preenchidos com os valores adequados. A tabela abaixo oferece uma explicação sobre esses valores.
Parâmetro | Tipo | Descrição |
---|---|---|
PARTNER_FBID | Int | ID do servidor de leilão de anúncios emitido pelo Facebook. Use o ID do aplicativo aqui caso não tenha um parceiro dedicado de leilão de anúncios. |
APP_FBID | Int | ID emitido pelo Facebook do aplicativo ou da empresa que iniciou um leilão. |
AUCTION_ID | cadeia de caracteres | ID do leilão gerado pelo cliente que você usou para emitir uma solicitação de lance. |
Os preços são orçados em dólares americanos com base em CPM (por exemplo, 4,25 significa que pagaremos US$ 4,25 para cada 1.000 impressões se vencermos). A mesma unidade deve ser usada para o preço de venda em nurl e lurl. Os pagamentos são feitos diretamente ao publisher.
Sempre fazemos lances com base no primeiro preço, o que significa que pagamos o valor do lance e fazemos o lance supondo que pagaremos o valor total. Dessa forma, ficamos em desvantagem em leilões de segundo preço, nos quais outros licitantes podem fazer lances supondo que pagarão menos que o valor do lance.
Para impressões de apps, pagamos somente se a impressão for vista, independentemente de termos sido o maior lance.