use ElectricTomCat\GoogleAdsConversions\Jobs\UploadPendingConversions;
use Illuminate\Support\Facades\Schedule;
Schedule::job(new UploadPendingConversions)->hourly();
use ElectricTomCat\GoogleAdsConversions\Facades\GoogleAdsConversions;
GoogleAdsConversions::record('Quote Form', 100);
GoogleAdsConversions::record(
eventName: 'Quote Form',
value: 100.0, // optional — falls back to per-event config
currency: 'USD', // optional — falls back to per-event then package default
gclid: null, // optional — manually override the GCLID lookup
);
'events' => [
// Simple: event name → Google Ads action name (or full resource path)
'Quote Form' => 'Quote Submission',
'Phone Call' => 'customers/1234567890/conversionActions/111111',
// With per-event default value/currency that the call site can still override
'Demo Booked' => [
'action' => 'Demo Booked',
'value' => 250.00,
'currency' => 'USD',
],
// Catches any event named "Page Navigation: /anything" by prefix
'Page Navigation' => 'Page Navigation',
],
use ElectricTomCat\GoogleAdsConversions\Contracts\HasConversions;
use ElectricTomCat\GoogleAdsConversions\Models\Concerns\HasConversionsTrait;
use Illuminate\Database\Eloquent\Casts\AsCollection;
class Visitor extends Model implements HasConversions
{
use HasConversionsTrait;
protected $fillable = ['gclid', 'visitor_id', 'conversions', /* ... */];
protected $casts = [
'conversions' => AsCollection::class,
];
}