3
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?

ユニークビジョン株式会社Advent Calendar 2023

Day 14

mastodonでキャンペーンをやってみませんか?

Last updated at Posted at 2023-12-13

はじめに

現在、様々なSNSがあります。それらのSNSでは単に何かを表示する広告だけではなく、参加型のキャンペーンというものが存在します(どんなものがあるかは https://www.uniquevision.co.jp/case をご覧ください)。

mastodonでは今のところ、このような事例は私が観測する限り、存在しません(もちろん、私の観測範囲はそれ程広くないので、あるかもしれません)。ならばどこかの企業さん、あるいは個人さん、是非やってみませんか?という趣旨でこの記事を書いています。

実際にキャンペーンをつくってみた

ものはためしです。もしmastodonのアカウントをお持ちならば(他、ActivityPubを実装しているサービスならば大丈夫なはずです)、以下の記事のブーストしてみて下さい。

それが参加方法です。今日の占いが私のアカウントから返信されます。

実装は、完全に手抜きです。以下に示すシェルスクリプトをcronで1分毎に動かしています。1分間に40件より多い参加はない想定です。また、参加者データはテキストファイルに返信した内容を保存する、というものです。けれども、どのおみくじが当たったかもこれで十分、後からでも分かります。

#!/bin/bash

ACCESS_TOKEN=*******
CAMPAIGN_POST_ID=dummy
TAB=$(printf '\t')
SINCE_ID=$(cat since_id_file)

omikuji_0() {
    echo -n "こんにちは、$1 さん。キャンペーンに参加して下さり、ありがとうございます。あなたの今日の運勢は大吉です。きっといいことがあるでしょう!"
}

omikuji_1() {
    echo -n "こんにちは、$1 さん。キャンペーンに参加して下さり、ありがとうございます。あなたの今日の運勢は中吉です。きっと悪くない一日ですよ!"
}

omikuji_2() {
    echo -n "こんにちは、$1 さん。キャンペーンに参加して下さり、ありがとうございます。あなたの今日の運勢は小吉です。小春日和のような、ほんわりいい日になりますように!"
}



user() {
    echo -n $1 | sed 's%https://\([^/][^/]*\)/\(@..*\)$%\2@\1%'
}

curl --header "Authorization: Bearer $ACCESS_TOKEN" -sS 'https://mastodon.snthtns.jp/api/v1/notifications?types[]=reblog&limit=80&since_id='$SINCE_ID |\
    jq 'map(select( .type == "reblog" and .status.id == "'$CAMPAIGN_POST_ID'" ))' |\
    jq -r '.[] | [.id, .created_at, .account.id, .account.username, .account.url] | @tsv' |\
    {
        while IFS="$TAB" read -r id created_at account_id username account_url; do
            printf "%s %s %s %s \n" "$id" "$created_at" "$account_id" "$username" >> log_messages
            if [ $id -gt $(cat since_id_file) ]; then
                echo "$id" > since_id_file
            fi

            MESSAGE=$(omikuji_$((RANDOM % 3)) $(user $account_url))
            curl -X POST -d "status=$MESSAGE" -d "visibility=direct" --header "Authorization: Bearer $ACCESS_TOKEN" -sS https://mastodon.snthtns.jp/api/v1/statuses 2>>log_messages 1>>success_messages
            echo done >> log_messages
        done
    }

メリット

ここでは暗黙的に、自社、自分でmastodonインスタンスを立てることを前提に書いています。当然のことながら、どこかのmastodonインスタンスにアカウント作成してキャンペーンを実施することも(そのインスタンスの負荷をかけない範囲であるならば)、可能です。

その上で、mastodon界隈で流れている記事の中でよく語られていることなので、特に引用はしませんが、受け売りだということを断わりつつ、それらをキャンペーンの実施ということに当てはめて挙げてみますと、

  • 自社、自分でインスタンスを立てる前提ならば、当然のことながら、ドメインを自社、自分のものにできる。つまり、キャンペーンで発生するページの遷移を自社、自分のドメインが権威を持つ領域で完結させることができる。
  • 外的な要因にまきこまれて自社、自分のブランドイメージを毀損しない、真の意味でのSNS機能を持つOwned Media上でキャンペーンが実施できる
  • キャンペーン等を行いたいとき、他社、他人のサービスだと利用のためにAPIのrate limitや規約等によって制限されるが、自社、自分でmastodonインスタンスを立てていれば、それらの制限がなくなる(もちろん、他の制限、例えばmastodonインスタンスのサーバのスペック等による制限が発生します)

といったところです。

とはいっても

mastodonのユーザ数は、定期的にポストされるこのアカウント https://mastodon.social/@mastodonusercount によると、まだ2千万人に到達していません。他のSNSで何か問題が発生すると、引越し(をしようとする人、結局は元に戻る)が発生し、ぐんとユーザが増えますが、しばらくするとそれは落ちつきます。ですので、既存のXやInstagram、LINE等でキャンペーンを実施する程の効果は今のところはないでしょう。こういったキャンペーンは目だってなんぼでしょうし。人がいないところでがんばっても(広告的には)あまり意味はありません(とはいえ、ある日マイナーなものが突然メジャーになりうる世の中なので、広く浅く種をまいておくことにも価値があるかもしれません。宝くじを買うような感じですが)。

また、自社でインスタンスを立てた場合、自由度は増えるが、それとトレードオフになる点、例えばそもそも自分でインスタンスを運用するのが手間である等、いくばくかの不自由さを抱え込む必要があります。

なによりも、直接フォローをしてくれているユーザ以外への拡散は、分散されているという仕組み上、劇的には望めないでしょう。冒頭のおみくじキャンペーンでは、ブーストをしてくれることをキャンペーンの参加条件としています。ブーストによって、そのブーストをしてくれたユーザのフォロワーを通じ、他のインスタンスへと投稿が流れていくのを期待するだけしか、拡散については期待できません。

その上で

mastodonはActivityPubというプロトコルを受け入れています。このことによって、他のmastodonではない、ActivityPubを実装しているSNSサービスとの間ならば、やり取りができます。つまり、冒頭のおみくじキャンペーンは、拡散される保証こそないものの、他の(ActivityPubを実装している)SNSサービスのユーザによってブーストされれば、mastodonではないサービスのユーザにまで到達することができます。

一時期急激な盛り上がりを見せたMetaのサービス、Threadsですが、このサービスもActivityPubを受け入れる、という噂はちらほらあります。それが実現するならば、自社が持っている、Owned Mediaであるところのmastodonのアカウントを起点に、Threadsのユーザにまでキャンペーンの効果が到達するかの可能性がある、ということになります。

また、サービスには流行り廃りがありますが、ActivityPubというプロトコルが生き残れば、将来的にmastodon以外の魅力的なサービスが誕生したとしても、そのサービスがActivityPubを実装している限り、そのまま乗り換える必要がありません。プロトコルの方がアプリケーションよりも寿命が長いケースの例をみつけることができますが(たとえばSMTPやHTTP)、今後mastodon(や各SNSサービス)を通じて自社の情報を配信する、というのではなく、ActivityPubを利用して配信する、という意識が一般的になれば、数あるSNSアカウントを一本化することも可能でしょう。

(ただ、各SNSサービスは箱庭化を加速させる施策をとっている https://www.nikkei.com/article/DGKKZO76632230T01C23A2MM8000/ という報道もあるため、ThreadsがActivityPubを実装するという可能性は低いのではないか、と個人的には思っています。ユーザが既にたくさんいるのであれば、「ActivityPubを利用して配信する、という意識が一般的」というような状況があたりまえにならない限り、Metaにとってのメリットは低く、結果的に実現のための優先度は下がるでしょうし。)

(2023年12月14日9時48分追記

と、上のように書いた矢先にこんな投稿が。

すごいですね。
)

最後に、これを書いている人について

私は、ユニークビジョンという、TwitterやLINE上でキャンペーンを行う会社に所属していますが、実はあまりSNSを利用しているとは到底言えない者です。TwitterのAPIはかれこれ10年くらい叩いてきましたが、結局Twitter自体をそれ程利用しないまま、いつの間にかXに変わっていたりしました(半分冗談です)。まぁ、SNSにそれほどは夢中にならない人間です。

とはいえあんまり興味がないのもどんなものだろうと思い、2022年12月10日にmastodonサーバを立ててみたの去年の話です。そのお話は去年のアドベントカレンダーで書きました 。https://qiita.com/hhh_snthtns/items/08eca842bfb14380811c 別にたいそうなことはしておらず、さくらのスタートアップスクリプトでお手軽に動かしているだけですが。

この記事の本文で、「一年後、飽きずにまだつぶやき続けていたら、「Mastodonで1年間つぶやいた感想」、でもアドベントカレンダーに書こうと思います。」と書きました。そしてあれから一年が経ちました。飽きずに定期的に記事は投稿していますが、会社の近くにある新宿御苑の、お昼休みにする散歩の途中で撮影した写真を、ただ、アップロードしているだけです。SNSにそれほどは夢中にならない、と書きましたが、それでもアップロードした記事がお気に入りされたり、ブーストされると、ほっこり嬉しくなります。そのため、飽きずに1年、あまりつぶやきはしなかったけれど、写真のアップロードは続けたのでしょう。

ので、この記事がきっかけで、もうちょっといいねが付くと嬉しいなぁ、と思いたち、今年はこんな記事を書いてみました。さて、効果はあるでしょうか?

よいお年を。

3
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
3
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?