M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2010年7月20日 12:34

DoubleClick Ad Plannerでのサイト解析をPerlで取得する

このエントリーをはてなブックマークに追加 mixiチェック

DoubleClick Ad PlannerのAPIが見当たらなかったので、バックで動いているAPIを使って値を取得しようという試み。

APIがあれば、たとえばはてなブックマークだったらこんな感じで取得できるわけですが、

Filename: hateb.pl

#!/usr/bin/perl
 
use XMLRPC::Lite;
 
my $res = get_hateb_value('http://blog.dtpwiki.jp/');
print "hatena bookmark: $res\n";
exit;
 
sub get_hateb_value {
  my $EndPoint = 'http://b.hatena.ne.jp/xmlrpc';
  my $url = shift;
  my $count = XMLRPC::Lite
      ->proxy($EndPoint)
      ->call('bookmark.getTotalCount', $url)
      ->result;
  return $count;
}
 
__END__
$ perl hateb.pl
hatena bookmark: 1897
$

これをDoubleClick Ad Plannerでやります。

Filename: adplanner.pl

#!/usr/bin/perl
 
use Encode;
use JSON;
use LWP::Simple;
use URI::Escape;
 
my $res = get_adplanner('http://blog.dtpwiki.jp/');
print "ad planner total_visit: $res->{site_info}->{total_visits}\n";
exit;
 
sub get_adplanner {
  my $url = shift;
  my $api = 'https://www.google.com/adplanner/planning/site_details_data';
  (my $id = $url ) =~ s|^https?://||;
  $id = uri_escape( $id );
  my $json = get( "$api?identifier=$id&trait_type=1&geo=001&_rnr_se=null");
  return decode_json( encode_utf8($json) );
}
 
__END__
$ perl adplanner.pl
ad planner total_visit: 15000
$

こんな感じです……

バックヤードのAPIを使っているのが微妙なので、ちゃんとしたAPIがあったらそっちで作り直しますから教えてください……


(2011-05-26 17:30 追記)

今確認したら、Ad Plannerの仕様が変わっていて、今のスクリプトだと動かなくなっていますね……

https://www.google.com/adplanner/rpc/SiteDetailsService/getPlacementProfile?&request_pb=[null,[null,1,%22example.com%22],%22001%22,10]

的な書き方をしまして、返って来た文字列(JSONかな?)から必要な値をとることになります。

投稿 大野 義貴 [Perl] | |

トラックバック(1)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3288

去年、 M.C.P.C.: DoubleClick Ad Plannerでのサイト解析をPerlで取得する というエントリ立てまして、これは、DoubleClick Ad Plannerのページのバックで動いているAPIを利用して、特定のサイトの情報を取得しようとするものだったのですが、 非公開APIを使う、ということで、今使ってみたところ案の定APIが変わっていたみたいです。 昔は、 https://www.google.com/adplanner/planning/site_details_da... 続きを読む

コメントする