Desde sgcWebSockets 2022.3.0 se admiten los mensajes patrocinados. Los mensajes patrocinados requieren Telegram 1.8.0+, por lo que las bibliotecas de Telegram se han actualizado para soportar esta funcionalidad.
Los mensajes patrocinados en Telegram se muestran en canales públicos uno-a-muchos grandes con 1000+ suscriptores y están limitados a 160 caracteres. Los mensajes patrocinados se basan únicamente en el tema de los canales públicos en los que se muestran.
Esto significa que no se recopilan ni analizan datos de usuario para mostrar anuncios, y todos los usuarios que vean un canal concreto en Telegram ven los mismos mensajes patrocinados.
Obtener mensajes patrocinados
Cada vez que el usuario abre un canal, hay que llamar a channels.getSponsoredMessages para recibir los mensajes patrocinados disponibles para ese canal. El resultado debe cachearse durante 5 minutos.
Mostrar mensajes patrocinados
Los mensajes patrocinados deben mostrarse por debajo de los demás posts del canal, después de que el usuario haya hecho scroll más allá del último mensaje. El canal o bot promocionado indicado en el campo from_id debe aparecer como autor del mensaje. El mensaje también debe contener uno de los siguientes botones en la parte inferior:
- View Bot — si se promociona un bot. Al pulsar el botón debe abrirse el chat con el bot. Si se indica
start_param, la app debe usar el mecanismo de deep linking para abrir el bot. - View Channel — si se promociona un canal. Al pulsar el botón debe abrirse el canal.
- View Post — si se promociona un canal y se indica
channel_post. Al pulsar el botón debe abrirse la publicación concreta del canal.
Ejemplo
A continuación encontrarás un ejemplo para solicitar y mostrar mensajes patrocinados utilizando la 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');
