agenciafmd / laravel-fmd-adops
Integração com F&MD Adops
Requires
- laravel/framework: ^11.0|^12.0
This package is auto-updated.
Last update: 2026-07-24 17:04:15 UTC
README
- Envia as conversões para o Webhook da F&MD Adops
Instalação
sail composer require agenciafmd/laravel-fmd-adops:dev-master
Configuração
Primeiro, vamos solicitar a url do Webhook ao time de Adops.
Colocamos esta url no nosso .env
FMD_ADOPS_WEBHOOK=https://adops.fmd.digital/api/webhooks/generic/xxxxxxx FMD_ADOPS_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Uso
Envie os campos no formato de array para o SendConversionsToFmdAdopsWebhook.
Para que o processo funcione pelos jobs, é preciso passar os valores dos cookies conforme mostrado abaixo.
use Agenciafmd\FmdAdops\Jobs\SendConversionsToFmdAdopsWebhook; use Illuminate\Support\Facades\Cookie; $data['email'] = 'irineu@fmd.ag'; $data['nome'] = 'Irineu Junior'; SendConversionsToFmdAdopsWebhook::dispatch($data + [ 'identificador' => 'seja-um-parceiro', 'utm_campaign' => Cookie::get('utm_campaign', ''), 'utm_content' => Cookie::get('utm_content', ''), 'utm_medium' => Cookie::get('utm_medium', ''), 'utm_source' => Cookie::get('utm_source', ''), 'utm_term' => Cookie::get('utm_term', ''), 'gclid_' => Cookie::get('gclid', ''), 'cid' => Cookie::get('cid', ''), ]) ->delay(5) ->onQueue('low');
Note que no nosso exemplo, enviamos o job para a fila low.
Certifique-se de estar rodando no seu queue:work esteja semelhante ao abaixo.
php artisan queue:work --tries=3 --delay=5 --timeout=60 --queue=high,default,low
Uso em página HTML (JavaScript)
Caso precise enviar a conversão direto de uma página HTML, sem passar pelo Laravel, existe uma versão em JavaScript com o mesmo contrato do job, disponível em js/fmd-adops.js.
Inclua o script na página e informe a URL do Webhook e o secret na hora de enviar.
<script src="js/fmd-adops.js"></script>
<form id="form-conversao"> <label>Email <input type="email" name="email" required /></label><br /> <label>Nome <input type="text" name="nome" required /></label><br /> <button type="submit">Enviar</button> </form> <script src="js/fmd-adops.js"></script> <script> const FMD_ADOPS_WEBHOOK = 'https://adops.fmd.digital/api/webhooks/generic/xxxxxxx'; const FMD_ADOPS_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; document.getElementById('form-conversao').addEventListener('submit', async function (event) { event.preventDefault(); const formData = new FormData(event.target); const data = { email: formData.get('email'), nome: formData.get('nome'), identificador: 'seja-um-parceiro', ...FmdAdops.collectUtmCookies(), }; try { await FmdAdops.send(data, { webhook: FMD_ADOPS_WEBHOOK, secret: FMD_ADOPS_SECRET, delay: 5000, onError: (error) => { alert('Não foi possível enviar sua conversão. Tente novamente mais tarde.'); }, }); alert('Conversão enviada com sucesso!'); } catch (error) { // já tratado em onError; aqui só evita o "Uncaught (in promise)" } }); </script>
Note que, assim como no job, o envio tenta novamente em caso de falha (5 tentativas, com 60 segundos de intervalo).
Atenção: aqui o secret fica visível no código-fonte da página, já que a assinatura é feita no navegador. Use esse método apenas quando essa exposição for aceitável para o seu caso — caso contrário, prefira o job PHP mostrado acima.