AJA SSP 및 기술 정보

※ 이 글은 CyberAgent PTA Advent Calendar 2020 나흘째 되는 글입니다.
나는 네트워크 대리 그룹의 AJA회사에서 제품 매니저@_tarof를 맡고 있다.
평소 업무 관계 등을 Qita에 쓰기가 어려워 사실상 처음 기고한 것이다.
재고는 기다리고 있는데...
그럼 오프닝이 길어도 어쩔 수 없으니 바로 본론으로 들어가자.
어제의 보도의 반응이 너무 강해서 진지한 기사로 돌아와도 그거였지만 개의치 않았다.개의치 않으면 진다.

개시하다


이 글에서는 서버 에이전트인 PTA가 속한 주식회사 AJA(이하 자사)가 제공하는 AJA SSP의 개요와 활용기술을 볼 수 있는 범위 내에서 소개할 예정이다.
PTA가 뭔지 궁금하신 분들은 이쪽회장이 소개한 기사부터 봐주세요.

이른바 AJA SSP



AJA SSP는 자사가 제공하는 서플라이 사이드 플랜트form(공급자 플랫폼·이하 SSP)으로 실시간 경매를 통해 판매 광고 상자를 사용하는 메커니즘을 활용해 미디어 광고에서의 패러디를 지원하는 서비스다.
자사 창업 초기에는 모회사인 씨버가 대행 운영하는 아메바 블로그의 광고 모방 기술을 바탕으로 AJA Recommond와 같은 리코멘트 애플릿(추천하는 글은 여기 있음)을 제공했지만, 아메바 블로그 자체의 모방AJA Recommond에서 패러디 부분을 강화하는 기반 시스템으로 2017년 초 AJA SSP를 출범시켰다.
현재 우리는 아미바 블로그의 일부 광고 관리자와 아사히TV와 인터넷 에이전트가 공동으로 운영하는 ABEMA를 비롯한 광고가 첨부된 동영상 게시 서비스, 양질의 광고 시장 서비스 등을 제공하고 있다.
그룹 이외의 매체를 대상으로 하는 플래카드 광고와 현지 광고 발표는 두건만 제공한다.

SSP란?


시스템 구성 등에 대해 이야기하기 전에 SSP를 가볍게 다루십시오.
SSP는 웹과 애플리케이션 등 미디어를 대상으로 하는 서비스로, 여러 광고 게시 서비스와 미디어를 연결해 광고 패러디 기회와 단가를 극대화하는 서비스다.

그림에 기재된 광고 네트워크는 SSP 이전에 존재했던 광고 배달 서비스로, 예를 들어 한 번에 몇 엔을 클릭하면 합작한 매체를 가로질러 광고를 보낼 수 있다.
DSP는 Demand Side Platform(수요플랫폼)의 약자로 광고주를 대상으로 하는 서비스로 우리 같은 SSP와 합작하여 실시간 경매를 통해 광고 인수를 진행한다.약 50밀리초의 짧은 시간 안에 이 사용자를 위해 최상의 광고와 입찰 단가를 결정하고 다른 DSP와 광고의 디스플레이권을 쟁탈한다.
위에서 말한 바와 같이 SSP는 DSP에 대한 경매 기회 외에도 온라인으로 게시된 광고 등의 조합을 통해 미디어 광고 수익을 높이는 서비스를 제공한다.

언어 사용


그럼 지금부터 시스템의 화제로 들어가겠습니다.
먼저 언어를 사용하는 것부터 말하라.

Go 언어



AJA SSP에서는 백엔드 개발 언어로 Go 언어를 중심으로 사용됩니다.
SSP 시스템에서는 DSP에 대한 요청 등에 병행 처리를 해야 하기 때문에 간편하고 적절하게 튼튼하게 활용되고 성능이 높은 언어가 필요하기 때문에 Go 언어는 배달 서버를 설명하는 언어로 선택되었다주변 시스템과 관련해서는 코드 재활용 등의 관점에서 최근 Go 언어로 기술하는 경우도 많아졌다.
최근 OSS의 서버 서버Prebid Server도 Go 언어로 설명된 것으로 알려져 있다.

TypeScript / JavaScript


미디어 관리 화면의 전면에 TypeScript를 사용하여 이전에 사용했던 정기적인 실행 스크립트 그룹을 설명합니다.
스크립트 그룹은 간단한 프레임워크를 만들어 공동의 초기화 처리를 하는 등 방법으로 이루어진다.
또한 웹사이트에서 광고의 스크립트를 호출하여 현재 JavaScript에서 기술한 내용을 사용하고 있습니다.
다만, 유지보수 등의 관점에서 타입 스크립트로의 이전을 검토하고 있다.

기타


이외에도 코틀린, 자바, 스위프트는 애플리케이션의 광고 발표 SDK 개발에 활용된다.
로그가 게시된 통계 중 일부는 PySpark를 사용하고 SSP의 시스템은 비교적 다방면의 언어로 구축되었다.

시스템 구성


이번에는 여기서 자세히 설명할 수 없으니 사용하는 서비스 등에 대해 설명하고 싶습니다.
(그림을 쓰려고 했는데 혼란스러울 수 있으니 이번에는 내가 사랑을 끊는 것을 허락해 주세요.)
AJA SSP의 거의 모든 시스템은 Amazon 웹 서비스(AWS)에서 구축됩니다.
대표적인 서비스와 용도를 소개하고 싶습니다.

AWS Elastic Beanstalk


광고 발표 서버와 통계 기초의 일부는 서비스 발표부터 이용된다.
자유도가 높은 부분과 낮은 부분이 섞여 있어 관리하기 어려운 부분도 있지만
축소 부분과 응용 프로그램의 디버깅 등 일부는 전용 스크립트를 사용하여 슬랙의 Bot와 연합하여ChatOps를 실현합니다.

AWS Lambda/AMazon Event Bridge(구 Amazon CloudWatch Events)


Lambda는 널리 사용되는 서비스입니다.
광고 발표용 데이터의 고속 캐시화, 외부 에드워드 네트워크의 보고서와 연합하고 복제, 일부분의 합계 처리, 마지막으로 화면의 백엔드를 관리하는 등 용도가 여러 가지 측면에 관련된다.
주기적으로 실행되는 Lambda 함수는 EventBridge에서 트리거합니다.

Amazon CloudFront


광고 발표에 빠질 수 없는 CDN으로 아마존 클라우드 프론트가 사용되고 있다.
상세한 상황은 여기서 알 수 없지만 클라우드 프론 자체는 적용 범위가 상당히 넓고 없어서는 안 될 서비스 중의 하나이다.

AWS Glue / Amazon Athena


광고 게시 로그 통계에는 AWS Glue의 ETL Job이 사용됩니다.
총 스크립트는 위에서 설명한 대로 Glue에서 제공한 PySpark에서 수행된 Spark SQL에 기술되어 있습니다.
집계된 보고서는 Apache Parquet 형태로 AWS 3에 저장됐으며, 관리 화면과 사내에 준비된 Redash 등으로부터 Amazon Athena를 통해 이들에게 질의를 제출했다.
기본적으로 보고서 주변에 RDB가 사용되지 않았다.

Amazon DynamoDB / Amazon ElastiCache


사이트에 광고를 발표하는 과정에서 중요한 사용자 숙박이 하나 있는데 이 부분은 아마존 다이나마이드/아마존 다이나마이드 Acceerator를 사용했다.
Amazon ElastiCache는 일부 데이터를 캐시하는 데 사용됩니다.

최후


부랴부랴 소개해 드렸는데 이번에는 여기까지입니다.
지금까지 외부에 너무 많은 정보를 공개하지 않아 겉으로만 빠르게 안내했지만, AJA SSP는 이런 기술과 서비스를 조합해 운영하고 있다.
깊이 있게 공개하지 못한 부분도 있지만, 앞으로 PTA가 주최하는 행사 등에서 소개를 하고 싶다.
그러면 그런 PTA는 다음 주 12월 11일(금요일) 정기적으로 열리는 행사로 예정되어 있습니다사슴의 밤 망년회.

최근의 상황을 감안하여 지난번 개최부터 온라인으로 개최된 이번 망년회 특별 프로그램으로 거래하는 각 회사를 초청하기로 결정하였다.
당일 유튜브 라이브로 예정돼 있기 때문에 이번 기사 내용과 PTA에 관심이 있으신 분들은 꼭 가보세요!
여러분의 왕림을 기대합니다.

좋은 웹페이지 즐겨찾기