Rýchly štart
Celý postup od začiatku do konca — zóna, reklama v nej, jej servírovanie, vykreslenie a započítanie:
use RoundlyConsulting\Advertisements\DataTransferObjects\AdvertisementData;
use RoundlyConsulting\Advertisements\DataTransferObjects\ImpressionData;
use RoundlyConsulting\Advertisements\Facades\Advertisements;
use RoundlyConsulting\Advertisements\Models\Placement;
// 1. A zone to serve ads in (once — e.g. in a seeder)
Placement::query()->create([
'name' => ['en' => 'Sidebar'],
'slug' => 'sidebar',
'width' => 300,
'height' => 250,
]);
// 2. Create, place and publish an ad
$ad = Advertisements::create(AdvertisementData::fromDecimal(
name: 'Vintage road bike',
amount: '250.00', // in default_currency (EUR)
author: $user, // any Eloquent model (polymorphic author)
));
Advertisements::for($ad)->placements()->attach(['sidebar']);
Advertisements::publish($ad); // → AdvertisementPublished
// 3. Serve it: one random active ad for the zone, rendered and counted
$ad = Advertisements::random('sidebar');
if ($ad !== null) {
echo $ad->renderCreative('sidebar'); // <img> creative, or the text-ad fallback
Advertisements::for($ad)->track('sidebar')->impression(new ImpressionData(ip: request()->ip()));
}renderCreative() vracia HtmlString, takže {{ $ad->renderCreative('sidebar') }} ju v Blade vypíše bez dvojitého escapovania. Bez nahratého obrázka vykreslí textovú reklamu: názov, popis a cenu.
Všetky volania vyššie idú cez fasádu Advertisements — jej celé API nájdete v sekcii Fasáda Advertisements, injektovanie manažéra a priame volanie akcií v sekcii DI a akcie.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.