A partir do sgcWebSockets 2022.3.0, as Mensagens Patrocinadas são suportadas. As Mensagens Patrocinadas requerem o Telegram 1.8.0+, portanto as bibliotecas do Telegram foram atualizadas para suportar este recurso.
As mensagens patrocinadas no Telegram são exibidas em grandes canais públicos um-para-muitos com mais de 1000 assinantes e são limitadas a 160 caracteres. As Mensagens Patrocinadas são baseadas exclusivamente no tópico dos canais públicos em que são exibidas.
Isso significa que nenhum dado do usuário é coletado ou analisado para exibir anúncios, e todos os usuários que visualizam um canal específico no Telegram veem as mesmas mensagens patrocinadas.
Obtendo mensagens patrocinadas
Cada vez que o usuário abre um canal, channels.getSponsoredMessages deve ser chamado para receber as mensagens patrocinadas disponíveis para esse canal. O resultado deve ser armazenado em cache por 5 minutos.
Exibindo mensagens patrocinadas
As mensagens patrocinadas devem ser exibidas abaixo de todas as outras publicações no canal, após o usuário rolar mais para baixo, passando da última mensagem. O canal ou bot promovido especificado no campo from_id deve ser exibido como autor da mensagem. A mensagem também deve conter um dos seguintes botões na parte inferior:
- Ver Bot — se um bot estiver sendo promovido. Tocar no botão deve abrir o chat com o bot. Se
start_paramfor especificado, o aplicativo deve usar o mecanismo de deep linking para abrir o bot. - Ver Canal — se um canal estiver sendo promovido. Tocar no botão deve abrir o canal.
- Ver Publicação — se um canal estiver sendo promovido e
channel_postfor especificado. Tocar no botão deve abrir a publicação específica do canal.
Exemplo
Veja abaixo um exemplo para solicitar e exibir Mensagens Patrocinadas usando a biblioteca sgcWebSockets.
//Send a request to the channel asking if there are sponsored messages available, just call the method GetChatSponsoredMessage.
oTelegram := TsgcTDLib_Telegram.Create(nil);
oTelegram.Telegram.API.ApiHash := 'ABCDEFGHIJKLMN';
oTelegram.Telegram.API.ApiId := '1234';
oTelegram.PhoneNumber := '008745744155';
oTelegram.Active := true;
oTelegram.getChatSponsoredMessage('100');
//If the chat has sponsored messages, the event OnMessageSponsored is called with the content of the Sponsored message.
//If there are no messages, a 404 error is returned.
procedure(Sender: TObject; MessageSponsored: TsgcTelegramMessageSponsored);
begin
DoLog(MessageSponsored.Text);
end;
//Call the method ViewMethod after the Sponsored Messages has been shown to the user.
oTelegram.ViewMessage('100', '54653256245');
