Google DoubleClick for Publishers (DFP)のAPIを使う!API解説編
前回(Google DoubleClick for Publishers (DFP)のAPIを使う!API準備編)はDFP APIを使う環境を準備しました。
今回は他のAPIについて解説していきます。
リファレンス
まずは以下のリファレンスは常に見ておきましょう。
サンプルコード(Browse Example Code) https://developers.google.com/doubleclick-publishers/docs/clients
API(SOAP)仕様 左のナビゲーションからお使いのバージョンを選択して見てください。 https://developers.google.com/doubleclick-publishers/docs/rel_notes
基本
これらAPIは見ると分かりますが頻繁にアップデートされます。またそれぞれのバージョンにはDeprecated期日が設定されています。この期日が来るとAPIが動かなくなることがあります。このことは念頭に置いておきましょう。APIバージョンが変わるとJavaパッケージ名が変わるのでjarの差し替えだけでなくソースコードの修正が必要です。
使い方は上記URLのサンプルコードを見れば一目瞭然です。正確なads.propertiesがある状態でコードをコピペしてくれば動きます。
基本的にはOrder, LineItem, Creative, LineItemCreativeAssociationを登録すると1つの配信設定が完了します。これらはOrderServiceやLineItemServiceというもので登録して行きます。作る順番も左記の通りです。それぞれのオブジェクトにはorderIdなどのフィールドがあるので、ここに既に作成したOrderなどのIDを入れて関連付けて行く、という感じです。
登録、更新はサンプルを見るとすぐに分かりますが、削除がサンプルに見当たりません。ですが、実際にはできます。各ServiceにはperformXXXXXXActionというメソッドがあります。これにDeleteLineItemsなどのオブジェクトを食わせるとできたりします。
罠
DFP APIは非常に遅いです。
DBではないのでトランザクションの管理ができません。またたまにAPIのレスポンスが帰ってこなかったり、APIのコールリミットに達した場合即座にエラーを返してくる等します。ですので、複数のOrderやLineItemに対して一括して何かを行う、というような場合整合性を保つのが非常に面倒です。
DFP画面上でできることでも、API経由ではできないことがあったりします。例えばターゲティング初期設定というものがDFP画面上にはありますが、これはAPI経由で取得したり設定することはできません。他にも履歴の取得ができなかったりします。
LineItemには廃止されたフィールドなどが存在しています。例えばtargetPlatformは以前は画面上にも存在した項目ですが、現在では廃止しました。ところがDFPシステム上では有効です。かならずsetTargetPlatformでANYを設定しておくようにしましょう。
LineItemのTargetingの仕様が非常に複雑です。フィールドがめちゃくちゃネストしています。さらにCustomTargetingはKeyValue型とAudienceSegment型が混在している上に、ORとANDとISの条件指定も相まって訳が分かりません。ここは設定に苦労するかと思います。OrderやLineItem, LineItemCreativeAssociationのフィールドがよくわからない場合は、一旦DFP画面上で適当なものを作ってそれを取得し、デバッガで見るのが楽かと思います。
その他
サンプルコード無しで申し訳ないですが、まあ無くても公式サンプル見れば大体大丈夫かと思います。
さらっと書いていますが、相当このAPIには苦しめられました。お使いの用途がOrderやLineItemの一部分の更新なら対して問題はありませんが、これらを1から作る(登録する)のであれば苦労するかもしれません。
次回の予定は無いですが、これは!と思ったことがあれば随時書いて行こうかと思います。