agenciafmd/laravel-fmd-adops

Integração com F&MD Adops

Maintainers

Package info

github.com/agenciafmd/laravel-fmd-adops

pkg:composer/agenciafmd/laravel-fmd-adops

Transparency log

Statistics

Installs: 28

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-07-24 16:58 UTC

This package is auto-updated.

Last update: 2026-07-24 17:04:15 UTC


README

Downloads Licença

  • 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.