ラベル Blogger の投稿を表示しています。 すべての投稿を表示
ラベル Blogger の投稿を表示しています。 すべての投稿を表示

2015年7月28日火曜日

Blogger で EU 圏のユーザーに cookie 通知

いつもの様にブロガーにログインすると Google からのメッセージが表示されました。
以下、引用
欧州連合の法律により、欧州連合からの訪問者には、ブログで使用されている Cookie に関する情報を提供する必要があります。また、これらの法律では多くの場合、同意を得ることが求められます。

Blogger や Google の特定の Cookie(Google アナリティクスや AdSense の Cookie を含む)が Google で使用されている旨の通知をブログに追加しました。

あなたはこの通知が自分のブログで実際に動作し、表示されることを確認する責任を負うものとします。サードパーティの機能を追加するなどして他の Cookie を使用している場合、この通知は動作しない可能性があります。この通知とあなたの責任について、詳細をご覧ください。
EU 圏からアクセスすると同意を求める通知が表示される、との事です。

確認方法は自分のアドレスの末尾を .co.uk などに変更してアクセスします。
以下、引用
このサイトでは、サービスの配信、広告のカスタマイズ、トラフィックの分析に Google の Cookie を使用しています。サイトの使用状況に関する情報は Google と共有されます。このサイトを使用すると、Cookie の使用に同意することになります。 [詳細] [OK]
同意を求める通知が表示されます。

初回訪問時のデザインを崩されたくない方は自己責任で無効にする事も可能です。その際は別途同意の通知を自身で用意しないといけません。個人的に今回の同意通知は良い施策だと思います。でも EU は色々と規制が多い印象ですね。

■参考リンク
欧州連合(EU)諸国における Cookie に関する通知 - Blogger ヘルプ

■関連投稿
当サイトについて

2014年6月24日火曜日

Blogger(ブロガー) にパンくずリスト

以前、ラベルの AND 検索を調べた時にパンくずリストがあれば良いのにな、と書きました。もしかしてと思い検索してみたらテンプレートの編集で実現している方がいました。その方の参照元の英語ページは 2009/06 と古い記事でしたが、内容は今の Blogger にも通用するものでした。(但し、このパンくずリストは1階層までです)

以下は手順

内容に従いテンプレートの編集で
<b:include data='top' name='status-message'/>
を探します。2箇所見つかった場合は2番目の上に追加、と書いてあるのですが、私のブログの場合は2番目に追加しても何も表示されず、これで数時間悩みました。色々試すうちに1番目に変更したら表示されました。

付近のコードはこの様な感じです。
  <b:if cond='data:mobile == &quot;false&quot;'>

    <!-- posts -->
    <div class='blog-posts hfeed'>

      <b:include data='top' name='status-message'/>
これに
<b:include data='posts' name='breadcrumb'/>
を追加します。
  <b:if cond='data:mobile == &quot;false&quot;'>

    <!-- posts -->
    <div class='blog-posts hfeed'>

      <b:include data='posts' name='breadcrumb'/>
      <b:include data='top' name='status-message'/>
この様になります。

次に
<b:includable id='main' var='top'>
を探します。これはたぶん1箇所だけだと思います。私の場合は1箇所だけでした。

付近のコードはこの様な感じです。
        <div class='column-center-outer'>
        <div class='column-center-inner'>
          <b:section class='main' id='main' showaddelement='no'>
            <b:widget id='Blog1' locked='true' title='ブログの投稿' type='Blog'>
              <b:includable id='main' var='top'>

この上に参照元英語ページに書いてあるコードを追加します。
        <div class='column-center-outer'>
        <div class='column-center-inner'>
          <b:section class='main' id='main' showaddelement='no'>
            <b:widget id='Blog1' locked='true' title='ブログの投稿' type='Blog'>
<b:includable id='breadcrumb' var='posts'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType == "static_page"'>
<div class='breadcrumbs'><span><a expr:href='data:blog.homepageUrl' rel='tag'>Home</a></span> » <span><data:blog.pageName/></span></div>
<b:else/>
<b:if cond='data:blog.pageType == "item"'>
<!-- breadcrumb for the post page -->
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.labels'>
<div class='breadcrumbs' xmlns:v="http://rdf.data-vocabulary.org/#">
<span typeof="v:Breadcrumb"><a expr:href='data:blog.homepageUrl' rel="v:url" property="v:title">Home</a></span>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.isLast == "true"'>
 » <span typeof="v:Breadcrumb"><a expr:href='data:label.url' rel="v:url" property="v:title"><data:label.name/></a></span>
</b:if>
</b:loop>
 » <span><data:post.title/></span>
</div>
<b:else/>
<div class='breadcrumbs'><span><a expr:href='data:blog.homepageUrl' rel='tag'>Home</a></span> » <span>Unlabelled</span> » <span><data:post.title/></span></div>
</b:if>
</b:loop>
<b:else/>
<b:if cond='data:blog.pageType == "archive"'>
<!-- breadcrumb for the label archive page and search pages.. -->
<div class='breadcrumbs'>
<span><a expr:href='data:blog.homepageUrl'>Home</a></span> » <span>Archives for <data:blog.pageName/></span>
</div>
<b:else/>
<b:if cond='data:blog.pageType == "index"'>
<div class='breadcrumbs'>
<b:if cond='data:blog.pageName == ""'>
<span><a expr:href='data:blog.homepageUrl'>Home</a></span> » <span>All posts</span>
<b:else/>
<span><a expr:href='data:blog.homepageUrl'>Home</a></span> » <span>Posts filed under <data:blog.pageName/></span>
</b:if>
</div>
</b:if>
</b:if>
</b:if>
</b:if>
</b:if>
</b:includable>
              <b:includable id='main' var='top'>
この様になります。

コードを追加し保存すると Blogger のテンプレート編集の仕様が変ったのか、保存されていないとメッセージが出てしまいます。警告を無視して戻ってから再び編集を開くと breadcrumb ブロックは別の場所に移動された状態で保存されていました。また " は &quot; に » は &#187; にエンコードされていました。

これでトップページ以外を開けば投稿上部にパンくずリストが追加されているのが確認できると思います。ただ blogger のラベルには上下関係がない為このパンくずリストの階層は1階層までとなります。

また、複数ラベルがある場合は最後のラベルのみが表示される様で
<b:if cond='data:label.isLast == "true"'>
 » <span typeof="v:Breadcrumb"><a expr:href='data:label.url' rel="v:url" property="v:title"><data:label.name/></a></span>
</b:if>
全てのラベルを表示したい場合は、青文字で書いた部分を削除すると » で繋がれて表示されます。


途中、うまく行かなかった時にテンプレートの仕様を勉強したおかげで、テンプレートのコードが多少読める様になりました。

.net に例えるなら

<b:include data='posts' name='breadcrumb'/>
はメソッド呼び出しに相当し
b:includable
ブロックがメソッドの実装部分に相当
<b:includable id='breadcrumb' var='posts'>
はメソッドのシグネチャに相当します。

コードを読み解いて行くと、実装部分最初の
<b:if cond='data:blog.homepageUrl != data:blog.url'>
はトップページかを判定し、トップページの時はパンくずリストの作成を行わない様にしています。

次の
<b:if cond='data:blog.pageType == "static_page"'>
はページかを判定し、ページの時は Home と現ページタイトルのみを表示しています。私のブログの場合だと ClipTimer などは投稿ではない「ページ」になります。

そして
<b:else/>
<b:if cond='data:blog.pageType == "item"'>
で投稿かを判定し、パンくずリストの作成を行っています。

blogger のテンプレートには switch - case や else if に相当する物がなく、今は b:if をネストで書くしかない様です。コードの可読性以前に、複雑な処理はテンプレートで行うな、という事なのでしょう。

多少理解したついでに複数ラベルが存在した時の処理をカンマ(,)で繋ぐ様に変更して使っています。投稿リストの全ラベルを多い順に取得できれば2階層以上のパンくずリストも可能ですね。

■blogger pageType の種類
  • static_page (ページ)
  • item (投稿)
  • archive (月毎などのアーカイブ)
  • index (ラベルなどでの検索結果)

■参考リンク
Blogger 投稿ページにパンくずリストを表示する方法 - Breadcrumb for Blogger: LAB@Moon
Breadcrumb for Blogger - Blogger Widgets
レイアウト データ タグ - Blogger ヘルプ

■関連投稿
Blogger(ブロガー) 複数ラベルの AND 検索

2014年6月19日木曜日

Blogger(ブロガー) 複数ラベルの AND 検索

Google(グーグル) が提供している、このブログサービス blogger(ブロガー) にはラベル機能があり、各投稿をラベルで括る事が可能です。私のブログもそうですが「Android, ハードウェア」や「Android, ソフトウェア」の様に、1投稿に対して複数のラベルを付ける事もあるかと思います。

しかしながら標準で複数ラベルを指定する閲覧方法や検索ガジェットはありません。

ネットを検索すると、それらしいサイトが幾つか見つかりました。ラベルをクリックした時に表示されるアドレスに少し手を加えると可能な様です。

例えば私のサイトで「Android」ラベルをクリックすると「Android」ラベルの付いた記事全てが表示され、アドレスは以下の様になります。
http://h-pg.blogspot.com/search/label/Android
「/search/label/」の後ろに続く文字が検索ラベルという事です。

これを複数ラベルに対応させるには単純に複数ラベル名を半角 + で繋ぐだけです。「Android」と「OS」で検索したい時は
http://h-pg.blogspot.com/search/label/Android+OS
と入力すると両方のラベルの付いた記事のみが抽出されます。

ラベルに日本語や全角文字を使用している場合はエンコードが必要です。現在のブラウザーであればアドレスバーに直接入力すれば勝手にエンコードされると思います。

「Android」と「ハードウェア」両方のラベルの付いた記事のみ検索する場合はアドレスバーに
http://h-pg.blogspot.com/search/label/Android+ハードウェア
と入力すると実際には以下の様になります。
http://h-pg.blogspot.com/search/label/Android+%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2
リンクを作成したい時は Chrome であればアドレスバーに入力後コピーすればエンコードされた URL が取得できます。IE の場合は入力した文字がそのままコピーされるので別途エンコードが必要です。

Android > OS > Version
の様にそれぞれリンクを書けば、見た目はパンくずリストとなり amazon の様な絞込み検索にもなります。標準でパンくずリストがあれば良いんですけどね。

■関連投稿
Blogger(ブロガー) にパンくずリスト

2010年12月13日月曜日

Blogger での Google AdSense(アドセンス) の始め方

 このブログを始めた時からダッシュボード(ブログの管理ページ)に表示されている『収益化』タブについて色々と調べてみたら、グーグルのサイト管理者向け広告サービス AdSense(アドセンス) を自分のブログに表示する為の管理画面という事でした。

 数年前 AdSense を始めようと思い申請した事がありますが、その時は特に理由も分らないまま却下されていました。コンテンツ自体は健全なものだったので、特定のタグを使い過ぎているなど技術的な問題があったのかもしれません。
その点、このブログはグーグルのサービスの一つである Blogger(ブロガー) を利用しているのでそういった問題は全てクリアーしているのだと思います。

 Blogger からの申請はいたって簡単で直接 AdSense のページから申し込んだ時よりも分り易かったです。なお申請時の記事の量は 28 です。

申請手順は以下の通り…

まずダッシュボードから『収益化』のタブを開き、広告の位置を選択し『次へ』をクリックします。

AdSense アカウントを持っていないので『新しい AdSense アカウントを作成』を選択して『次へ』をクリックします。

『アカウントの種類』と『連絡先』を入力するページが表示されます。

『アカウントの種類』は個人で、『国または地域』は『日本』にします。
会社で申し込む場合は、既に個人アカウントを持っていて、ある程度実績のあるサイトを運営している場合なのだと思います。
『お支払い受取人の名前』の名字と名前の間は半角スペースです全角だとアウトとの事です。
ついでに『町村、番地』の住所と番地の間も半角スペース、建物名と部屋番号の間も半角スペースにしました。注意書きにあるとおり建物名は省略しないで書きました。

最後に各ポリシーを確認してチェック(同意)を付けます。

入力情報の確認ページが表示されます。ここで入力間違いがないか確認します。入力内容を変更したい場合は『アカウント情報の編集』ボタンをクリックすると前の画面に戻って変更できます。

AdSense 利用規約が表示されます。

ページの最後まで内容を確認してチェック(同意)を付けて『同意する』ボタンをクリックします。

これで Blogger から AdSense への申請が受け付けられました。最大でも48時間以内に申請結果が登録メールに知らされるという事が表示され、申請が承認されるまでの間は『公共サービス情報』の広告が表示されます。

申請中は『収益化』タブを開いても『ご使用の AdSense は承認待ちの状態です。』と表示されます。

午前に申請して午後には無事に承認されました。