見出し画像

SKAdNetwork - Appleの広告規格 (2) ConversionValue マッピング 他

アプリマーケターの皆さん こんにちは!アドネットワークnend (ネンド) の「えばんじぇりすととーる」です。今回もひと昔前のモバイル広告では考えられない程進化した、現在のモバイル広告の仕組みを誰にでも分かりやすく伝えていこうと思います。

いやー、AppleもFacebookも互いに譲らず、膨大なお金を掛けて素晴らしい動画をyoutube (Google) にアップしていますね、プライバシーで。事の始まりは、Facebookが今年2月アップしたこの動画 (youtube) "Good Ideas Deserve To Be Found" (和訳:良いアイデアは発見されるに値する)でしょうか。Appleも先週、プライバシーに関連する動画 (youtube) "Privacy on iPhone | Tracked | Apple" (和訳:iPhoneのプライバシー | 追跡 (された) | Apple)をリリースしました。

WWDC21開催間近になりましたが、Appleがリリースした基調講演スケジュールでは、特段プライバシーに関しての記述は見当たらないです。しかし、昨年同様、個別のセッションで我々に直接関係することが出てくると思います。

さて、今回は前回の続きで、SKAdNetworkを更に深堀り、実戦的なことも交えて説明していきたいと思います。前回のポストバックの流れや、ラグ(遅延)パラメーター詳細は、SKAdNetworkを正しく理解する上で、必要最低限の土台知識になります。少しでも分からないことがあれば、「プライバシーMktg/marketing」オープンSlackチャンネルで気軽に聞いてください!

それでは今回もSKAdNetwork 応用知識まで、一気に行きましょう!レッツゴー!

Conversion Value (updateConversionValue:) < SKAdNetwork < StoreKit

Appleが昨年6月のWWDC20で、ATTフレームワークとStoreKit内のSKAdNetwork (当時2.0) の仕組みを発表した後、国内では当初、SKAdNetworkを使う計測方法で獲得したユーザーはインストール後のイベント(リテンション、課金等)が取れない、といった誤った認識がなぜか一気に広がりました。当時、日本時間の深夜によく開催されていた欧米事業社主催のイベントに参加されていた方は、この国内での話の広がりを不思議に思った人も多いかもしれません。前回のゲームアプリの例で挙げた通り、ポストバックがまとめて1回、そしてラグがあるという制限はありますが、SKAdNetworkを使って獲得したユーザーのインストール後の数値は取れない、というわけではありません。

ConversionValueのマッピング(後述)をアプリ内で設計して、タイマーが切れた後のCVポストバックをnendの様な広告配信先のアドネットワークに早く送れるようになれば、アドネットワークはパフォーマンスに応じた入札単価を維持することができ、ディベロッパーはユーザープライバシーが強化された環境下で、ユーザーのアプリ内アクションを把握できるようになります。従来に近い形のアプリマーケティングができることになりますが、いくつか注意しないといけない点があります。

Conversion Value 注意点

CVマッピングをアプリ内に導入して、インストール起動後、24~48時間以内にアドネットワークにSKAdNetworkのポストバックが送れる設計にできたとしても、SKAdNetworkの計測で得られるpLTV (probable LTV = 推定LTV) は、必ずしも今のリアルLTVに近い数値になるとは限らず、調整が必要になり、マッピングを何度も作り直すことになる可能性もあります。

一般的に個々のアプリに合わせてCVマッピングを導入する場合、updateConversionValueのコードはアプリ側に直接書き込むことになるので、それを変更する際、アプリのアップデートが必要になります。これは手間になるので、ディベロッパーの中にはConversionValue用の個別サーバーを用意して、アップデートをしなくてもマッピングが変更できるようしているところもあるようです。ただ、実際にアプリ内に仕組みを導入する前に、CVマッピングの設計、pLTVとLTVの乖離の確認はこれまでのマーケティング実績の数値から試算できるため、過去の実績を引っ張り出して、いくつかシミュレーションをしても良いかと思います。

nendはこれまでの準備で、SKAdNetworkを使った広告計測はできます。Appleが今後強硬手段に出て、SKAdNetworkの広告計測を必須にする可能性も否めないので、なるべく早くSKAdNetwork配信を体感して、前述の調整作業をしておくことが良いかと思います。欧米がプライバシーマーケティングで既に先行している感覚があるので、皆さんの力で、海外と開いてしまったギャップを一刻も早く埋めていきましょう!

前置きが長くなりましたが、いつもの様に先ず、ユーザーのインストール後の数値を測るConversionValue (updateConversionValue) のApple 仕様について見ていきましょう。

updateConversionValue(_:) 基礎知識

● 6-bit value (6桁のbit = 0/1) → 0~63イベント (integer)
● a rolling 24-hour period / timer = 24時間のタイマー、値が上昇する度にタイマーがリフレッシュされる。24時間のタイマーが切れたら、その時のCV値が最終値としてアドネットワーク(nend)にポストバックされる。
● did-win: false (SKAdNetwork3.0以上) の時、ポストバックにconversion-value値は含まれない
● "The postback only contains the final conversion value if sending the data meets Apple’s privacy threshold." (和訳:データがAppleのプライバシー閾値(いきち) を満たしたときに、CV最終値がポストバックに含まれる)

上記がSKAdNetworkのConversion Valueを理解する上で、肝となる知識です。一つ一つ見ていきましょう。

■6-bit value

6桁のbit (0/1) ということなので、ゼロが6桁 (000000) から イチが6桁 (111111) まで使えるということです。1桁に入る数字は0か1の2パターン (二進数)、 これが6桁あるので、2の6乗=2x2x2x2x2x2=全64パターン。

ゼロが6桁 (000000) はインストール起動 (registerAppForAdNetworkAttribution () の呼び出し) で使用されるため、6 bitをintegerの整数に置き換えるときは、0=インストール+起動が最小値となり、最高値は63 (111111) になります。この整数への置き換えについて、例を挙げて説明します。

イベント設定で、1桁のみ使う場合は2パターン=000000と000001=CV値は0と1。
2桁使う場合は4パターン=000000, 000001, 000010, 000011=CV値はそれぞれ0, 1, 2, 3。
3桁使う場合は8パターン=上述の4つ+000100, 000101, 000110, 000111=CV値は0~3, 4, 5, 6, 7。

毎回上記の様に二進数を整理しながら整数に置き換える作業をすると日が暮れてしまうので、以下の計算式をあてはめます。
●1桁目が1の時は+1(0はインストール起動でリザーブ)
●2桁目が1の時は2の1乗、つまりイベント計測に2桁 (2bit) を使う場合 0000XX=1+(2の1乗)=3パターン(CV値は1,2,3)。
●3桁 (3bit)使う場合、3桁目が1の時は2の2乗、000XXX=1+(2の1乗)+(2の2乗)=7パターン (CV値は1,2,3,4,5,6,7)。どんどん行きましょう。
●4桁 (4bit) の場合、4桁目が1の時は2の3乗、00XXXX=1+(2の1乗)+(2の2乗)+(2の3乗)=15パターン (1,2,3,4,5,6,7...15)。
●5桁 (5bit) の場合、5桁目が1の時は2の4乗、0XXXXX=1+(2の1乗)+(2の2乗)+(2の3乗)+(2の4乗)=31パターン (1...32)。
●6桁 (6bit) は6桁目を2の5乗、XXXXXX=1+(2の1乗)+(2の2乗)+(2の3乗)+(2の4乗)+(2の5乗)=63パターン (1...63)。0はインストール起動でリザーブされているので、全64パターン=64イベントがupdateConversionValueで計測できます。

updateConversionValue - 現場への応用

さて、上記の基礎が分かってきたら、これを現場で応用しましょう。6桁全部使うと63パターン使える。これをアプリ内課金のみで単純に考えると、$1あたりの課金の積みあげをマッピングすることができるので、$1=updateConversionValue (1) ~ $63=updateConversionValue (63) 。0は無課金ユーザーになります。

同様に、ユーザーの進捗レベルで6桁全部使う場合であれば、Lv.1~Lv.63まで解析できるようになります。

例えば、課金を上記の6桁全部使用から、桁数 (bit数) を少なくしたい要望があるとします。6桁の使用から2桁に削減=3パターンのみの解析に絞った場合、アプリ内での課金額を以下のセグメントごとに区切った積み上げ形式にすれば良いので、おおざっぱに書くと
・updateConversionValue (0) =無課金
・updateConversionValue (1) =$1~$20
・updateConversionValue (2) =$21~$40
・updateConversionValue (3) =$41~over
このように階層分けすれば、アドネットワークへのポストバックで送られてきたconversion-valueのパラメーターの値で、各ユーザーの課金範囲が把握できます。

課金を2桁の使用に削減したことで、余った4桁は他のKPIイベントに使用できるようになります。例えば、他のユーザーとチームを組む機能がアプリ内にあり、チームを組むユーザーは組まないユーザーと比べて〇倍のLTVの差がある、とこれまでのマーケティングで把握済みとします。先ず、チーム参加有無でConversionValueの1桁(3桁目)を使用し、上述の課金範囲の特定から、更にそのチーム参加有無のLTVの差をpLTVに組み込めば、pLTVを実質のLTVに近づけることができます。これをマッピングで表してみましょう。

画像1

まだもう3桁(半分)余っているので、課金に関連するイベントを同じように組み込めば、更にpLTVが実質のLTVに近づくのではないでしょうか。もう少し説明します。

updateConversionValue - リテンション/24hタイマー

アプリ内解析でよく使われるリテンションにした場合、0日目 (初回起動後0~23:59:59経過)は0でまかなえるので、翌日1日目 (24:00:00~47:59:59以内) に起動された時、updateConversionValue (1) を当てます。 その翌日  (48:00:00~71:59:59以内) ではupdateConversionValue (2)。同じ様に、3日目  (72:00:00~95:59:59) ではupdateConversionValue (3)。おっと、ちょっと待ってください。24時間経ってから、updateConversionValueが繰り上げられる仕組みを導入した場合、CV値の繰り上げよりも先に、前述した24時間タイマーが切れてしまいます。タイマーが切れてしまった場合、アプリ内でupdateConversionValueが呼び出され、CV値が上昇したとしても無効になり、アドネットワークnendへのポストバックには反映されません。さて、タイマーが切れてしまうのを防ぐために、どんな方法があるでしょうか。

例えば、上記の場合、起動してから24:00:00, 48:00:00, 72:00:00に達する前に、最低1つConversionValueが上昇するイベントをCVマッピングに組み込めば、毎日継続してアプリ起動するユーザーのリテンションのイベントが保持できます。その他にも方法は色々あると思います。一つは起動回数、起動する度にConversionValueを繰り上げれば、その動作から24hタイマーがリフレッシュされるので、毎日起動するユーザーのリテンションと起動回数が解析できるようになります。あるいは、起動する度に必ずnendSDK等の広告SDKから広告が表示されるのであれば、広告が表示される度にConversionValueを繰り上げる仕組みを導入しても良いかもしれません。その場合、広告のeCPMを回数で合わせて、リテンションと掛け合わせれば、広告のpLTVが計算できます。

updateConversionValue - pLTV ≒ LTV

ざっとこんな感じで、キーとなるKPIイベントを中心にConversion Valueのマッピングを行い、CV値からpLTVを割り出し、そのpLTVが実質のLTVに近くなるように調整していきます。これを突き詰めていった(かどうか不明ですが)ディベロッパーがフィンランドに本社を置き、アングリーバードで有名なRovio Entertainmentです。

Rovioはほぼ全ての主要タイトルで、アプリ内広告と課金の両方を収入源としているハイブリッド型の大手ゲームディベロッパーです。彼らは以前、欧米事業社主催のオンラインイベントで、SKAdNetwork1.0がリリースされた当初から、プライバシーが強化された環境下でのマーケティング手法を模索していたらしく、今年2月に米名門のコーネル大学経由で、Conversion Valueを使った収益解析についての論文を発表しています。Rovioはデータサイエンティストが広告マネタイズの担当をしているらしいので、話を聞いた時、何となくですが改めてこの業界の深さを再確認しました。RovioとはMMPのSingularがSKAdNetwork周りの解析に協力していたそうなので、ご興味のある方はこちらのSingularのRovioインタビューを見ても面白いかもしれません。

■Apple Privacy Threshold

欧米のディベロッパーや、海外に在籍する事業社の話を聞いていると、この言葉が結構頻繁に出てきます。AppleのupdateConversionValueSKAdNetworkの仕様書に "Privacy Threshold"の単語が出てきます。日本の直訳は「プライバシーの閾値(いきち)」です。「閾値」のGoogle画像検索をすると、そのイメージが出てくるので分かりやすいと思いますが、SKAdNetworkでのプライバシー閾値は、Appleが非公表で設定しているポストバックがアドネットワークに送られる条件になります。我々も現在調査中ですが、これがややこしい。"Privacy Threshold" を満たしていないと、conversion-valueやsource-app-idがなかったり (null)、はたまたポストバック自体が送られてこない等の話を聞きます。Appleは断固としてこの仕様を公開していないため、業を煮やしたディベロッパー or 関連事業社がAppleのディベロッパーフォーラムで直接投げかけたり(これとか、これとか)していますが、Appleから条件を明らかにする公式回答はいまだありません。1 source-appから最低○○のインストール数が必要とか、クリック数で○○以上とか皆さん言いたい事言ってますが、どれが正しいやら判断ができない程、情報が錯そうし続けています。こればかりは実際に、SKAdNetworkでのプロモーションを特定のアプリでやってみないことには、"Apple Privacy Threshold" を掴むことすら難しい、と言えるのではないでしょうか。是非、SKAdNetwork配信が出来るnendで!

終わりに一言(SKAdNetwork説明 終わり)

SKAdNetworkについて2回に渡り説明してきましたが、いかがでしょうか。SKAdNetworkのプロモーションを実施する前段階での、最低限必要な知識を書きました。少しでもSKAdNetworkに対して正しい理解に近づいたように感じられるのであれば、私にとってそれ以上の喜びはありません。昨日よりも今日、今日よりも明日、アプリマーケティングが変革の時を迎えている今この時に、関わりのある皆さんがベターもしくはベストの判断を作れるきっかけになれば、とても嬉しい限りです。それが少しずつ積み重なっていけば、今欧米のプレイヤーとのギャップを必ず埋められることに繋がり、プライバシーマーケティングは始まったばかりなので、彼らを凌駕することも可能なのではないでしょうか。

冒頭でも紹介しましたが、誰でも参加できる「プライバシーMktg/marketing」オープンSlackチャンネルがあります。そちらで、以前説明したATTのこと、ConversionValueマッピングについてのお悩み、ここはどうなっているの?等の質問など、プライバシー環境下におけるマーケティングの事であれば、なんでもあちらで気軽に発言・質問してもらえればと思います。

iOS14.5がGW前にリリースされて、もう1ヶ月が経ちます。iOS14.5のプライバシー周り(Appleの仕様周り)では最後にもう1本、web-to-app (ウェブ案件のアプリ内配信)、app-to-web(アプリ案件のウェブ配信)やiOS14.5プライバシーで関連するWebKit、Private Click Measurement あたりについて書こうと思います。nendで予定しているnend内の数値(現在の日本国内におけるiOS14.5以降のユーザーの割合や、オプトインユーザーの割合など)も出血大サービスで公表する予定が近々ありますので、皆さん見逃さずチェックしてください!

それでは、次回お会いするまでお元気で!