このドキュメントでは、ガジェットを公開するためのさまざまなオプションについて説明します。Google Gadgets Editor (GGE) を使用してガジェットを作成し、ホストする場合は、ガジェットの公開が簡単になります。
ガジェットは次の場所のいずれかに設置できます。
すべてのガジェットがすべての環境に適しているわけではありません。特定の環境でどの機能がサポートされているかについて詳しくは、そのコンテナに関するドキュメントをご覧ください。
ガジェットを公開する前に、ガジェットが実行されるようになる対象環境の要件と制限を考慮して、ガジェットをテストする必要があります。
ガジェットはすべて、以下のテストを行う必要があります。
UserPref の値のすべての組み合わせを試します。makeRequest() を使用している場合、データ ソースがダウンしたときやエラーを返したときにどうなるかをテストします。これをシミュレートするには、URL を一時的に別の URL. に変更します。
ガジェットのサイズは、ガジェットを実行するスペースの大きさによって異なります。詳しくは、そのコンテナのドキュメントをご覧ください。
ガジェットの設計とテストの際に、200 ピクセルから、600 ピクセルまでの任意の幅に対処できるようにします。ガジェットによっては、幅をさらに広くする必要があります。より大きいスペースが提供された場合も、通常正しく表示されるように、ガジェットを設計します。たとえば地図のガジェットは、そのスペース全体を埋める必要があり、画像のガジェットはそのフレームの中心に画像を配置する必要があり、テキストのガジェットはテキストを上部に表示する必要があります (たとえば通常、最下部に表示される詳細を表示するためのリンクは、ガジェット ウィンドウの最下部ではなく、コンテンツの近くに表示する必要があります)。
大量のトラフィックが予想されるガジェットを作成する場合、利用できる状態とよいパフォーマンスを保証するための手順があります。1 日に 20 万件以上利用されるガジェットや、約 1 秒間に 1、2 件のリクエストがあるガジェットの場合、このセクションの下記のヒントを検討する必要があります。50 KB のガジェットでも、1 日に 20 万件のリクエストがあれば、1 か月に約 300 GB の帯域幅を消費します
ガジェットが多数のユーザーをひきつける理由はさまざまです。コンテンツ ディレクトリでただ人気が高いからである場合もあります。ガジェットが特別なプロモーションや広告で使用される場合、トラフィックが増加することがあります。
トラフィックの多いガジェットの場合、0.25 秒 (250 ミリ秒) 以内で表示されることを目標とする必要があります。これを測定するには、Firebug (Firefox のみ) を使用します。ガジェットの応答性を改善することは、ユーザーの利用によい影響を与える確かな方法です。ガジェットのパフォーマンスを最適化するヒントは、大量のトラフィックの最適化をご覧ください。管理のヒントは、大量のトラフィックの管理をご覧ください。人気の高いガジェットにとって、一般的なテストのガイドラインも特に重要です。
作成するガジェットに大量のトラフィックが予想される場合、次のガイドラインに従ってください。
type=html ガジェットを使用します。type=url のガジェットは、他のホスティング サーバーに対するパフォーマンスとキャッシュのサポートがよくないために、type=html ガジェットより表示に時間がかかります。 makeRequest() メソッドは、デフォルトで約 1~2 時間、コンテンツをキャッシュします。refreshInterval パラメータをそのメソッドに使用すると、キャッシュをより頻繁に更新できます。ただしキャッシングによって、コンテンツをホストしているリモート サーバーへのリクエストの回数が最小限に抑えられ、ガジェットのパフォーマンスが向上します。キャッシュを必要以上に更新しないようにして、キャッシュを使用するリクエストの割合が減らないようにします。このトピックに関して詳しくは、キャッシュの更新をご覧ください。 http://www.google.com/ig/directory?url=<gadget-url> を使用して、1 週間のガジェットのページビューを調べます。<img> タグについて高さと幅を指定します。これによって、ガジェットの表示が早くなります。gadgets.io.getProxyUrl() を使用して、画像要素を直接 DOM に挿入している場合は、幅と高さのプロパティを設定する必要はありません。 gadgets.io.getProxyUrl() 関数を使用して埋め込み画像をすべてキャッシュし、embedCachedFlash() 関数を使用して Flash コ テンツをキャッシュします。 gadgets.io.getProxyUrl() を使用して画像をプリロードするガジェットの例を、次に示します。gadgets.io.getProxyUrl() の使用方法を示すサンプル ガジェットを次に示します。
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Zombies!" height="350" />
<Content type="html">
<![CDATA[
<div id="zombiecontainer"
style="text-align:center;">
</div>
<script type="text/javascript">
var counter = 0;
// Preload the images using gadgets.io.getProxyUrl()
function load(imageList) {
var ret = [];
for (var i = 0, j = imageList.length; i < j; ++i) {
var img = document.createElement("img");
img.src = gadgets.io.getProxyUrl(imageList[i]);
ret.push(img);
}
return ret;
}
var files = [
"http://gadget-doc-examples.googlecode.com/svn/trunk/zombie-0.jpg",
"http://gadget-doc-examples.googlecode.com/svn/trunk/zombie-1.jpg",
"http://gadget-doc-examples.googlecode.com/svn/trunk/zombie-2.jpg",
"http://gadget-doc-examples.googlecode.com/svn/trunk/zombie-3.jpg",
"http://gadget-doc-examples.googlecode.com/svn/trunk/zombie-4.jpg",
"http://gadget-doc-examples.googlecode.com/svn/trunk/zombie-5.jpg",
"http://gadget-doc-examples.googlecode.com/svn/trunk/zombie-6.jpg"
];
var images = load(files);
browse();
// Browse through photos sequentially. When you get to the end of the array, start over.
function browse(){
if (counter == images.length)
{
counter = 0;
}
document.getElementById("zombiecontainer").innerHTML = "";
document.getElementById("zombiecontainer").appendChild(images[counter]);
counter++;
}
</script>
<br />
<div style="text-align: center;">
<input type=submit value="Next ->" onClick="browse()">
</div>
]]>
</Content>
</Module>
次のガイドラインは、大量の処理が必要なガジェットの管理に役立ちます。
<username>.feedback+<gadgetname>@gmail.com の形式のアドレスを使用することをお勧めします。これによって、ガジェットのユーザーから受信したメッセージをフィルタにかけることができます。Gmail では、プラス記号 (+) の後はすべて切り捨てられます。したがってこのメール アドレスは <username>.feedback@gmail.com となります。Gmail には高品質のスパム フィルタがあります。 ガジェットを設計、実装、テストした後、Google にガジェットを送信して、iGoogle コンテンツ ディレクトリに公開できます。このセクションでは、ガジェットの公開の準備に必要な一般的な手順について説明します。
リファレンス には、ガジェットに関する「メタ」情報の提供に使用できるすべての <ModulePrefs> 属性の一覧を示しています。ガジェットのスペックに含める必要のある情報は、次のとおりです。
helensmith.feedback+coolgadget@gmail.com の形式のメール アドレスを使用することも 1 つの方法です。Gmail では、プラス記号 (+) の後はすべて切り捨てられます。したがってこのメール アドレスは helensmith.feedback@gmail.com となります。こちらで、Gmail アカウントを作成できます。 robots.txt によるブロックが行われていない、公開されているウェブサイト上にある必要があります。PNG が推奨フォーマットですが、GIF や JPG も使用できます。ガジェットのスクリーンショットの幅は 280 ピクセルにする必要があります。スクリーンショットの高さは、ガジェットの使用時に「自然な」高さにする必要があります。これによってユーザーは、ガジェットを自分のページに追加する前に、ガジェットが画面上に占めるスペースの大きさを把握できます。スクリーンショットでは、ガジェットの青いヘッダー バーの上に空白が入らないようにする必要があります。スクリーンショットには、タイトル バーも含めてガジェット全体を示し、それ以外のものは含めないでください。編集ウィンドウを開いた状態でガジェットのスクリーンショットをとることもできます。スクリーンショットのサイズの変更や、トリミングはしないでください。品質や一貫性の維持のために、どのガジェットも Google が独自のスクリーンショットをとる場合があります。robots.txt によるブロックが行われていない、公開されているウェブサイト上にある必要があります。PNG が推奨フォーマットですが、GIF や JPG も使用できます。サムネイルは 120x60 ピクセルにする必要があります。タイトル バーは含めないでください。 開発者のページへの表示を希望する場合は、次の追加のフィールドを含めることができます。
セキュリティ リスクを最小限に抑えるように、ガジェットをコーディングしたことを確認します。
すべてのガジェットが、すべての環境で実行できるわけではありません。ガジェットによっては、実行に特定のブラウザまたはソフトウェアが必要な場合があります。<ModulePrefs> の下に <MayRequire> タグを使用して、ガジェットの特別な要件に関する情報を指定できます。詳しくは、互換性要件の指定をご覧ください。
<ModulePrefs> の下に <Locale> タグを使用して、自分のガジェットが対応するロケールを指定できます。詳しくは、ロケールの指定をご覧ください。
ガジェットの利用を促すために、[Google に追加] ボタンをガジェットに追加することを検討します。
ガジェットはこちらから Google に送信できます。Google Gadget Editor の [File] > [Publish] コマンドを使用して、ガジェットをコンテンツ ディレクトリに送信することもできます。ディレクトリ内で自分のガジェットを探す方法や、その配置がどのように決まるかについては、Gadgets API FAQ をご覧ください。
異なる URL にあるガジェットの複数のバージョンを送信して、正式なバージョンを 1 つ指定したい場合、Submit an Alias Request ページを使用します。