G7 광고 설정 플러그인 - Glitter Advertising

광고 실행과 설정을 분리하여, AdSense 설정과 Frontend Provider Contract를 제공하는 GnuBoard7 광고 설정 플러그인.

2026-08-30 (일) 23:27:20 조회 66
문의하기
G7 광고 설정 플러그인 - Glitter Advertising
PHP 8.2+ Laravel 12.x GnuBoard7 Plugin Architecture JSON Layout G7 Plugin Settings Frontend Configuration Contract

개요

glitter-advertising은 그누보드7(G7) 환경에서 사이트 단위 광고 설정과 공개 frontend contract를 제공하기 위한 광고 Configuration / Provider 플러그인입니다.

광고 SDK를 직접 로드하거나 광고 슬롯을 렌더링하는 플러그인이 아니라,
템플릿이나 다른 G7 확장 기능이 사용할 수 있는 광고 설정과 provider 정보를 일관된 형태로 제공합니다.

현재 버전은 v1.0.1이며, 플러그인의 핵심 역할은 Advertising Configuration + Provider Contract로 구성됩니다.


주요 기능

Site-level Advertising Configuration

사이트 전체에서 사용할 광고 설정을 하나의 provider를 통해 관리할 수 있습니다.

현재 기본 설정 항목은 다음과 같습니다.

  • Provider
  • Contract Version
  • AdSense 활성화 여부
  • AdSense Client ID

광고 관련 consumer가 각자 별도의 설정 저장 방식을 만들지 않고, 동일한 설정 contract를 참조할 수 있도록 구성되어 있습니다.

AdSense Provider Configuration

현재 첫 번째 광고 provider로 Google AdSense 설정을 지원합니다.

주요 설정은 다음과 같습니다.

  • AdSense 활성화 여부
  • AdSense Client ID
  • Client ID 형식 검증
  • 공개 frontend configuration 제공

Client ID는 ca-pub- 형식에 맞는 값만 허용하도록 validation을 적용합니다.

Public Frontend Contract

관리자에서 설정한 광고 정보를 G7의 공식 Plugin Settings 경로를 통해 frontend runtime에 제공합니다.

구조는 다음과 같습니다.

Plugin Settings
      ↓
Frontend Schema
      ↓
G7Config.plugins
      ↓
G7Core.plugin
      ↓
Template / Extension Consumer

템플릿과 확장 기능은 플러그인의 내부 저장 구조에 직접 접근하지 않고, 공개된 provider contract를 통해 광고 설정을 사용할 수 있습니다.

Configuration Validation

광고 설정 저장 시 기본적인 validation을 수행합니다.

예를 들어 AdSense Client ID는 정해진 형식에 맞는지 확인하며, 잘못된 값이 runtime 광고 로더까지 전달되지 않도록 설정 단계에서 차단합니다.

Separation of Concerns

glitter-advertising은 광고 시스템의 모든 기능을 한 플러그인에 넣지 않습니다.

다음 기능은 의도적으로 다른 계층에 분리되어 있습니다.

  • 광고 SDK 로딩
  • 광고 슬롯 렌더링
  • 광고 위치 배치
  • 사용자 동의 관리
  • CSP / nonce 관리
  • 실제 광고 runtime 실행

따라서 glitter-advertising은 광고 시스템의 설정과 provider contract만 담당합니다.

Administration

  • 관리자 광고 설정
  • AdSense 활성화 여부 관리
  • AdSense Client ID 관리
  • 설정값 validation
  • 한국어 / 영어 인터페이스

설계 방향

glitter-advertising은 AdSense SDK를 직접 실행하는 광고 플러그인이 아닙니다.

G7 확장 구조에서 광고 설정을 하나의 독립적인 capability로 분리하고, 템플릿이나 다른 모듈·플러그인이 이를 필요에 따라 소비할 수 있도록 하는 것을 목표로 합니다.

Administrator
      ↓
glitter-advertising
      ↓
Advertising Configuration
      ↓
Public Provider Contract
      ↓
Template / Extension
      ↓
Advertising Runtime

이 구조에서는 광고 설정과 광고 실행을 분리할 수 있습니다.

예를 들어

glitter-advertising
        ↓
Glitter Business Ad
        ↓
AdSenseSlot
        ↓
Consent Check
        ↓
Advertising Loader

와 같은 형태로 사용할 수 있습니다.


역할 분리

glitter-advertising이 담당하는 영역은 다음과 같습니다.

glitter-advertising

  • 광고 provider 설정
  • 광고 활성화 설정
  • AdSense Client ID 관리
  • frontend 공개 contract
  • 설정 validation

반면 다음 항목은 glitter-advertising의 책임이 아닙니다.

Advertising Consumer

  • 광고 SDK 로딩
  • 광고 슬롯 생성
  • 광고 위치 배치
  • 실제 광고 렌더링

Consent Provider

  • 마케팅 동의 확인
  • 동의 상태 관리
  • 사용자 동의 UI

G7 Core / Host

  • CSP
  • nonce
  • 외부 스크립트 정책
  • 보안 헤더

이처럼 기능을 분리하여 광고 설정이 특정 템플릿이나 SDK 구현에 강하게 결합되지 않도록 구성했습니다.


활용 사례

  • G7 사이트의 광고 설정 중앙 관리
  • AdSense Client ID 관리
  • 여러 템플릿에서 동일한 광고 설정 공유
  • 광고 설정과 광고 렌더링 계층 분리
  • 광고 provider contract 표준화
  • 템플릿 기반 광고 시스템 구성
  • Consent 기반 광고 실행 구조 구성
  • G7 확장 모듈 간 광고 설정 공유
  • 광고 기능을 포함한 비즈니스 템플릿 구성
  • 향후 광고 provider 확장을 위한 기반 구성

기술 스택

  • PHP 8.2+
  • Laravel 12.x
  • GnuBoard7 Plugin Architecture
  • JSON Layout
  • G7 Plugin Settings
  • Frontend Configuration Contract

요구 사항

  • GnuBoard7 확장 기능 구조
  • PHP 8.2+

현재 plugin.json 기준 버전은 1.0.1, 라이선스는 MIT, Vendor는 Glitter.kr입니다.


관리자 페이지에서 설치

1. GitHub 저장소에서 설치 (권장)

관리자 → 플러그인 관리 → 수동 설치 → GitHub

아래 저장소 URL을 입력합니다.

https://github.com/glitter-node/glitter-advertising

설치가 완료된 후 Glitter 광고 설정 플러그인을 활성화합니다.

활성화 후 관리자 플러그인 설정에서 광고 관련 설정을 구성할 수 있습니다.

2. ZIP 패키지 설치

ZIP 패키지를 다운로드한 후

관리자 → 플러그인 관리 → 수동 설치 → 파일 업로드

방식으로 설치할 수 있습니다.


설정 항목

현재 제공되는 주요 설정은 다음과 같습니다.

Provider

광고 설정 provider 식별자입니다.

glitter-advertising

Contract Version

현재 공개 contract version은 다음과 같습니다.

1

AdSense Enabled

AdSense 설정을 사용할지 여부를 나타냅니다.

이 설정은 광고 runtime 전체를 자동으로 실행시키는 기능이 아닙니다.

실제 광고 표시는 해당 설정을 소비하는 템플릿 또는 확장 기능의 runtime 조건을 추가로 만족해야 합니다.

AdSense Client ID

Google AdSense publisher client ID를 설정합니다.

예시 형식:

ca-pub-0000000000000000

실제 배포 패키지에는 publisher ID가 포함되어 있지 않습니다.

사용자가 자신의 AdSense publisher ID를 직접 설정해야 합니다.


광고 실행과의 관계

glitter-advertising 자체는 광고를 출력하지 않습니다.

예를 들어 실제 광고가 표시되기 위해서는 별도의 consumer에서 다음과 같은 과정이 필요할 수 있습니다.

Advertising Config
       ↓
Feature Gate
       ↓
Consent Check
       ↓
SDK Loader
       ↓
Ad Slot
       ↓
Advertising Provider

따라서 이 플러그인을 설치하는 것만으로 Google AdSense 스크립트가 자동으로 로드되거나 광고가 출력되지는 않습니다.


Public Frontend Configuration

공개 frontend contract는 광고 consumer가 필요한 최소 설정만 제공하도록 구성되어 있습니다.

현재 주요 contract 항목은 다음과 같습니다.

provider
contract_version
adsense_enabled
adsense_client_id

다음과 같은 runtime/security 정보는 이 플러그인이 직접 제공하지 않습니다.

  • Google SDK URL
  • CSP nonce
  • CSP policy
  • Consent snapshot
  • 광고 rollout 상태
  • 광고 슬롯 정보

이 정보들은 각각의 담당 계층에서 관리합니다.


보안 및 개인정보 보호

glitter-advertising은 사용자 개인정보나 consent 상태를 직접 관리하지 않습니다.

플러그인이 담당하는 것은 광고 설정 정보입니다.

사용자 동의가 필요한 광고를 실제로 실행하는 경우에는 별도의 consent provider 또는 사이트 정책과 연동해야 합니다.

또한 CSP, nonce 및 외부 스크립트 허용 정책은 G7 Core 또는 사이트 운영 환경에서 관리하는 것을 전제로 합니다.


저장소

GitHub

https://github.com/glitter-node/glitter-advertising

Release

https://github.com/glitter-node/glitter-advertising/releases/tag/v1.0.1

버전별 주요 변경

v1.0.1

  • 확장 기능 Vendor 및 package author metadata를 Glitter.kr로 정규화
  • Plugin identifier 유지
  • Provider contract 유지
  • 기존 광고 설정과 permissions 유지

v1.0.0

  • 사이트 단위 광고 Configuration Provider 추가
  • AdSense 기반 초기 provider 설정 추가
  • Public Frontend Contract 추가
  • Provider ID glitter-advertising
  • Contract Version 1
  • SDK Loading / Ad Rendering / Slot Placement / Consent / CSP 책임 분리

개발 상태

v1.0.1 — Initial Public Release

glitter-advertising은 광고 SDK나 광고 슬롯을 직접 구현하는 플러그인이 아니라, G7에서 사용할 광고 설정과 provider contract를 제공하는 독립적인 configuration 계층으로 개발되었습니다.

현재는 AdSense 기반 첫 provider 설정을 제공하며, 향후 필요에 따라 다른 광고 provider나 광고 설정 contract를 추가할 수 있는 구조로 확장할 수 있습니다.


최적의 설치

이 버전은 ZIP 설치보다 GitHub 저장소 설치를 권장합니다.

G7 관리자에서 GitHub 저장소 URL을 이용하면 플러그인 설치와 향후 업데이트 흐름을 유지하기 쉽습니다.

https://github.com/glitter-node/glitter-advertising

핵심 구조

glitter-advertising의 핵심은 광고를 직접 출력하는 것이 아니라, 사이트에서 사용하는 광고 설정을 하나의 provider contract로 제공하는 것입니다.

즉,

어떤 광고 provider를 사용하는지, 광고 기능이 활성화되어 있는지, 어떤 publisher 설정을 사용하는지, 템플릿과 다른 확장 기능이 해당 설정을 어떻게 참조할지

를 독립적인 플러그인 계층에서 관리합니다.

이를 통해 광고 설정과 광고 실행, 사용자 동의, CSP 보안 정책을 각각 분리하면서도 G7 확장 기능들이 동일한 광고 configuration을 공유할 수 있도록 구성했습니다.


라이선스

MIT License.

Copyright (c) 2026 Glitter.kr


댓글 (0)

로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!