0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バーチャルキャスト公式わんコメプラグインで広告などを取得する

Last updated at Posted at 2025-04-07

サイト別設定の書き出しは推奨しません!!

最新のわんコメではサイト別設定から
・ニコニ広告
・引用
・クルーズ
・リクエスト
・配信延長
・ランクイン
・ランク変動
・来場
・アンケート
・配信終了時刻通知
の情報がプラグイン経由で書き出すことができる


しかし4月7日現在この情報を送信するとほとんどのVCIではエラーが出てしまい、正常に動かなくなってしまう。
今後公式がどのような対応を取るかは不明だが、一応対策を取っておきたい、または対応しておきたいという人のために記録として書いておきます。


今回はこの中から扱いが特殊な「ニコニ広告」について説明します。
まずニコニコ広告を送った場合どのような情報が送られるか見ていこう!

ニコ生ギフトAPIの場合

{"id":"ni-nicoad-EhoKEgkbe7lNfg-WARHZux17-MrnmBDA8ZvLAQ",
"liveId":"system",
"userId":"onecomme.system",
"name":"ニコニコ",
"timestamp":{"year":2025,"month":4,"day":7,"hour":18,"minute":4,"second":18,"ms":425},
"isOwner":false,
"hasGift":true,
"comment":"【広告貢献1位】悠里さんが100ptニコニ広告しました",
"displayName":"ニコニコ",
"profileImageUrl":"(省略)",
"type":"niconico-gift"}

共通受信APIの場合

{"type":"niconico-gift",
"author":"ニコニコ",
"comment":"【広告貢献1位】悠里さんが100ptニコニ広告しました",
"timestamp":{"year":2025,"month":4,"day":7,"hour":18,"minute":4,"second":18,"ms":425},
"iconUrl":"(省略)"}

という情報がそれぞれに送られています


ギフトの場合は"price"のデータも一緒に送られるのですが、広告の場合"price"の情報がないデータがギフト用のアドレスとして送信されているのです。

つまりVCIのスクリプト上で"price"を参照する処理を入れているとそこでエラーが出てしまうということなんですね。


これを回避するためにはどうすればいいのか、というと

①そもそも"price"を参照しない

または、

②"price"があるときだけ実行する

json.parseでOSCのデータを展開するときに例えば

local oscData = json.parse(content)
if oscData.price ~= nil then
    --処理を書く
end

のようにする


では逆に広告が来たときに演出などを発生させたい場合は

local oscData = json.parse(content)
if oscData.price ~= nil then
    --ギフトの処理
else
    --広告の処理
end

とすればいいでしょう。
私の場合はめんどくさいので

oscPrice = oscData.price or 0

if oscPrice == 0 then
    --無料ギフトの処理
end

として無料ギフトとまとめて処理をしています

おわりに

現在この処理がされているVCIはほとんどなくほぼ確実にエラーが出てしまいます
なのでサイト別設定の書き出しは推奨しません(公式で書いてほしい)
どうしても対応したいという方だけやってみてください
(あまり大きな声では言えませんが私のVCIは対応済みです!!)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?