NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Balík funguje bez akejkoľvek konfigurácie. Publikovaný config/advertisements.php bez úvodných komentárov:

return [
    // Eloquent models the package resolves — override with your own subclasses.
    'model' => RoundlyConsulting\Advertisements\Models\Advertisement::class,

    // Key type of the polymorphic author column: 'bigint', 'uuid' or 'ulid'.
    'key_type' => env('ADVERTISEMENTS_KEY_TYPE', 'bigint'),

    'placement_model' => RoundlyConsulting\Advertisements\Models\Placement::class,
    'category_model' => RoundlyConsulting\Advertisements\Models\Category::class,
    'event_model' => RoundlyConsulting\Advertisements\Models\AdvertisementEvent::class,

    // Impression / click recording — inline, or buffered to the queue.
    'tracking' => [
        'buffered' => env('ADVERTISEMENTS_TRACKING_BUFFERED', false),
        'queue' => env('ADVERTISEMENTS_TRACKING_QUEUE'),
        'connection' => env('ADVERTISEMENTS_TRACKING_CONNECTION'),
    ],

    // Locale used when the active locale has no translation for an attribute.
    'fallback_locale' => env('ADVERTISEMENTS_FALLBACK_LOCALE', config('app.fallback_locale', 'en')),

    // Slugs (sluggable): keep retired advertisement slugs and 301 them to the current one.
    'slugs' => [
        'history' => env('ADVERTISEMENTS_SLUG_HISTORY', false),
    ],

    // Currency used by AdvertisementData::fromMinor() / ::fromDecimal() when none is given.
    'default_currency' => env('ADVERTISEMENTS_CURRENCY', 'EUR'),

    // Register the global Advertisements facade alias.
    'register_facade_alias' => env('ADVERTISEMENTS_FACADE_ALIAS', true),

    // Visual creatives (media-library): one single-file bucket per placement named
    // "{creative_bucket_prefix}:{placement-slug}" plus a generic "{fallback_bucket}".
    'media' => [
        'creative_bucket_prefix' => 'creative',
        'fallback_bucket' => 'creative',
        'disk' => env('ADVERTISEMENTS_MEDIA_DISK'), // null = media-library default
        'responsive_widths' => null,                // null = media-library default ladder
        'display_variant' => 'display',
        'use_fallback_bucket' => true,
        'text_ad_view' => 'advertisements::text-ad',
    ],

    // Geo-targeting & geo reporting (geolocation).
    'geo' => [
        'targeting_enabled' => env('ADVERTISEMENTS_GEO_TARGETING', true),
        'untargeted_match' => true,                 // ads with no targeting match every viewer
        'match_when_unknown' => 'untargeted_only',  // unknown viewer / unknown fact: 'untargeted_only' | 'all'
        'stamp_events' => env('ADVERTISEMENTS_GEO_STAMP', true),
    ],
];

Všetky kľúče

KľúčPredvolenéEnvÚčel
modelAdvertisement::class—Model reklamy: trieda z balíka alebo jej podtrieda — čokoľvek iné vyhodí InvalidConfigurationException.
key_typebigintADVERTISEMENTS_KEY_TYPETyp kľúča polymorfného stĺpca autora: bigint, uuid alebo ulid (iná hodnota vyhodí InvalidConfigurationException). Číta sa pri migrácii; všetky modely autorov ho musia mať rovnaký.
placement_modelPlacement::class—Model umiestnenia (zóny).
category_modelCategory::class—Model kategórie.
event_modelAdvertisementEvent::class—Model udalosti zobrazenia alebo kliku.
tracking.bufferedfalseADVERTISEMENTS_TRACKING_BUFFEREDZápis zobrazení a klikov odošle do fronty namiesto priameho zápisu.
tracking.queuenullADVERTISEMENTS_TRACKING_QUEUEFronta pre odložený zápis (null alebo prázdna = predvolená).
tracking.connectionnullADVERTISEMENTS_TRACKING_CONNECTIONSpojenie fronty pre odložený zápis (null alebo prázdne = predvolené).
fallback_localeapp.fallback_localeADVERTISEMENTS_FALLBACK_LOCALEZáložný jazyk prekladov a route bindingu a jazyk, z ktorého sa generujú slugy umiestnení a kategórií. Nenastavená hodnota (null alebo prázdna) znamená žiadny záložný jazyk prekladov a slugy použijú en.
slugs.historyfalseADVERTISEMENTS_SLUG_HISTORYPamätá si staré slugy reklám a presmeruje ich (301) na aktuálny. Vyžaduje migráciu balíka sluggable.
default_currencyEURADVERTISEMENTS_CURRENCYMena pre AdvertisementData::fromMinor() / fromDecimal(), ak nie je zadaná; musí byť registrovaná v money-for-laravel.
register_facade_aliastrueADVERTISEMENTS_FACADE_ALIASZaregistruje globálny alias Advertisements; false ho vypne.
media.creative_bucket_prefixcreative—Prefix názvu skupiny pre umiestnenie ({prefix}:{slug}).
media.fallback_bucketcreative—Všeobecná skupina kreatív bez rozmerov, skúša sa pred textovou reklamou.
media.disknullADVERTISEMENTS_MEDIA_DISKDisk pre kreatívy (null alebo prázdny = predvolený disk media-library).
media.responsive_widthsnull—Rebrík responzívnych šírok (null = predvolený v media-library). Každá šírka musí byť kladné celé číslo; chybná či prázdna položka vyhodí výnimku, nevynechá sa.
media.display_variantdisplay—Názov variantu prispôsobeného rozmerom umiestnenia.
media.use_fallback_buckettrue—Pred textovou reklamou skúsi všeobecnú skupinu kreatív.
media.text_ad_viewadvertisements::text-ad—Blade view, ktorý vykreslí záložnú textovú reklamu.
geo.targeting_enabledtrueADVERTISEMENTS_GEO_TARGETINGUplatní geografické cielenie v targetedIn().
geo.untargeted_matchtrue—Reklamy bez cielenia sa zobrazia každému divákovi.
geo.match_when_unknownuntargeted_only—Čo dostane neznámy divák — untargeted_only alebo all — a či pravidlo, pre ktoré divákovi chýba krajina alebo súradnice, neplatí alebo platí. Iná hodnota (ALL, everything) vyhodí InvalidConfigurationException so zoznamom oboch.
geo.stamp_eventstrueADVERTISEMENTS_GEO_STAMPK zaznamenaným udalostiam uloží krajinu diváka (+ región, mesto, súradnice).

Prostredie (env)

Jedenásť kľúčov sa riadi cez env, takže konfiguráciu zvyčajne vôbec nemusíte publikovať:

ADVERTISEMENTS_CURRENCY=EUR
ADVERTISEMENTS_FALLBACK_LOCALE=en
ADVERTISEMENTS_KEY_TYPE=bigint
ADVERTISEMENTS_SLUG_HISTORY=true
ADVERTISEMENTS_TRACKING_BUFFERED=true
ADVERTISEMENTS_TRACKING_CONNECTION=redis
ADVERTISEMENTS_TRACKING_QUEUE=tracking
ADVERTISEMENTS_FACADE_ALIAS=true
ADVERTISEMENTS_MEDIA_DISK=s3
ADVERTISEMENTS_GEO_TARGETING=true
ADVERTISEMENTS_GEO_STAMP=true

Poznámky

  • default_currency musí byť registrovaná v registri mien money-for-laravel — predvolene akýkoľvek kód ISO 4217.
  • key_type číta iba migrácia: zmeňte ho pred migráciou, nie po nej.
  • Kľúče modelov musia odkazovať na model z balíka alebo jeho podtriedu; čokoľvek iné vyhodí výnimku — pozrite Vlastné modely.
  • Každý kľúč typu bool prijme true/false, 1/0, on/off alebo yes/no (z .env aj z publikovaného súboru). Čokoľvek iné vyhodí InvalidConfigurationException s názvom kľúča, takže preklep sa nikdy potichu nezmení na predvolenú hodnotu.
  • Ostatné kľúče sú rovnako prísne: nenastavený kľúč — vynechaný, null alebo prázdny ('' či len medzery, napríklad riadok ADVERTISEMENTS_FALLBACK_LOCALE=) — dostane predvolenú hodnotu; hodnota nesprávneho tvaru vyhodí InvalidConfigurationException s názvom kľúča. Mena, jazyk, názvy skupín, variant zobrazenia, view textovej reklamy, disk a nastavenia fronty musia byť reťazce a každá responzívna šírka skutočná šírka (prázdna položka v zozname vyhodí výnimku). php artisan about zobrazí chybné nastavenie ako INVALID.
  • Pri vypnutom register_facade_alias importujte RoundlyConsulting\Advertisements\Facades\Advertisements výslovne; samotná fasáda funguje ďalej.

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 kryptomien

Odoslaní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.