蒼水家技術録

蒼水が普段制作とか勉強とかして覚えたことを復習としてまとめてるものです。 それが最適解かどうかはわからないけど、何を目的として始めて、何が必要で、実際何をやって、どうなったか、まで全部過程を残すための技術ブログです。

Unity VFX編 #25 Vertex Streams (Custom Data)を使用してモーショングラフィックスのエフェクトを作成する

どうも蒼水です。
今回は前回の記事で基本的なことを理解したであろうVertex Stream (Custom Data)を使用して実践的なエフェクトとしてよくある円形のモーショングラフィックスを作っていきます。
前回の記事はこちらからどうぞ。
atelier-aomi.hatenablog.com
実行環境:Unity6(6000.1.17f1)

今回の目的


今回は前回ざっくりと作っていたものをブラッシュアップして実際に使えそうなモーショングラフィックスのようなエフェクトをVertex Stream (Custom Data)を使用して作ることで実践的な制作手法を理解することを目的とします。
最終的には上動画のようなものを作ってみました。

エフェクト用メッシュの用意


今回のエフェクトには標準のBillboard(Quad)ではなく自作したメッシュを使用するエフェクトとなりますので、上画像のようなモデルを作成します。
テクスチャはAlpha Clippingの制御のための仕様でこのように作成しています。
Vertex Streamでクリッピングするしきい値を制御するためこのような作りになっています。

Rendererモジュールの設定


今回は自作のメッシュを使用するのでRender ModeをBillboradからMeshに切り替え、Meshesに先ほどのメッシュを参照させます。
次に前記事で説明した通りCustom Vertex Streamsにチェックを入れ、Custom1/2を追加しておきます。

Custom Dataの設定


本エフェクトはCircleMeshを2つで表現するエフェクトとして作成するのでそれぞれをCustom Dataを画像のように設定しました。
Custom1の方ではCustom1.xでAlpha Clippingをカーブで設定することでLifetimeの後半になるほど円の幅が細くなるように制御することができます。
なぜそうなるのかは以前Shader編で解説しているシェーダーを使用していますのでそちらを参考にしてください。
<リンク>

Size Over Litimeの設定


よくあるモーショングラフィックスでは円が広がりながら細くなって消えていくのでLifetimeが進むにつれて大きさが大きくなるようにするために上が像のように設定することで広がりながら消えていくような挙動を作成することができます。
最初の方で急激に大きくさせて、後半ほど緩やかにすることで緩急をつけたりすることもできます。こういった挙動のほうが見ていて気持ち良い挙動にできるのでオススメです。

Shapeの設定


これはちょっとおまけ的な話なのですが「常に一点から出したい」という場合、Shapeモジュールの設定でShapeをSphereにして、Radiusを0.0001といった極限まで小さくすることで常に同じ場所からエフェクトを出すことができます。これはあらゆるエフェクトで結構使うテクニックなので覚えておくと何かと使えるのでオススメしておきます。

おわりに


というわけでほか細かい設定は割愛しますがこのようにVertex Stream (Custom Data)を使用した実践的なエフェクトを作成することができました。
これはあくまで一例なのであらゆるエフェクト制作で使ってみてください!Vertex Streamは理解さえできれば神機能です。

本エフェクトはBOOTHで販売中です!
もしご興味ある方はぜひご購入をご検討ください!
商用利用・改変ご自由にどうぞ!色やサイズなどを調整してご利用ください!
atelier-aomi.booth.pm

次回記事

<記事ができ次第追加>

Unity VFX編記事一覧はこちらからどうぞ。
atelier-aomi.hatenablog.com

<PR>

Unity Shader編 #29 ParticleSystemのVertex Streamに対応したシェーダーを作成する

どうも蒼水です。
今回はParticleSystemのVertex Streamと連携できるように実装したシェーダーの作成方法の解説を行っていきます。
前回の記事はこちらからどうぞ。
atelier-aomi.hatenablog.com

前提となっている関連記事としてこちらも併せてどうぞ。
atelier-aomi.hatenablog.com

実行環境:Unity6(6000.1.17f1)

今回の目的

今回は上記のVFX編の記事の関連記事です。
ParticleSystemにはVertex Stream (Custom Data)があるのですが、これは対応したShaderを用意する必要があります。
その対応したShaderの作成方法について本記事で詳しく説明していきます。
なお、ShaderGraphによる作成方法とコードベースでの作成方法をそれぞれ解説します。
関連記事のこちらも併せてご覧ください。
atelier-aomi.hatenablog.com

ShaderGraphでの作成方法


ノード構成としては上画像のようになります。作成するエフェクトによって実際のノード構成は変わるとは思いますが、その中でも共通となる部分について解説します。

UV1/2を使用する


ParticleSystem側から送られてくるCustaomDataの情報はUV1/2に格納されますので、UVノードを使用してそれらのデータを取得します。
ChannelからUV1/2を選択して使用できますので自分があらかじめ用意したCustomDataに合わせてノードの設定を行います。

またSwizzleノードを使用することでUV1.xyzwの4チャンネルのうち必要な情報だけを取得することができます。
Swizzleノードについての公式リファレンスはこちらからどうぞ。
docs.unity3d.com

Custom Dataを透過情報として使用する



今回はCustom1.xの情報を透過に使用したいのでSwizzleでxを使用することでClipping具合の挙動を制御できるようにしているのがこの部分です。

Custom DataでColorを使用する



Custom2ではColorを設定していますが、これもUVノードから取得することができUV2に格納されているのでそれをそのままBase Colorにぶち込むことでColorとしてそのまま使用することが可能です。
もちろんテクスチャと乗算したりすることも問題なくできます。

つまり、覚えておくべきことはCustomDataで設定したCustom1/2はUVノードから取得すればOK!ということです。
他の部分は作成するエフェクトによってノード構成は変わってきますが、根本の部分であるここは変わりませんのでここだけ抑えておきましょう。

コードベースでの作成方法

コードでも基本的にはUVから取得すればOK!ということは変わりませんので以下のように実装していきます。

AttributeにUV1/2を追加する

Vertex Streamで送られてくるデータを受け取るAttributeとVertex/Fragment Shaderへの入力としてVaryingsに以下のように追加します。
注意点として、UVは基本float2ですがCustomDataは最大float4のデータを受け取ることになるのでfloat4で宣言します。

struct Attributes
{
    float4 vertex : POSITION;
    float2 uv : TEXCOORD0;
    float4 color : COLOR;
                
    float4 customData1 : TEXCOORD1; // 追加
    float4 customData2 : TEXCOORD2; // 追加
                
    UNITY_VERTEX_INPUT_INSTANCE_ID
};
            
struct Varyings
{
    float4 pos : SV_POSITION;
    float2 uv : TEXCOORD0;
    float4 color : COLOR;

    float4 customData1 : TEXCOORD1; // 追加
    float4 customData2 : TEXCOORD2; // 追加
                
    UNITY_VERTEX_INPUT_INSTANCE_ID
};

Vertex / Fragment Shaderでの処理

まずVertexShaderでCustomDataにデータをセットします。

Varyings vert(Attributes IN)
{
    Varyings OUT = (Varyings)0;

    // 他は割愛
                
    // CustomDataをフラグメントシェーダーに渡す
    OUT.customData1 = IN.customData1;
    OUT.customData2 = IN.customData2;
                
    return OUT;
}

あとはFragmentShaderの方でCustomDataを使用できます。

float4 frag(Varyings IN) : SV_Target
{
    float value = IN.CustomData1.x;
    float4 finalColor.rgba = IN.CustomData2.xyzw:

    // 他は割愛
}

おわりに

繰り返しになりますが、とにかく覚えておくべきことはCustomDataで設定したCustom1/2はUVノードから取得すればOK!ということだけです。ね?簡単でしょう?
後は目的に合わせて自分のシェーダーを組み上げていきましょう!

次回記事

<記事ができ次第追加>

<PR>

Unity VFX編 #24 ParticleSystemのVertex Stream (Custom Data) を理解する

どうも蒼水です。
今回はVFXGraphではなくParticle Syetem(Shuriken)にあるVertex Stream (Custom Data)を触りつつ理解することを目的とします。
前回の記事はこちらからどうぞ。
atelier-aomi.hatenablog.com
実行環境:Unity6(6000.1.17f1)

今回の目的


Particle Syetem(Shuriken)にはVertex Stream (Custom Data)というものがあるのですが、これはエフェクトを触り始めた人にはちょっととっつきにくく、理解も難しい概念なのでこれについて実際に触りながらどういうものなのか、どういう挙動をするのか、といった部分の理解を深めていくことを目的とします。
上画像のようにVertex Stream(CutomData)を使用することで既存モジュールで対応しきれないHDRカラーの使用や、追加的なデータを扱うことができたりします。
この辺の実践的な話は次回実践編として執筆するので今回は基本的な概念の理解を優先的に扱っていきます。

Vertex Streamって何?

一言でいうならば「Particle Syetem(Shuriken)からShaderで処理するためのデータを送る」機能です。
いや、わからん。と思いますし、自分も理解するまでちょっと時間かかりました...。

言葉ではまるで意味が分からんぞ、となりますがなぜこれがわからんになるかというとシェーダーの知識が必要になってしまうためです。
シェーダ―を作れる人ならば割とすんなり理解できるのですがこの前提がない場合は理解に苦しんでしまうわけです。
ここでShaderとParticle Syetemの関係性、データの流れについて一旦図で見てみましょう。

図の通りParticle Syetemで設定できるCutom Data1/2をShaderのAttributeのTexCoord1/2に対して送信、格納することができます。これがVertex Stream機能を使ったときに起こっていることです。
そしてこれらのデータを受け取ったデータを使用してVertex/Fragment Shaderでこれらを入力として処理を実装することができます。

Vertex Stream(Custom Data)を有効化する


この機能を使用するためにはRendererモジュールの中にあるCustom Vertex Streamsにチェックを入れます。

次に、その下にあるアトリビュート一覧の右下の「+」ボタンからUV2を追加し、UV(TEXCOORD0.xy)の残りの.zwを埋めます。
次にCustom1/2を追加します。必要なチャンネルだけ追加すればOKです。

対応したShaderを用意する


Vertex Stream(Custom Data)を使用するためにはなんとまぁ対応したシェーダーを用意する必要があります。
これもまた難解になる理由のひとつですね。なぜ標準でないのか...。
とりあえず本記事では上画像のようなシェーダーを用意しました!という程度にとどめておきますが、要するに前項で用意したCustom1/2、つまりUV1/2を使用するシェーダーを用意すればOK!という認識をしておけば問題ありません。
シェーダ―については本記事を前提としてShader編の方で詳しく解説します。
atelier-aomi.hatenablog.com

Custom Dataを設定する


次にCustom Dataモジュールを有効化し、設定していきます。
今回はCustom1にVector4を、Custom2にColorを設定してみました。
ここで設定した情報は前述のとおりCustom.xyzwそれぞれのチャンネルに格納され、Shaderに渡されます。
ColorについてもRGBA値がCustom2.xyzwに格納され、Shaderに渡されます。なおUV0が通常使用されるUVであり、1以降は追加的なデータになります。



ここで設定できるデータはほかのモジュールなどと同様にConstantやCurve、Gradientなどが使用できます。
そしてなによりCustom Dataを使うことのメリットとしてColorがHDR対応されている!ということですね。
他のモジュールではなぜかHDR対応されていないのですが、CustomDataのColorはHDR、使用できます!それもLifetimeと連動もしているのでなんとまぁ便利。神です。

そんな感じでおためしで組んでみたものとしてこんなものを作れますよ、というとこで今回は一旦終わりにします。
詳しくはこのエフェクトをベースとしたモーショングラフィックスのような円のエフェクトを実際に作ってみる実践的な記事を執筆出来ればと思います。

おわりに

この記事を通してVertex Streamを理解してエフェクト制作の幅を広げる力になれれば幸いです!
本記事だけでは完結にはならないので後日Shader編としてVertex Stream対応Shaderの作り方とVFX編の次記事として実践的なVertex Streamを使ったエフェクトの解説記事を執筆しますのでお楽しみに。
atelier-aomi.hatenablog.com
atelier-aomi.hatenablog.com

年始挨拶 - 2026 -


新年あけましておめでとうございます。
本年もよろしくお願いいたします。
というわけで今年1年の抱負というかちょっと今考えていること、目標とかを書いておこうかなと思います。

2026年の目標

今年は去年に引き続き継続!どんどん記事を執筆していくのはもちろんですが、アセット販売の方をどんどんしていきたいかなと思っていたりします。
販売するものはまずは主にエフェクトを考えていますが、中長期的にはいろんなものを追加していきたいとは思いますがまずはエフェクトから。
なお、以前販売していたキャラモデルの販売・再販はやらない予定です。

というわけで目標の1つ目は「アセット販売を拡大させる」です。
根本にあるのは個人事業としての事業拡大にはなるのですが、昨年は試しにアフィリエイトリンクを配置してみたりはしてみたんですが、少しクリックされはするもののまぁ買われないんですよね。
まだ入れ始めて1.2カ月くらいではあるのでこう少し様子見はしようとは思うのですが、他人の物を売るより自分のもの売りたいよねと思うわけですよ。だって自分で売れるもの作れるんだからさ。
出来るだけ実用的なものを制作しつつ記事も書いて、さらに販売していければと思いますのお楽しみに。
記事を見て自分で作ってみるもよし、お手軽に買ってしまっても良し、みたいなスタイルを予定しています。

目標の2つ目は「月間5000PV = 年間60000PV」ですかね。
なんで5000PVなのか、というと年末の総括記事にも書いたんですがPV数は統計開始してから右肩上がりに増加しています。そのうえで5000PVなら現実的に狙えるラインじゃね?と思ったためですね。
12月は約3000PVです。つまり1年で2倍にする、ということ。いけるといいなぁ(願望)
ちなみに、SEO対策ガチり初めの当初は月間500PVくらいだったっぽいんですが、12月が3000PV超えてきてるので4か月で6倍は草、って感じなのでじゃあ1年かけたらどうなるのか、と。いける...か...?(昨年書きまくってたエフェクトとシェーダーの記事がインデックスされてなかった問題によるブーストもあっての6倍ではあるが...。)
なお、PV数の増加は前述のアセットを買ってくれるかもしれない絶対数を増やすとともにAdSense広告のインプレッション数にも寄与します。ので収益面においてはやはり重要な指標であることは確かなのでここはどんどん強化していきたいところですね。

直近の執筆予定

とりあえず直近1~2か月くらいはもう書くことが決まっている、というかある程度は既に執筆済みでストックしてあったりはするんですが

  • Unity UI編の開始
  • Unity Tips編の強化

を考えています。
新シリーズになるUI編、始まります...!
あとTips記事、意外と記事まだ少なくて6記事しかなくて悲しくなったのでこっちもちょいちょい強化していきたいかなと。
あとはエディタ拡張編もシリーズで書こうかなと思っていたり。まだ手つけられてないけども。あと非同期処理とかも...。
Unityの技術的な話、書けること無限にある。

おわりに

今年は前述の2つの目標を軸にどんどん活動していければと思いますので本年もどうぞよろしくお願いいたします!
止まるんじゃねぇぞ...。10年くらいは継続したい(願望)

年間活動総括 - 2025 -


どうも蒼水です。2025年もあとわずか、今年もお世話になりました。
今年最後の記事投稿です。

さて、技術ブログ執筆再開からあっという間に1年ちょいが過ぎました。
ということでとりあえず1年継続ということで今後はこの1年を振り返ることが可能となったので毎年年末は挨拶も含め年間活動総括というものを書いていこうかなと!
具体的には今年一年の総括と弊サイトの数値的なあれこれをメモしておくためのものです。毎年記録していくことで比較しやすくしておくことを目的としています。毎年記録して去年の自分と比べてどれくらい成長できたか?を実感しよう!というやつ。

2025年総括

今年はとにかく継続!習慣化!という感じですね。
復帰して執筆するだけでも偉い!と言ってもよいかもしれませんが、継続出来て初めて自分をちゃんと褒められるかなと思っています(自分に厳しい)
そのための習慣化をしてきましたが、無事習慣化されていて土日の週2更新も日々のルーティンと化し普通に毎週こなしています。
習慣化、最強なのですよ。習慣になるまで何が何でも継続し続けることでやらないことが気持ち悪い状態にまで持っていければ勝ちです。
つまり勝った、ということ。今年は勝ちです。

そして何より今年はGoogle AdSenseの審査通過したことが一番大きな成果だと思っています。
9月から収益化を開始しており、本ブログにもAdSense広告を掲載できるようになり少しずつですが収益は出始めています。
とはいえまだまだ3か月くらいなので大した額じゃないです。雀の涙(9月から現在までで数百円とかそういうレべル)
でも、こうやって何かしらインセンティブがあることはやはり自分にとって継続のためのモチベーションにはなりますね。
今は小さい額だけど、これからもっと継続して、記事が積み重なっていき、誰かの助けになることができて、PV数や収益もじわじわ上がっていく。

このAdSenseの開始によって起こった変化もあったりします。
収益化にあたってやはりその収益はより高くしていきたいわけで...。
そのためにGoogle AnalyticsやSearch Consoleといった統計解析ができるものの使用を本格的に開始することになりました。
これによってどの記事がどれくらい読まれているんだろうか?見に来てくれる人はどこからどういった経路で見に来てくれているのだろうか?
逆に全然読まれていない記事は何だろう、どうしたら改善するだろう。。。といったとにかくより良いものにするための行動をするようになりました。
とにかく収益化後はそれまでにないモチベーションの高さを誇っていると思います。
今年前半は週1更新だったものが秋前頃から週2更新になったのもそれが影響していたりします。
週1から週2にするだけで毎年蓄積する記事数、そのための勉強量、それらが単純に2倍になるわけです。
やったもん勝ちのこの世界...。誰よりも強くなるためにどんどんやって強くなろう。そんな感じの今日この頃、という感じで今年の年間活動総括とさせていただきます。

実際の数値的なあれこれ

さて、毎年年末時点での今年のいろんな数値をメモ程度に書いておこうと思います(*投稿日:2025/12/28時点)
これらのデータはGoogle AnalyticsやSearch Consoleのデータをベースとしています(*AdSenseについては具体的な収益に関わるため非公開とします。)
データの収集開始は今年の9月~のためそこからの開始となっています。

投稿記事数


本記事を含めると1年で60記事書いているらしい。
ちなみに例年1月はちょっと忙しく今年は更新できてなかったのが今年です...。(体調も崩してたのもありますが)

アクティブユーザー(YAU)


アクティブユーザーはなんぼいても良いですね。
統計開始してからというもの記事の増加につれてみてくれる方もどんどん右肩上がりに増えていることがわかりますね。

ユーザー推移(移動平均)もメモ程度に置いておきます。
こちらも右肩上がりに増えていますが、30日平均で見るとまだ期間は全然足りていない&初期なので右肩上がりなのはまぁ当然、という感じですね。
まぁとはいえどんどん増えていることは事実ではあります。

ページビュー数(年間PV数)


言わずと知れたPV数。
アクティブユーザーの数よりも2倍以上の数値となっているということは1ユーザーあたり複数以上のページを見てくれていることがわかりますね。
1つの記事だけ見ておしまい!ではなく、関連した記事も見ていただけている、と考えると大変ありがたいですし、リーチするターゲットに適切な情報を適切なタイミングでしっかり提供できているのかなと思っています。

直帰率


直帰率は1ページだけ見て離れてしまう割合なのでこれは低ければ低いほど良いですね。
前項の通り、1ユーザーあたり複数のページを見てくれているというように、弊サイトの直帰率は一般的な数値よりも低いようです。ええ感じですね!

検索パフォーマンス


特筆すべきなのはこの検索パフォーマンスですね。
現状弊サイトは平均掲載順位6.5位なのに対してCTRは6.6%を誇ります。
一般的に6~7位くらいでは3~4%が平均的なようで、その環境の中での6.6%という数値は客観的にも非常に優秀で4~5位のレベルに匹敵しています。
これもしっかりとユーザーの求めている情報を適切に提供し、Googleからも評価してもらえているのかなと思っています。


また、掲載順位はじわじわと上がっており、ここ1か月で見ると掲載順位6.3位、CTR7%にまで上がってきています。
実際のユーザーのアクションによってGoogleはサイトを評価しているらしく、直帰率が低かったり、何かしらのイベントを多く起こしたりといったポジティブな行動をすることで評価が上がっていくらしい?(Geminiがそう言ってた)


ちなみに、弊サイトというか自分自身のSNSがそんな強くないもんで検索結果にかなり依存しているのでSEO対策にかなり力を入れていたりします。
その結果としてちゃんと結果を出すことができているので方針的には間違ってなさそうかなと。

あとSearch Consoleには実績というものがあって今年はここまで達成できたらしい。

Google検索に関する情報の参考
firstpagesage.com

おわりに

改めまして、本年も大変お世話になりました。
来年も引き続き蒼水家技術録をどんどん成長させていきますので今後とも頭の片隅にでもひっそり見守っていただけますと幸いです。
収益がそれなりになってくるまでにはかなり時間かかるだろうから無理せずコツコツと積み上げていきたいですね。

2026年の抱負はまた年明けに改めて年始挨拶として投稿できればと思います!
それでは良いお年を!

Unity Tips編 #逆引きまとめ

Unity Tips編記事の概要の逆引きでまとめていますので目的に応じてご利用ください。
記事が更新されるたびこちらのまとめ記事も随時更新されていきます。

Unity標準機能解説関連

Animation Rigging の使い方を知りたい

▶Animation Riggingの使い方はこちら
atelier-aomi.hatenablog.com

キャラクター制御関連

入力制御関連

執筆予定

UI制御関連

執筆予定

スクリプト / エディタ拡張関連

動的にオブジェクトの親子関係を制御する方法を知りたい

▶動的なオブジェクトの親子関係の制御についてはこちら
atelier-aomi.hatenablog.com

AI編 #3 AIと伴走する開発効率化 -ClaudeでAdSenseとAnalyticsのデータ収集をGASで自動化する-

どうも蒼水です。
9月からAdSenseとAnalyticsを使用しているのですが、これらを1か月単位でデータ収集して記録しておきたいなと思いClaudeに頼んで自動化したときのメモです。
前回の記事はこちらからどうぞ。
atelier-aomi.hatenablog.com

今回の目的

AdSenseやAnalyticsはそれ単体でもデータの収集は見れたりはするんですが、都度何時から何時までの期間を指定してみたいときにめんどくさかったので毎月1か月分のデータをスプレッドシートにまとめてくれないかな...
と思ってしまったので自動化しよう!ということでClaudeに作らせて自動化すること目的とします。
そしてその過程で何を聞いてどうやったのか、という流れをざっくりとメモ程度にまとめておこうと思います。

そもそも何から始めればよいのかわからん

やりたいことは決まっている。しかし前提知識がなくて何から始めてよいのかなにもわからない...。
そういったときはClaudeに目的を伝えてどうすればよいか導いてもらうことがおすすめです!

自分の場合はこんな感じにClaudeに訊いてみました。

この回答のおかげでどうすればよいのかなんとなくわかってきますね。
AdSenseとAnalyticsは両方ともAPIが提供されているのでそのデータをもとにGoogle Apps Script(GAS)を使ってデータ収集すれば良い、とっかかりがまずできました。

APIはどこからどう使えばよいのかわからん

どうすれば良いのかは分かったけどそれって具体的にどうやって使うねん!という話ですね...。

これもわからないならClaudeに訊いてしまいましょう。

なるほど、Google Cloud Consoleというものがあるのか、と分かりました。

各種APIを有効化する



言われた通りサクッとGoogle Cloud Consoleのアカウント作成とプロジェクトの作成を行いこの2つのAPIを有効化することができました。
これでAdSenseとAnalyticsのデータを収集する準備ができたわけですね。

スプレッドシートを紐づけを行う

この後GASのコードを書いてもらいますが、その前に収集先のスプレッドシートが必要になるのでそれを用意しておきます(とりあえず空のシートでOK)
そしてその集計先のシートとGASの紐づけを行うためにIDをClaudeに提供します。
このIDがあることでClaudeが書いてくれるGASのコードに反映してくれます。

収集するデータ群の確認

APIを通じて何が取得できるのかClaudeにとりあえず出してもらって要望を出すことでClaudeがGASのコードに記述するデータ群を指定します。

AdSense / Analytics との連携

APIを使用するにあたりこれらそれぞれのIDも必要になるとのことだったのでこれらもClaudeに提供します。
これらもGASコードに反映され、APIを通じて情報取得できるようになります。
これで事前に必要な準備と、各種情報が整ったのでClaudeがGASコードを作成してくれるようです。

GASの作成と実行

Claudeがコードを書いてくれたのでそれをGASにコピペします。
この状態で一度実行することで認証画面が出るので権限を許可することで各種データの取得をすることができました。

毎月実行されるように設定する

実行するGASは作成できたのでこれを実行するトリガーの設定を行います。
毎月自動集計を行いたいのでClaudeに用意してもらったrunMonthry関数を指定します。
自動集計時点で対象月の全ての日が〆ってる必要があるので対象月翌月の1日の0~1時にこの関数が実行されるようにトリガー設定を行いました。
これにより紐づけたスクレッドシートにAdSenseとAnalyticsのデータが毎月1日に自動収集できるようになりました。

実際に収集されたデータを確認してみる

さて、この仕組みを導入してからある程度経ったのでちゃんと動いているか見てみましょう。毎月シートが追加されていることがわかりますね。
データの推移をグラフにしてもらうところまで自動化しています。神ですね。
AdSenseとAnalyticsはそれぞれ別のシートで管理していますので画像はAdSense側のもののみ)

おわりに

Claudeくん有能すぎんか...。もうワイは何もしなくとも勝手にシート作って統計とっておいてくれる...神...。
今まではUnityのコード書いてもらってばかりだったのでGASを書かせたのは初めてでちょっと新鮮。
GASに関しては自分は全くの無知の状態からものの数時間くらいでここまでやれてしまったのでなんもわからん...。というときでもとりあえずAIに訊いてみる!ということをするのはかなりおすすめしたいですね。
わからないことがあればとりあえずAIに訊ける、ええ時代や。
でもAIも言ってること全てが正しいわけではないことには気を付けて有効に使っていきましょうね。

次回記事

<記事ができ次第追加>