ブックマーク / techblog.gmo-ap.jp (195)

  • Header Bidding導入

    この記事は GMOアドマーケティング Advent Calendar 2020 15日目の記事です。 GMOアドマーケティング GMOSSP開発担当の@KazuakiMです。 先日、プレスをだしましたHeader BiddingのPrebid対応についてシステム面からご紹介していきたいと思います。 Header Biddingとは そもそもHeader Biddingとはどういったものかと申しますと、 媒体社の運営するサイトでアドサーバへ広告リクエストするよりも前に、 複数の広告配信事業社(SSP、アドエクスチェンジ)に広告リクエストを行う事で、 高単価な広告配信が実現可能となる仕組みとなります。 なぜ高単価なのに広告配信事業社は配信したがるのか Header Biddingに参入していない場合、アドテク業界ではよくある構成として、 まず媒体社がGoogle社のアドサーバ「Google A

    Header Bidding導入
    gt0824
    gt0824 2020/12/15
  • Railsで作った脆弱性をOWASP ZAPで診断してみる

    この記事は GMOアドマーケティング Advent Calendar 2020 14日目の記事です。 はじめに こんにちは、GMOアドマーケティングのR.Yです。今回はタイトルの通り、Railsで作った脆弱性をOWASP ZAPで診断してみたいと思います。 自分は主にRailsを使ったWebアプリの開発やWebアプリの脆弱性診断を行うことが多いので、この記事を書くことによってRailsセキュリティ周りや脆弱性診断を行うツールについての理解をより深められたら良いなと思います。 1.用意するもの Ruby On Rails 5.2.3 OWASP ZAP 2.9.0 2.調べる脆弱性 SQLインジェクション 2-1.SQLインジェクション SQLインジェクションとはWebアプリのリクエストで送られるパラメータを意図的に操作し、データベースを操作するクエリに対して行われる攻撃手法です。 例:

    Railsで作った脆弱性をOWASP ZAPで診断してみる
    gt0824
    gt0824 2020/12/14
  • TAXELの単一障害点を解消する

    この記事は GMOアドマーケティング Advent Calendar 2020 11日目の記事です。 こんにちは。 GMOアドマーケティングのM.Nです。 弊社ではメディアの回遊性、収益性を高めるため、レコメンドウィジェットの「TAXEL」を提供しています。 TAXELは2018年頃から徐々にオンプレからGCPに移行を行い、2020年9月に全ての機能をGCPに移行しました。 今回は移行時に行った取り組みについて紹介しようと思います。 1.オンプレ時のシステム構成 オンプレ時のシステム構成は下図のようになっていました。 (わかりやすくするために簡略化しています) 全ての機能がHadoopに依存しており、動作に必要なデータをHBaseに集約しているため、Hadoopクラスタに障害があった場合全ての機能に障害が発生してしまいます。 実際によく障害が発生し復旧に手間がかかるという問題を抱えていまし

    TAXELの単一障害点を解消する
    gt0824
    gt0824 2020/12/11
  • BigQuery独自エラーのトラブルシュート集

    このエントリーは、GMOアドマーケティング Advent Calendar 2020 の 10日目の記事です。 こんにちは、GMOアドマーケティングのmizkichです。 DMP(Data Management Platform)の開発運用を担当しています。 このDMPで利用しているBigQueryは、一千億を超えるレコードでも数分で処理してくれる、非常に高い高速性が魅力です。 その反面、通常のリレーショナルデータベース(RDB)では起こらないエラーがたびたび発生してしまいます。 この記事では、BigQuery独自の様々なエラーを回避する方法を紹介します。 ・はじめに 従来のRDBでは、最も効率的な実行計画を意識してSQLを書けば、PARSE(評価)もEXECUTE(実行)も正常に高速に処理されました。 BigQueryでは、実行計画を意識しただけでは複雑なSQLは実行出来ません。 Big

    BigQuery独自エラーのトラブルシュート集
    gt0824
    gt0824 2020/12/10
  • いまいちPrebid.jsがGAMに対して何をやっているのか分からない人へ説明してみます

    この記事は GMOアドマーケティング Advent Calendar 2020 9日目の記事です。 こんにちは、GMOアドマーケティングの主にめるもとGMOSSP周りのフロント周りを開発しているY.A.です。 今回は「Google Ad Manager(以降GAM)x Prebid.js」というHeader Biddingではよくある構成について、基的な仕組みの説明とデバッグ・不具合調査方法をお伝えしたいと思います。 ※これは筆者のデスクトップからキャプチャを取った画像です。以下同様です。 そもそもPrebid.jsの導入・運用するにあたって、なかなかハードルを感じている担当者も多いのではないでしょうか。 理由は、担当者に以下の知識を求められるためでしょう。 1) GAMの理解 2) Prebid.jsの理解 片方を押さえている広告運用担当者/開発担当者はいるかと思いますが、その両方を中

    いまいちPrebid.jsがGAMに対して何をやっているのか分からない人へ説明してみます
    gt0824
    gt0824 2020/12/09
  • Rails 6.1の新機能「annotate_rendered_view_with_filenames」を試す

    この記事は GMOアドマーケティング Advent Calendar 2020 8日目の記事です。 はじめに こんにちは。 GMOアドマーケティングの石丸(@thomi40)です。 弊社では複数のプロダクトでRuby on Railsを使って開発を行っています。 今回はRails 6.1で導入が予定されている「annotate_rendered_view_with_filenames」について紹介します。 annotate_rendered_view_with_filenamesとは? annotate_rendered_view_with_filenames は config/environments/development.rb や config/environments/test.rb で設定できるオプションで、今後リリース予定のRuby on Rails 6.1で追加が予定されてい

    Rails 6.1の新機能「annotate_rendered_view_with_filenames」を試す
  • PHPとYouTube Data API で急上昇ランクを取ってみる

    この記事は GMOアドマーケティング Advent Calendar 2020 7日目の記事です。 はじめに こんにちは。 GMOアドマーケティングのKONCEです。 今や「好きなテレビ番組なに?」 って質問するより 「好きなYouTubeチャンネルなに?」 と聞く方が僕の中でスタンダードになりつつあります。 今回は「YouTube Data API」を普段使用しているPHPで試してみようと思います。 ① YouTube Data API ライブラリの有効化 GCPコンソール上から任意のプロジェクトでYouTube Data API ライブラリを有効化します。 APIとサービス → ライブラリ → YouTube Data API を検索 → 有効にする ② APIキーの取得 ①でライブラリの有効後、認証情報からAPIキーを取得します。 認証情報 → 認証情報を作成 → APIキー ③ g

    PHPとYouTube Data API で急上昇ランクを取ってみる
    gt0824
    gt0824 2020/12/07
  • 新型MacBookAir M1チップ(Apple Silicon)でRails開発環境を構築する

    この記事は GMOアドマーケティング Advent Calendar 2020 6日目の記事です。 はじめに GMOアドマーケティングの吉岡です。 今回は2020-11-17発売の新型MacBookAirでRails開発環境を構築したので、その手順を共有したいと思います。 この記事は2020-11-30に執筆したもので、対応アプリが増えるにつれて環境構築手順も簡単になっていくと思いますが、今動かしたい人のための記事となっています。 CPUについて これまで、ApplePCはインテルやAMDCPUが使われていましたが、今回は独自開発のM1チップが使われ、8コアTDP10wを実現しており、かなりの高性能となっています。 しかしながら、既存のアプリはintel/AMDCPU用に作られているものが多く、M1チップに対応していないアプリはほぼ動作しません。 これでは流石に厳しいので、Apple

    新型MacBookAir M1チップ(Apple Silicon)でRails開発環境を構築する
    gt0824
    gt0824 2020/12/06
  • ARCHモデルで時系列データの変動の大きさを見積もる

    この記事は GMOアドマーケティング Advent Calendar 2020 4日目の記事です。 はじめ こんにちは。 GMOアドマーケティングのS.Sです。 時系列データの中には、株価のreturnデータのように変動の大きさが時間とともに変動するようなものがあります。 今回の記事ではARCHモデルを使って、時系列データの変動の大きさを見積もってみたいと思います。 データの準備 大きく株価が変動するようなイベントというと、2008年のサブプライム危機があったので、その時期の変動の大きさの変化をある程度モデルでも捉えることができればよさそうということにします。 サブプライムの直前の時期のアップルの株価データがmatplotlibのサンプルに含まれているので、以下からダウンロードします。 株価のlogarithmic differenceをとるのは大雑把に日次の変化率を計算するためです。 h

    ARCHモデルで時系列データの変動の大きさを見積もる
    gt0824
    gt0824 2020/12/04
  • PythonでBigQueryの実行情報をSlackへ共有する方法

    この記事は  GMOアドマーケティングAdvent Calendar 2020   3日目の記事です。 皆さん こんにちは、GMOアドマーケティングのS.Rです。 前回のブログでは、GCPのSDKでBigQueryを実行する状況をBigQueryのテーブルへ格納するプログラムの作り方を皆さんへ紹介させていただきました。 実際の運用にはBigQueryの実行状況を集計することだけではなく、大きな課金が発生する場合にリアルタイムで責任者へ共有することも重要です。 今回はBigQueryの実行する情報を、よく使われているSlackという業務用チャットツールへ共有する方法を皆さんへ紹介します。 Slack側の設定 1  連携用Slack Appを作ります。 Slackの管理画面を開いてAppの名前やwork placeの名前を指定してください。今回のブログではAppの名前をbigquery_cos

    PythonでBigQueryの実行情報をSlackへ共有する方法
    gt0824
    gt0824 2020/12/03
  • PythonでBigQueryの料金を監視する

    この記事は  GMOアドマーケティングAdvent Calendar 2020   2日目の記事です。 皆さん こんにちは、GMOアドマーケティングのS.Rです。 GoogleのBigQuery(Google Cloud Platform)という大規模なデータ分析ツールを使ったことがありますか? BigQueryでは1PB(ペタバイト)あるいは10億行といった膨大なデータに対して、SQLで集計・分析処理を極めて高速に実行できます。 ただBigQueryのQueryを実行するには、気を付けなければ高い料金が課せられます。 今回は、Pythonで、GCPのSDKでBigQueryの実行する状況を監視するプログラムを作る方法を、皆さんへ紹介させていただきます。 プログラムの構成 プログラムの構成は下記です。 Service account を作成&権限を設定 GCPの管理画面のService a

    PythonでBigQueryの料金を監視する
    gt0824
    gt0824 2020/12/02
  • エンジニア組織のリファクタリングの話

    この記事は GMOアドマーケティング Advent Calendar 2020 1日目の記事です。 はじめに こんにちは、 GMOアドマーケティング 開発部長のクリスです。 今回はエンジニア組織のリファクタリングについてお話しします。 組織作りは手段であって、目的、会社の規模、事業内容、またトップの考え方などによって 変わります。 現在の開発体制 弊社はアドテク事業としてSSPのGMOSSP、アドネットワークのAkaNe、DSPのReeMo、レコメンドエンジンのTAXEL、メディア事業としてめるもなど、幅広いプロダクトを自社開発で提供しています。 体制としてはプロダクトごとにエンジニアがアサインされ、チームにてそのプロダクトの開発を行う、いわゆるプロダクトチーム制となります。また、ほとんどのチームはスクラムを用いて開発をしています。 図で表すとこんな感じ よく見られる開発体制で良い

    エンジニア組織のリファクタリングの話
    gt0824
    gt0824 2020/12/01
  • PostgreSQLのメモリアーキテクチャを知る

    こんにちは、GMOアドマーケティング インフラ開発部のhakumaiです。 前回の記事「AWSエンジニアGCPメインの会社に転職してみた」を読んでいただいた方々、ありがとうございます。 初めまして、GMOアドマーケティング インフラ開発部のhakumaiです。今年1月にHRTech系企業からGMOアドマーケティングに転職してきました。現職では、女子向けメディア「めるも」のインフラ業務に携わり、日々業務に励んでおります。今回は、私が転職してみて感じたインフラ技術のギャップの一部についてお話しいたします。 前職でのインフラ環境・経験について前職のHRTech企業で触っていたインフラ環境は、ほぼAWSでした。インフラの保守運用業務に加え、新規プロダクトのインフラアーキテクチャ設計構築を経験したこともあり、V... 今回は2回目の投稿になります。 前回と同様に、「AWSエンジニアから見たGCP

    PostgreSQLのメモリアーキテクチャを知る
    gt0824
    gt0824 2020/11/25
  • Google ColaboratoryでBigQuery SQLの共有

    GMOアドマーケティングのT.Oです。 SQL式を共有したいと思ったことはありませんか? 今回はGoogle Colaboratoryを使用して、BigQueryのSQL式を共有するための手順をご紹介します。 0.Google Colaboratoryとは? Google Colaboratory(略称:Google Colab)とは、ブラウザ上でプログラム(主にPython)を記述、実行できるクラウド上のサービスです。機械学習データ分析の分野で利用されているJupyter Notebookというツールをベースにしていて以下のような特徴があります。 環境構築が不要(ローカル環境へのインストールは不要です) GPUへの無料アクセス(計算を高速に行いたい場合にGPUを利用します) 簡単に共有(プログラムや説明の文章、実行結果をノートブックと呼ばれるファイルにまとめて管理、共有できます) 今回

    Google ColaboratoryでBigQuery SQLの共有
    gt0824
    gt0824 2020/11/24
  • FitbitのアクティビティデータをColabで可視化しましょう

    こんにちは、GMOアドマーケティングのS.Rです。 Fitbitは人気の活動量計の一つです。 昨年、FitbitのCharge2を購入し、日々のアクティビティデータ(運動、事、体重、睡眠など)を記録していました。データ量が結構貯まっていたので、機械学習エンジニアとして何かに利用してみようと思います。 Fitbitのデータと無料のデータ分析クラウドサービスColabと連携する方法を調べてみましたので、今回は、その方法について皆さんへ紹介させていただきます。 Fitbit側の権限設定 Fitbitの開発者センターで新しいAppを申請する ① Manage->Register An Appを選択してください。 ※:引用元 | Fitbit Development: Fitbit SDK, https://dev.fitbit.com/ ② Fitbitのアカウントでログインしてください。 ③

    FitbitのアクティビティデータをColabで可視化しましょう
    gt0824
    gt0824 2020/11/19
  • YWTをやってみました。

    こんにちは。GMOアドマーケティングのT.Mです。 はじめに スクラム開発のふりかえり手法としてYWTをやってみた感想です。 前回Celebration Gridをやってみましたが、今回はYWTです。 Celebration Gridを始めるときにYWTとどちらにしようか迷っていました。 その時は、KPTと毛色の違うCelebration Gridを選びました。 それから少し時間が経ったので、違うことを始めても良いかなと思い、YWTを始めてみました。 KPTと似ていますがちょっと違いますので、KPTと異なる結果が得られるのか気になっていました。 YWTとは YWTは、日語でやったこと(Y)、わかったこと(W)、つぎやること(T)の略です。 ふりかえり手法としてよく使われているのはKPTだと思います。 KPTでは、Keep、Problemを出し合って、Keep、Problemに対するTry

    YWTをやってみました。
    gt0824
    gt0824 2020/11/12
  • MeCabへWikipediaの辞書を追加する方法

    こんにちは、GMOアドマーケティングのS.Rです。 日語のNLP(自然言語処理)で形態素解析は大切な処理の1つとなります。 今回は、形態素解析ツール「MeCab」へWikipediaの辞書を追加する方法を紹介します。1. 日語の形態素解析ツールMeCab MeCabは日語の形態素解析ツールです。詳細はWikipediaの説明をご覧ください。 MeCabはオープンソースの形態素解析エンジンで、奈良先端科学技術大学院大学出身、現GoogleソフトウェアエンジニアGoogle 日本語入力開発者の一人である工藤拓によって開発されている。名称は開発者の好物「和布蕪(めかぶ)」から取られた。 MaCab、2019年09月17日、ウィキペディア日語版、https://ja.wikipedia.org/wiki/MeCab 2. 「MeCab」へWikipediaの辞書を追加する方法の説明 1)

    MeCabへWikipediaの辞書を追加する方法
    gt0824
    gt0824 2020/11/10
  • 新卒研修を終えて感じたこと

    はじめに こんにちは! 20新卒で、GMOアドマーケティング(以下GMOAM)に入社しました、R.Y.と申します。 大学ではWebアプリの開発や画像認識などを行なっていました。 今回はGMOAMの新卒エンジニア研修について紹介したいと思います。 目次 研修のスケジュール エンジニア研修 GTB OJT研修 研修を終えて 1. 研修のスケジュール ※上記画像は当社が作成したもの 非エンジニア研修 4月1日〜4月20日 エンジニア研修 4月21日〜5月1日 GTB 5月7日〜5月29日 OJT研修 6月1日〜6月30日 前年までGTBは毎週金曜に開催され最後の2日間の開発合宿を経て終了でしたが、 今回はリモートでの実施ということもあり三週間のまとまった時間で行われました。 それらの兼ね合いもあってAMエンジニア研修はGTBを挟んで計2回行われることになりました。 2. エンジニア研修 2.1

    新卒研修を終えて感じたこと
    gt0824
    gt0824 2020/09/25
  • GMO新卒エンジニア研修を通じて

    はじめまして!そしてこんにちは。GMOアドマーケティング(以下GMOAM)20新卒のM.H.と申します。 大学院では公共交通機関における遅延の伝播について、機械学習を用いて研究をしていました。 今回は、5月中に実施されたGMO Technology Bootcamp(以下GTB)を中心に、GMOAM内にて実施されたエンジニア研修で学んだ内容に関しての紹介と、新卒として入社をし、研修や実務を通して感じた、エンジニアとして働く上で重要だと思った点について書いていこうと思います。 向けの研修は主に以下の内容でした。 GTBデザイナー向け研修 UI設計基礎 サービスデザイン ブランディング、マーケティング、デザイン倫理 GTBエンジニア向け研修 インターネットの歴史 オブジェクト指向 DB設計 Webアプリフレームワーク REST / Web API セキュリティ基礎 仮想化 構成管理 コンテナ技

    GMO新卒エンジニア研修を通じて
    gt0824
    gt0824 2020/09/23
  • オンラインイベント「GMO Developers Day 2020」セッションレポート

    こんにちは。 GMOアドマーケティングのS.Sです。 2020年7月28日(火)にGMOインターネットグループは、「GMO Developers Day 2020」をオンライン開催しました。 今回はGMOアドマーケティングで発表を行なったセッションのレポートをお届けします。 イベント概要 このイベントでは、GMOインターネットグループのサービス開発における技術や取り組みをお伝えすることを目的としたものです。 今回のイベントでは、FinTech、ネットインフラ、AI/データサイエンス、メディア・コミュニケーション、働き方の5つをテーマにGMOインターネットグループを支えている各サービスの開発者が11のセッションを展開いたしました。 発表について GMOアドマケーティングでは、「機械学習を用いた広告配信での入札価格決定」という内容で発表いたしました。 発表ではDSPによる広告配信の仕組みについ

    オンラインイベント「GMO Developers Day 2020」セッションレポート
    gt0824
    gt0824 2020/08/03