AppsFlyerとそのアトリビューションの仕組み

この記事ではAppsFlyerと、その基本的な機能であるアトリビューションについて解説しています。


## AppsFlyerを一言で言うと・・・

[AppsFlyer](https://www.appsflyer.com/ja)はモバイルアプリのデータを収集・整理し、「アトリビューション」を行うことで、広告の効果を統一的に評価するためのプラットフォームを提供するサービスです。
このようなサービスは、モバイル計測パートナー（MMP; Mobile Measurement Patner）という名前でも知られていて、AppsFlyer以外の類似のサービスとしては adjust, branch, Kochava, singular, tenjin 等が挙げられます。
この中で、グローバルシェアがNo.1のサービスがAppsFlyerになります。

![AF-logo_Horizontal.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73759/eeb0ed79-45cd-6ea0-b1d6-00064585629a.png)


## アトリビューションで広告の効果を把握

「アトリビューション」というのは耳慣れない言葉かもしれませんが、とても重要な概念で、日本語では「帰属・帰因」というような意味になります。
広告・マーケティングの世界においては、コンバージョンや売上に対する貢献度をマーケティングのタッチポイントに割り当て、最も効果的であったタッチポイントを特定することを指します。

例えば、ショッピングアプリのマーケターは、アプリを宣伝するために広告を出していて、どのメディアに出稿すればより成果が出るかということを考えた上で、広告費の予算の配分を決めています。
このショッピングアプリにおける一般的なユーザージャーニーは、何らかの広告に接触し、そのアプリをインストールして、ユーザー登録をした後、実際にアプリを使い始めて、何らかの商品を購入というような経路になると考えられます。

このアプリではインストールを重要な指標だと考えた場合、「インストール数に最も寄与した広告はどれだったのか」を把握できれば、その後の広告予算の配分を変えるなどマーケティング施策に活かすことができます。

より具体的には、図のように
「実際にインストール1000件のうち、Googleの広告によるものが200件、Twitter広告によるものが100件、店舗のQRコードによるものが150件だった」というふうに、広告ごとの貢献度を可視化することがアトリビューションという行為であり、広告の効果計測の手法ということになります。
![Makoto - Images Gallery for articles and blogs (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73759/6f4dc750-5a64-2f87-06b1-0e0c7104f8af.png)
これに加えて、AppsFlyerではその後のユーザー登録や、購入などの「アプリ内イベント」の計測も行えますので、以下のような観点からの分析も可能です。

- 最もユーザー登録につながった広告は？
- アプリ内購入の収益に貢献した広告は？
- 広告ごとの費用対効果は？


## アトリビューションの仕組み

上記のようなアトリビューションはどのように実現されるのでしょうか？
これは細かい仕様などを端折ると、大枠としては非常に単純な仕組みです。
![attribution-flow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73759/3f15431f-1ef5-0897-68bd-42fa5de10ca3.png)
1. ユーザーの広告接触の際に、計測リンクとしてAppsFlyerのサーバーに端末の情報が送信される
2. アプリ起動時に、アプリ実装されているAppsFlyer SDKを通して、AppsFlyerのサーバーに端末の情報が送信される
3. 上記1.の広告接触と 2.アプリ起動時が同一端末によるものと見做されれば、アトリビューションする

このような処理をユーザージャーニーの裏側で行うことで、広告の効果計測のためのデータを収集しています。
AppsFlyerのサーバーに収集されたデータを使ってわかりやすく分析ができるようなダッシュボードも提供しています。


## SDKは各種プラットフォームに対応

計測のためにはAppsFlyer SDKがアプリに実装されていることが必要となります。

AppsFlyer SDKは、iOS版ではSwiftPackage Manager, CocoaPods, Carthageのいずれのライブラリ管理ツールでもパッケージ追加し実装できます。Android版ではGradleになります。
またネイティブのiOS版/Android版以外の実装方法として、Unity, Unreal Engine, React Native, Flutter などのプラットフォームにも対応したSDKが用意されています。

[AppsFlyer Developer Hub]("https://ja.dev.appsflyer.com/hc")
![sdk.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73759/f1c3ce17-a033-e550-58cc-6673c75c468a.png)


## AppsFlyerの活用にはエンジニアの力が必要

AppsFlyerはマーケターを中心に利用されているサービスなのですが、AppsFlyerについての情報共有をしてくれるエンジニアが増えるといいなと考え、今回Advent Calendarを作ってみました。

マーケターの方々から、AppsFlyer関連機能の実装などにおいて、エンジニアに作業依頼の際にやってほしいことをうまく伝わらない、伝えるのが難しいという話を耳にします。
これには、エンジニアにとってAppsFlyerが馴染みの薄いサービスで、まだまだ技術的な知見が少ないことも理由の一つになっていると考えています。

また、AppsFlyerの実装はユーザー体験には直結しない単なるマーケター向けの対応と見做されてしまい、開発の優先度が上げてもらえなかったり、ということもあるようです。
この点に対しては、障害対応などと比較してクリティカルではないという点において一部正しいですが、実際には、機能によってはユーザー体験には直結するものもある上、単なるマーケター向けの対応に留まらず、サービス全体の売上・収益を上げるための施策であることも多く、しっかり理解されていないように感じています。

AppsFlyer利用におけるエンジニアの役割はとても大きく、以下のような施策にはエンジニアの力が必要です。

- SDKの実装において、インストールだけでなく、アプリ内イベントやアンインストールの計測も行うようにすることで、広告の効果計測をより正確に行う。
- OneLinkでディープリンク／ディファードディープリンクも実装し、ユーザー体験を高めながら、アトリビューションも行う。
- AppsFlyerのサーバーにあるデータをAPI経由などで取得・バックアップし、BIツールやDWHでも他のデータと組み合わせてユーザーの分析にも利用できるようにする。

このようなことができれば、アプリのユーザ獲得やリテンションに繋がります。一般的にはWebよりもアプリの方が数倍コンバージョン率が高いと言われており、Webとアプリを併用しているサービスにおいても売上・収益向上に繋がるはずです。


## そんなわけで・・・

AppsFlyerはマーケターを中心に利用されているサービスなのですが、AppsFlyerについての情報共有をしてくれるエンジニアが増えるといいなと考え、[AppsFlyer Advent Calendar 2022](https://qiita.com/advent-calendar/2022/appsflyer "AppsFlyer Advent Calendar 2022") を作ってみました。
AppsFlyerの実装経験のある方やこれから触る方はぜひ、Qiitaでも情報共有お願いします！

ちょっと堅苦しい内容になってしまいましたが、AppsFlyerで取得できるデータも興味深いものが多いので、気軽に触ってもらえると良いかなと思っています。