iOSプロジェクトの効果測定用にTuneを導入した際のメモ書きです。
ユーザ識別子(User ID)の設定や イベント送信方法、流入元計測方法やそれらの確認方法を記載します。
SDK導入に関してはシンプルなので特筆することはあまりないですが、Tune管理画面での動作確認で多少手間取った部分があったので共有します。
- Swift 3.1
- Tune SDK 5.0.1
- CocoaPods 1.2.1
Tune とは
https://www.tune.com
TUNE Japanの紹介文では以下のように紹介されていました。
''
TUNEは、現代のデジタルマーケターが効率的にマーケティングキャンペーンを運用、的確なグループをターゲッティング、そして、アプリパフォーマンスの最適化を通して、ビジネス成長に繋げるためのモバイルマーケティングツールを提供します。
''
登録
アプリ追加
Tune SDKを組み込む際に Advertiser ID と Conversion Key なるものが必要なため、Tuneの管理画面から事前にAppを作成し取得しておきます。
- Loginすると、Marketing Console が表示されるので画面右上のメニューボタンからAttribution Anlayticsを選択します。
- 左ペインの
APPLICATIONS > Apps
を選択し、Add a New App
します。 - 各項目を入力し、
Create App & Continue
します。
- App Name: アプリ名
- Channel: Mobile
- Platform: iOS
- Package Name: アプリのバンドルID
- Store App ID: AppStore のID
- Destination URL: AppStore のURL
- 作成すると
Details
が表示されるのでその中のConversion Key
とAdvertiser Id
を控えておきます。
SDKの導入
導入はシンプルなのでこちらのクイックスタートページを参考に進めてもらえれば問題ありません。
実装についてはObjective-Cで書かれていますが、Swiftでも文法以外同じです。
Swiftで書かれている参考ページはこちら。
初期化と測定の開始
import Tune
@UIApplicationMain
final class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
...
// 初期化
Tune.initialize(withTuneAdvertiserId: "<ADVERTISER_ID>", tuneConversionKey: "<CONVERSION_KEY>")
...
}
func applicationDidBecomeActive(_ application: UIApplication) {
// 測定の開始
Tune.measureSession()
}
}
<ADVERTISER_ID>
... 控えておいたAdvertiser IDを指定します。
<CONVERSION_KEY>
... 控えておいたConversion Keyを指定します。
別のBundle IDを指定したい場合は下記の初期化関数を利用するか、もしくは setPackageName()
が利用できます。
Tune.initialize(withTuneAdvertiserId: "<ADVERTISER_ID>", tuneConversionKey: "<CONVERSION_KEY>", tunePackageName: Bundle.main.bundleIdentifier!, wearable: false)
Tune.setPackageName(Bundle.main.bundleIdentifier!)
User ID の設定
initializeの後に setUserId()
を行うと管理画面上で User ID
として確認可能になります。アプリのサービスで一意に扱われるIDを指定したりします。
これとは別にTune 上で一意なものとしては Tune ID
があります。
確認方法は後述。
...
// 初期化
Tune.initialize(withTuneAdvertiserId: "<ADVERTISER_ID>", tuneConversionKey: "<CONVERSION_KEY>")
// `User ID`のセット
Tune.setUserId("<USER_ID")
...
イベントの送信
任意の識別子で属性を5つまで与えられるイベントが送信できます。
Attribution AnalyzeではCustom Field が使用できないのでそういった要素はこれで行う。確認方法は後述。
func sendSetUserIdentifierEvent() {
if let event = TuneEvent(name: "hogehoge"),
let item1 = TuneEventItem(name: "fugafuga", attribute1: "fugafuga value1", attribute2: "fugafuga value2", attribute3: "", attribute4: "", attribute5: ""),
let item2 = TuneEventItem(name: "piyopiyo", attribute1: "piyopiyo value", attribute2: "", attribute3: "", attribute4: "", attribute5: "") {
event.eventItems = [item1, item2]
Tune.measure(event)
}
}
iOS IFA(IDFA)の取得
SDKの方で自動的に取得して記録されます。
もし自前APIなどに紐付けしたい場合は以下で取得できます。
let idfa = Tune.appleAdvertisingIdentifier()
Tune IDの場合、以下で取得します。
let tuneId = Tune.tuneId()
流入元計測
どこからアプリのストアページに行き着いてインストールしたのかが計測できます。
まずはパートナーを追加してそれを元に計測URLを作成します。
1. パートナーの追加
1-1. 管理画面左ペインの PARTNERS > Partners
から Add Partner
します。
1-2. 名称入力、Typeを選択し Add Partner
します。TypeはAdvertising PartnerとTechnology Partnerがあります。
2. 計測URLの追加
2-1. 管理画面左ペインの PARTNERS > Measurement URLs
から Create Measurement URLs
します。
2-2. それぞれ適切に設定します。
Select your App: 対象アプリを選択します。
Select your Partner: 上のセクションで追加したパートナーを選択します。
Select your Agency: 代理店があれば選択します。
2-3. Saveボタンの上にURLが表示されますので控えます。
2-4. Saveします。
下記に各設定についての詳細が記載されています。
測定 URL を作成する - TUNE HELP
端末のSafariで上記生成したURLを踏み、その後にXcodeやFabricからアプリをインストールしておきます。
確認方法は後述。
確認方法
管理画面にLoginして記録されているか確認します。
割と重要なことですがInstallsやOpensのレポートへの反映は 先勝ちで1日1回しか記録されません 。
つまりInstallした場合、再Installしても同端末、同日なら記録されません。
どうしても当日中にその同端末で記録させたい場合は、iOSの広告IDをリセットするしかなさそうです。
iOS設定 > プライバシー > 広告 > Advertising Identifierをリセット...
します。
*全アプリで共通のためご注意ください
Eventは1日に複数回記録されることを確認しています。
インストールの確認
左ペインの REPORTING > Test Logs > Installs
にだいたい数分で反映されます。
直近、12時間以内のものが表示されるのでそれ以上経っている場合は、REPORTING > Logs > Installs
で確認できます。
オープンの確認
左ペインの REPORTING > Logs > Opens
に反映されますが、こちらは Test Logs
とは異なり、数時間ほど経過しないと反映されないような感じですので気長に待つしかありません。
User ID の確認
-
Logs
,Test Logs
にあるConfigure Report
を選択してMetrics > Internal > +14 more
を押して他の候補を表示します。
-
User ID
を有効にしてApply
します。
- 右にスクロールすると最後に
User ID
が追加されています。
イベントの確認
Logs
, Test Logs
にある Event Items
から確認できます。
Configure Report
から Attribute 1
~ Attribute 5
を有効にしておくと表示されます。
流入元計測の確認
Logs
, Test Logs
のPartnerカラムに表示されます。
何が取れているのか?
実際、どのような情報が取得できているのかを確認するには、(UI操作的に少し面倒ですが) Configure Report
の全ての項目にチェックして cvsでexportすると見やすいかもしれません。
その他
セッションが切れ、reloadすると"File not found."とエラー表示された空白ページになってしまい読み込みできなくなってしまう問題があるようです。
tune.comにアクセスし直してもう一度Loginする必要があります。
またページによっては日本語だと若干情報が欠けている部分があったりするのであれ?と思ったら左上のLanguages メニューからEnglishを選択してください。
感想
マーケ的に有用なのかどうか詳しくないので私には判断できませんが、折角いろいろ端末情報が取れていてよくできているように思うのですが、管理画面を使用していると細かい部分でUIがイケてなくて損しているように感じましたw
反映に時間がかかるのはしょうがないとして、下記だけでも改善をお願いしたいところです。
- LogsやTest Logsだけでなく色々なページに日付選択やConfigure設定がありますが、ページ切り替え都度都度選択が解除されてしまうので面倒(タイムゾーンだけはMy Account Settingsで設定できる)
- 日付のデフォルト選択がなぜか昨日のみの選択になっている
- セッション切れエラー表示のままになってしまう件
- Configure Reportでたくさん選択すると横スクロールが長大になりがち
- 全体的に読み込みが少し重め