Facebook広告運用ツールDatos(ダトス)の運用事例
yuji0602@cocolable inc
Self Introduction
• yuji0602
• 株式会社ココラブル• 開発室• 広告運用ツール Datosを主に開発/運用
http://www.datos-manage.com/
今日お話すること• Datos開発前• Datos作成にあたって• Datos作成後• 課題• API利用例
Datos開発前
Datos開発前• 2013年頃• 社内向けツールでレポーティングをしていた• Facebookの広告マネージャにスクレイピング
• gem mechanizeを使用していた• CSVをダウンロードして都合よく加工してレポート集計• あくるタイミングから CSSが週ごとに変わり地獄の運用になった
Datos開発前• 2014年頃• 念願の Ads Management APIが使えるようになった• gem
koalaを使用して act_<ACCOUNT_ID>/reportstatsを叩きまくって捗った
• APIを利用して広告入稿も始めた
Datos作成にあたって
Datos作成にあたって• 2014年頃• 社外向けツールを展開するプロジェクトが始まる• この当時社員のエンジニアが少なかったため外部のエンジニアをアサイン• 社内ツールと社外ツールが混同してプログラムの複雑度が高い
Datos作成にあたって• 開発当時には SDKが PHPのみ提供されていたので
PHPを採用• とはいえ当時の SDKの機能をあまり使っていない• そのツケが回ってなのか、今も技術負債を抱えている
Datos作成にあたって• APIの利用方法について Facebookのドキュメントを見てもあまりサンプルがなく手探り状態だった• あくるタイミングで広告マネージャーを Chromeのデベロッパーツールを見ると APIを叩いているのが見れたのでこれにすがるようになった• Marketing APIと呼ばれるようになってからドキュメントがだいぶ分かるようになった
Datos作成後
Datos作成後• クライアントへのレポーティングが楽になった• 広告入稿について、 CSVと画像を使って広告を大量に入稿できるようになった• この喜びを社外の Facebook広告運用者にも伝えたい
課題
課題• レポート集計がまれに失敗。• 広告を 100件くらい一括で入稿するとものすごい時間がかかる• APIバージョン UP対応が定期的にやってくる• 使ってたエンドポイントが deprecatedになるのつらい
API利用例
API利用例• Datosで実際に使っている APIの例を書いていきます。• Graph API Explorerをご利用ください。• https://developers.facebook.com/tools/explorer/
• Ads Management APIの以下のパーミッションが許可されていることを前提にしています。• ads_management
• ads_read
API利用例• 例1.広告のサムネイルを取得• <ADGROUP_ID>?
fields=id,creative.fields(id,title,name,body,image_hash,image_url,link_url,object_id,object_type,object_story_id,object_url,thumbnail_url).thumbnail_width(158).thumbnail_height(82)
• 広告 IDから creativeをネストで callする• サムネイルのサイズを .thumbnail_[width|height]()で設定しているのがポイント
API利用例• 例2.広告名で検索してキャンペーン、広告セット、広告を取得• act_<ACCOUNT_ID>/campaigns?
fields=id,configured_status,name,objective,adsets.filtering([{‘field': 'ad.name', 'operator': 'CONTAIN', 'value': ‘<SEARCH_WORD>’}]).limit(20).fields(id,configured_status,name,start_time,end_time,daily_budget,lifetime_budget,budget_remaining,insights.fields(spend),ads.filtering([{'field': 'ad.name', 'operator': 'CONTAIN', 'value': '<SEARCH_WORD>'}]).limit(20).fields(id,configured_status,name,creative.fields(id,object_story_id,thumbnail_url).thumbnail_width(158).thumbnail_height(82)))
• キャンペーン、広告セット、広告の名前とかステータスとかサムネイルを表示• filteringを利用して広告名を検索しているのがポイント
おわり