MicroAd Developers Blog

https://developers.microad.co.jp/

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

フィード

記事のアイキャッチ画像
外部サービスと従業員データの整理とそれらの利活用による業務改善
MicroAd Developers Blog
マイクロアドのIT戦略グループの米田(まいた)です。 私は2022年1月末にマイクロアドを退職して他社に転職したのですが、業務委託(副業)を経て2023年10月に正社員としてマイクロアド復帰させていただき、改めてIT戦略グループで働いています。 今回は復帰してから進めている「社内で利用している外部サービスのデータ整理・管理」と「従業員データの整備」、そしてそれらのデータを利活用した業務改善を紹介させていただきたいと思います。 外部サービスのデータ整理・管理 Google Workspace Atlassian製品 Dialpad Workplace Slack 従業員データの整理 データ利活用…
4時間前
記事のアイキャッチ画像
Fake Report で使われている任意の組み合わせをランダムに選択する仕組み
MicroAd Developers Blog
はじめに 京都研究所のTechlabに所属するエンジニアの I です。 ChromeのPrivacy Sandboxには広告クリックまたは広告視聴が、広告主サイトでの購入などのコンバージョンにつながった タイミングを測定するAttribution Reporting API が含まれています。 このAPIのEvent-Levelレポートの機能は、プライバシーを保護するため、ノイズとして偽レポートを通知することがあります。 この偽レポートはランダムに数値を選ぶことから始まり、ユーザが設定した条件に基づいてランダムな組み合わせを生成します。 組合せをどのように選ぶのかという点で Chromiumの…
14日前
記事のアイキャッチ画像
OTFSG Tokyo Meetup #2 で「Kafka ConnectのIceberg Sink Connector」をテーマに発表してきた
MicroAd Developers Blog
マイクロアドの京都研究所からリモートで働いているインフラ開発ユニットの永富 id:yassan0627 です。 3/1に開催されたOpen Table Format Study GroupのMeetupの第2回目にて、「Kafka ConnectのIceberg Sink Connector」をテーマに話してきました。 今回は、その紹介です。 otfsg-tokyo.connpass.com Open Table Format Study Group(OTFSG) について 私の発表について Kafka Connectとは Iceberg Sink Connectorとは お試し環境について …
1ヶ月前
記事のアイキャッチ画像
Spark Connectの検証における知見と課題
MicroAd Developers Blog
マイクロアドでサーバーサイドエンジニアをしている高橋です。 PySpark x Spark Connectの検証によって知見が溜まってきたので共有します。 検証に至った経緯は別の記事で紹介しています。 developers.microad.co.jp Spark Connect関連の情報は検索してもまだ少なく、試行錯誤しながら進めています。 この記事が少しでも参考になれば幸いです。 構成 知見 Spark Connect server起動時にオプションを全て渡さなければならない Decimal型の列同士の四則演算で精度が変わる Hiveのクエリ・UDFが使える 課題点 構成 今回想定する構成は…
1ヶ月前
記事のアイキャッチ画像
Googleマウンテンビュー本社でPrivacy Sandboxのディスカッションをしました
MicroAd Developers Blog
こんにちは。京都研究所・TechLabの中野です。 1/30、31にGoogleマウンテンビュー本社で開催されたPrivacy Sandboxのディスカッションに参加してきました。 Privacy SandboxのAPIの設計や開発に関わるGoogleの担当者がマウンテンビュー本社に集まり、マイクロアドのようなテスター企業と直接APIについて議論をするイベントです。 国内から数社が招待され、現地参加はマイクロアドを含めた2社でした。 技術的な内容が中心ということもあり、マイクロアドからはエンジニア2名で参加しました。 約50個の事前質問への回答や15分程度のプレゼン準備など、事前準備はなかなか…
2ヶ月前
記事のアイキャッチ画像
Vue.jsでのコンポーネント設計を社内標準化してみた話
MicroAd Developers Blog
はじめに システム開発部フロントエンドエンジニアの工藤です。 マイクロアドの WEB アプリケーションのフロントエンドは、大半を Vue.js を用いて開発しています。 以前、社内標準化の取り組みについて取り上げましたが、今回は、そこでの策定内容でもあるVue.jsでのコンポーネント設計についてお話していきます。 developers.microad.co.jp Vue.jsによる設計 まずは、フロントエンドのコンポーネント設計でよく見かける「Atomic Design」をお試し採用しました。結論としては、pagesとtemplates, moleculesとatomsの区別が難しいのに対して…
2ヶ月前
記事のアイキャッチ画像
Vertex AI Pipelinesを用いたMLバッチのディレクトリ設計
MicroAd Developers Blog
はじめに こんにちは。マイクロアドで機械学習エンジニアをしている大庭です。 マイクロアドの機械学習チームでは機械学習関連のバッチ実行に Vertex AI Pipelines というGoogle Cloud Platformが提供するマネージドのワークフロー実行サービスを利用しています。 Vertex AI Pipelinesを利用した機械学習プロジェクトはワークフローを管理するためにディレクトリ構成を工夫する必要があるのですが、新しいサービスなため設計関連の情報が少ないと感じています。 そこで今回の記事ではディレクトリ設計の一例としてマイクロアド運用している構成を紹介します。 はじめに Ve…
3ヶ月前
記事のアイキャッチ画像
Protected Audience APIとK匿名性
MicroAd Developers Blog
はじめに Protected Audience API Protected Audience APIとは Protected Audience APIの処理フロー (1)InterestGroupの登録 (2)OnDeviceAuctionの実行 (3)FencedFrameで広告の表示 (4)Reportの送信 K匿名性 K匿名性とは Protected Audience APIにおけるK匿名性 もしK匿名性の制限がない場合 K匿名性サーバー K匿名性サーバの2つのエンドポイント Join Query AboveThresholdWithPeriodicRestartアルゴリズム Chrom…
3ヶ月前
記事のアイキャッチ画像
マイクロアドの広告配信アプリ開発チーム「RDU」を新卒視点で語りたい記事
MicroAd Developers Blog
この記事では、マイクロアドの広告配信アプリ開発を担うチーム RDU について 新卒入社者の視点から分かりやすく書いていきます。 どうぞお付き合いください。 はじめに 高橋と申します。昨年マイクロアドに新卒入社し、 現在は広告配信アプリ開発チームでアプリケーションエンジニアとして働いております。 部署には他にも高橋さんが多いため、名前で呼ばれています。 自己紹介 RDU歴:6ヶ月 趣味:将棋(三段)/AtCoder(水)/ピアノ/ポケモンカード/フットサル部・テニス部・麻雀部所属など 最近の目標:Scalaをサラサラっと書けるようになること マイクロアドのシステム開発部には、BDU / RDU …
3ヶ月前
記事のアイキャッチ画像
2023年アドベントカレンダー完走記念におすすめ記事紹介
MicroAd Developers Blog
新年あけましておめでとうございます。 マイクロアドのシステム開発部で、広報委員会の委員長をしている キガワ(id:takahiro_kigawa)です。 年を跨いだ後でのご報告となりましたが、2023年のアドベントカレンダーも例年通り無事完走出来ました! qiita.com 前回同様、振り返りとして気になった記事を広報委員会メンバの中から代表3名が紹介していくスタイルでお送りさせていただきます! それではどうぞ! 広報委員会メンバの推しエントリー SONiCのイメージをビルドしてGNS3で使ってみた #Network - Qiita 大規模言語モデルを量子化してRustで動かしてみる Rust…
4ヶ月前
記事のアイキャッチ画像
S3互換ストレージ Apache Ozoneについて
MicroAd Developers Blog
はじめに マイクロアドのシステム開発部でインフラエンジニアをしているキガワです。現在マイクロアドではデータプラットフォーム事業を支える大規模な基盤(以下データ基盤)を移行計画中です。 現在のデータ基盤はHadoopエコシステムで実現されており、次期データ基盤ではコンピューティングとストレージを分離する構成を検討中です。 コンピューティング部分についてはマイクロアドで書かれた以前のブログ記事があるので、興味がある方はそちらをご覧ください。 ストレージ部分についてはS3互換のストレージ製品を検討しており、今回はその中で検証したApache Ozoneについて概要をご紹介します。 はじめに Apac…
6ヶ月前
記事のアイキャッチ画像
【新卒エンジニア向け】マイクロアドエンジニアの技術スタック(バッチ開発ユニット編)
MicroAd Developers Blog
こんにちは! システム開発部BDU(BigData Development Unit)でアプリケーションエンジニアをしている高橋です。 主にマイクロアドが気になっている社外のエンジニアの方やマイクロアドの新入社員の方向けに、自分たちのユニットが使っている技術について共有します。 メインは大規模データを取り扱うバッチ開発の話になるので、広告配信に興味のある方は以下の記事をご覧ください。 developers.microad.co.jp BDU(以降「バッチ開発ユニット」と呼ぶ)では主にETL/ELT1処理のバッチを開発しています。 広告配信ログやアクセスログなどのデータを元にして、適切な形に加工…
6ヶ月前
記事のアイキャッチ画像
Spring BootとKotlin開発における結合テストの自動化について
MicroAd Developers Blog
はじめに はじめまして。マイクロアドシステム開発部UDU(UI/UX開発ユニット)でアプリケーションエンジニアをしている崎元です。 今回は、私の所属するユニットでの自動テスト推進についてお話していきます。 まずは、お話を始めるにあたってマイクロアドシステム開発部でのテスト方針について触れさせていただきます。 目次 はじめに 目次 自動テストピラミッド このように変えた時に得られるメリット このように変えた時のデメリットは短期的な工数 テスト自動化の対応状況 結合テスト自動化 開発環境 GETの結合テスト 使用例 説明 POSTの結合テスト 使用例 説明 注意事項 今後の展望 自動テストピラミッ…
6ヶ月前
記事のアイキャッチ画像
QPS制御の仕組みの改善
MicroAd Developers Blog
こんにちは。京都研究所・Tech Labの郭です。 今回は、マイクロアドが提供するCOMPASS(SSP1)の中に、取り組んでいるQPS制御仕組みの改善を紹介します。 COMPASS COMPASS紹介 QPS制御について 以前のQPS制御の仕組み 全体像 その仕組みの問題点 改善後のQPS制御の仕組み 全体像 詳細説明 ① 流量を書き込み ② 制御量を書き込み ③ 制御量を読み込み 結果 改善前 改善後 残課題 最後に COMPASS紹介 COMPASS マイクロアドのCOMPASSプロダクトは、メディアの広告配信の最適化と、包括的な管理をすることで広告収益を最大化する、次世代のサプライサイ…
7ヶ月前
記事のアイキャッチ画像
広告キャンペーンの日予算分配の自動化
MicroAd Developers Blog
はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)における入札最適化の研究・開発などを担当しています. マイクロアドが提供する広告配信プラットフォーム(DSP)であるUNIVERSE Adsには予算管理の仕組みがいくつかあります. 今回はその中で配信制御のための自動予算分配について紹介します. はじめに UNIVERSE Adsにおける広告の構成 キャンペーン予算の最適分配 分配率最適化問題として定式化 予算分配後の配信制御 おわりに UNIVERSE Adsにおける広告の構成 UNIVERSE Adにおける広告は以…
7ヶ月前
記事のアイキャッチ画像
運用作業を安全にするChrome拡張のススメ
MicroAd Developers Blog
はじめに マイクロアドでサーバサイドエンジニア 兼 システム開発部の副部長をしている奈良橋です。 今回は社内運用が(わずかにですが)安全になるようなChrome拡張機能を作成しました。 この経験を通じて(差し出がましく恐縮ですが) わずかな手間でもChrome拡張機能が作成できるといった知見や、様々なWebUIを安全に運用するためのきっかけを提供させて頂きます。 ※ 本ブログの内容はDigdagのWebUIを例に書かれていますが、WebUIが存在するものは全般応用できるものになっております。 話のきっかけ 軽く前提にも触れますと、マイクロアドではバッチ処理のワークフローやジョブスケジューラーと…
7ヶ月前
記事のアイキャッチ画像
共有アカウント管理について
MicroAd Developers Blog
はじめに IT戦略グループの比嘉です。 今回はIT統制におけるアカウント管理で対応の必要がある共有アカウント管理について書きます。 developers.microad.co.jp はじめに 結論 前提 IT統制におけるアカウント管理とは 共有アカウントとは 共有アカウントの問題点 運用実施に向けて 共有アカウントの適切な管理に関する重要なポイント 共有アカウント利用状況の把握 運用方法 共有アカウントの利用を申請する。 月に1度、管理者は共有アカウントを整理する。 月に1度、共有アカウント整理状況をチェックする。 年に1度、共有アカウントの運用状況を評価する。 その他 パスワード管理ツールの…
8ヶ月前
記事のアイキャッチ画像
23卒の開発研修でスプリント計画アプリを開発した話
MicroAd Developers Blog
はじめまして! 23卒新卒チーム(天野、木村、澤田、高橋、藤田)です。 この度私たちは新卒開発研修にてスプリント計画アプリ「OtasK」を作成しました。 今回の技術ブログではスプリント計画アプリ「OtasK」完成までの軌跡を紹介していきます。 開発研修について マイクロアドシステム部のスプリント計画について なぜスプリント計画アプリ「OtasK」の開発に至ったか 成果物 開発の流れ システム設計 開発環境・アーキテクチャ 苦労したこと 面白かったこと 最後に 開発研修について まずはマイクロアドの新卒研修制度についてお伝えします。 マイクロアドでは4月にビジネス職・エンジニア職合同での全体研修…
9ヶ月前
記事のアイキャッチ画像
データ基盤移行計画とPySpark(Spark Connect)の検証
MicroAd Developers Blog
マイクロアドでサーバサイドエンジニアをしているタカギです。 今回はデータ基盤移行とPySparkについての話になります。 目次 目次 データ基盤移行の概要 データ基盤移行後のバッチ処理 Spark Connectを導入する Spark Connectの問題点 まとめ 補足 データ基盤移行の概要 諸々の事情1により、データ基盤をHadoopから移行することになりました。 現在のデータ基盤でのETL/ELT処理はHadoopエコシステム(Hive、HDFSなど)を中心に構成されています。 ※Hadoopについてはこちらの記事が参考になります。 これらをKubernetes、PySpark、S3互換…
9ヶ月前
記事のアイキャッチ画像
VictoriaMetrics 格納メトリクスをGrafanaで長期 表示したい話
MicroAd Developers Blog
はじめに インフラエンジニアのN村です。 マイクロアドではPrometheusとオープンソース版VictoriaMetricsを使って、データセンターにあるサーバ約1000台強をモニタしています。 利用開始からそろそろ4年。そこそこ安定稼働しています。 ですが、いま課題を抱えています。おそらくVicky1にありがちな話です。 目次 はじめに 目次 長期間グラフが表示できない ダウンサンプル機能がない 方法はないのか 1.スクレイプ頻度を落として集計サンプル数を減らす 2.さらにレコーディングルールも使う 3.GrafanaでQueryOptionを調整して荒く検索する 4.ダウンサンプル機能が…
9ヶ月前
記事のアイキャッチ画像
Nuxt 3で開発して特に良かった3つの機能を紹介します。
MicroAd Developers Blog
はじめに こんにちは。マイクロアドシステム開発部の東です。 業務では主に画面などのプロダクトを開発しています。 今回は新規プロダクトでNuxt 3を採用し、実際に開発してみて特に良かった機能を紹介します。 目次 はじめに 目次 Nuxt 3の採用 開発体験 Auto-imports serverディレクトリ composables おわりに Nuxt 3の採用 Nuxt 3はNuxt.jsの最新バージョンで、以下の利点が主にあります。 Nitroエンジンによる高速・軽量化 TypescriptやVue 3(composition-api)のネイティブサポート 今回、新規プロダクト(cataly…
10ヶ月前
記事のアイキャッチ画像
GoのsubTestsを活用したTableDrivenTest
MicroAd Developers Blog
こんにちは。 マイクロアドで機械学習エンジニアをしている大庭です。 今回の記事では Go で TableDrivenTest を書く上で重要になってくる subTests の使い方を紹介します。 subTests subTests は Go1.7 から追加された1つのテスト関数の中に階層を作るための機能です。 subTests を利用するメリットとしてはテストケース毎に正否判定を行える、特定のテストケースのみ実行できる、テストの並列実行ができるなどが挙げられます。 subTests の基本的な使い方 はじめに subTests の基本的な利用方法を subTests ありなしのコードを比較する…
10ヶ月前
記事のアイキャッチ画像
マイクロアドのDiscord活用事例が本に取り上げられました
MicroAd Developers Blog
マイクロアドのシステム開発部で広報委員会の委員長している 永富 id:yassan0627 です。 過去にリモートワークを取り入れた新しい働き方としてコミュニケーションの改善の手段としてDiscordをシステム開発部として採用している話を紹介しました。 developers.microad.co.jp こちらの記事は今でもよく閲覧される記事として人気のある記事になっています。 この記事がきっかけとなり、株式会社インプレス様より活用事例の1つとしてインタビューさせて欲しいと依頼がありました。 そのインタビュー記事を含んだ本が、Discordの活用ガイドとして、 2023/07/06 に発売されま…
10ヶ月前
記事のアイキャッチ画像
Chrome DevTools Protocolを用いるPlaywrightを活用した広告表示の監視について
MicroAd Developers Blog
京都研究所・TechLabの石浦です。マイクロアドでは、広告配信システムの監視の整備に取り組んでいます。 最近では、社内にある監視基盤を活用し、広告配信システムから実際に配信されている広告そのものを監視対象にしながら配信が正常かをチェックするようにしています。 なお、監視基盤については以前ブログで紹介していますので、ご参照ください*1 外形監視と広告実配信 広告が表示されるまでには様々な手続きが行われていますが、その詳細は伏せて最終的な広告表示が正常に表示されているかだけをチェックしたいことがあります。 このようにシステムの内部状態を直接確認するのではなく、システムの外部から入力と出力の関係性…
1年前
記事のアイキャッチ画像
Toxを活用してAnsibleのアップグレードとUbuntu対応を進めている話 〜Ansible v2.9脱出作戦〜
MicroAd Developers Blog
はじめに インフラエンジニアの長田です。これまでマイクロアドのインフラ環境ではCentOS7を使っていましたが、現在はUbuntu20.04への乗り換えを順次進めています。 それに伴い、CentOS用に作ってきたAnsibleロールのUbuntu対応やGitHubリポジトリの構成見直し、新しいバージョンのAnsibleへの追随など様々なリファクタリングを進めています。 また、複数のansible-core、Moleculeバージョンで同時にテストするために、Pythonのテスト用仮想環境を管理するtoxというツールを活用しています。 はじめに Ubuntuへの対応 ロールのリポジトリ分離 an…
1年前
記事のアイキャッチ画像
Java8→Java19でいいなと思った機能
MicroAd Developers Blog
はじめに こんにちは。 マイクロアドでWebエンジニアをしている木田です。 今回は普段Java8を使用しているエンジニアがJava19を触ってみて便利だなと思った点をいくつかご紹介しようとおもいます。 マイクロアドではWebアプリ開発のサーバサイド言語としては以下を使用しています。 Java Kotlin Kotlinについては比較的新しい言語ということもあり、Java8にはない便利な組込APIがいくつも存在しています。 今までは、「Kotlinのほうがシンプルに書けていいな〜」と思ってましたが、 Java19を触ってみて、「あれ、Javaも負けてないぞ!」と思ったので両者を比較しながら紹介し…
1年前
記事のアイキャッチ画像
Dockerコンテナを使ったHiveクエリの自動テスト
MicroAd Developers Blog
こんにちは!マイクロアドでサーバーサイドエンジニアとしてバッチ開発を担当している根本 (id:realyutanemoto)です。 マイクロアドではHadoop分散ファイルシステム(以下、HDFSとする)にビッグデータを蓄積し、その加工処理(ETL処理)を行うバッチを作っています。 今回はそのテストの一部でHive1クエリの自動テストを実装した方法を紹介します。 バッチ処理のテスト Hiveを使ったバッチ処理の例 なぜ自動テストしたいのか Hiveを使ったバッチ処理での自動テスト 自動テスト作成時の観点 自動テストですること 自動テストの実装 Dockerコンテナの立ち上げ テストデータの操作…
1年前
記事のアイキャッチ画像
ユーザ行動から新規セッションのKPI達成を予測する試み
MicroAd Developers Blog
はじめに こんにちは。マイクロアドで機械学習エンジニアをしている津野です。 21卒でマイクロアドに入社し、現在はUNIVERSE Adsというプロダクトで KPI達成確率予測の研究開発および実装を担当しています。 この記事では、自分が現在担当しているKPI達成確率予測について紹介させて頂きます。 問題設定 KPI達成確率予測(以下、KPI予測)とは、ユーザが新規セッションにおいて特定のKPI行動を達成するかどうかを予測するタスクです。 ここで言うセッションとは、ユーザが特定のウェブサイト上で行った一連の操作のことです1。 例えば、1回のセッションには、ページビュー、イベント、ソーシャルインタラ…
1年前
記事のアイキャッチ画像
Redashの利用状況をモニタリングする
MicroAd Developers Blog
京都研究所の田中です。 マイクロアドでは、主にエンジニア以外のメンバーが広告配信実績などの各種データにアクセスする際はRedashを利用しています。 Redashを使えば気軽にクエリを作成でき、同じUIからいろいろなデータベースにアクセスしてデータを取得できます。 マイクロアドでのRedash活用については以前のブログ記事でも取り上げているのでご参照ください*1。 今回は、Redashのメタデータを使ってRedash上に作成されたクエリやダッシュボードの利用状況をモニタリングする方法をご紹介します。 Redashの利用状況をモニタリングすることの重要性 マイクロアドでRedashを使って作成さ…
1年前
記事のアイキャッチ画像
【新卒エンジニア向け】マイクロアドエンジニアの技術スタック(広告配信ユニット編)
MicroAd Developers Blog
こんにちは。 マイクロアドシステム開発部RDU(RTB Development Unit)でサーバーサイドエンジニアをしている飛田です。 この度は、主に新卒エンジニアの方や新入社員の方向けに、 数ある開発チームのうちの1つであるRDUで使っている技術について共有させていただきます。 RDUは主に広告配信周りの開発をやっているチームでして、 DSPやSSPなどの広告配信プラットフォームの開発・保守がメインの仕事になります。 以降、RDUのことを「広告配信ユニット」といいます。 広告配信ユニットで働いてみたい方やマイクロアドで使っている技術に興味のある方は参考にしていただければ幸いです。 以降、広…
1年前