facebook広告運用ツール datos(ダトス)の運用事例

Post on 13-Apr-2017

338 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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を利用して広告名を検索しているのがポイント

おわり

top related