Cocos2d-Lua
接続する前に、まず接続前の準備をお読みください。
Cocos2d-Lua SDKはiOS、Androidプラットフォームで動作し、サイズは約7.1Mです
最新バージョン: v2.0.2
更新日: 2024-01-19
このドキュメントはv2.0.0以降のバージョンに適用されます。以前のバージョンについては、Cocos2d-Lua接続ガイド(V1)、SDKダウンロード(v1.0.1)を参照してください
1. SDKの統合
-
Cocos2d-Luaの設定を追加
- Cocos2d-Lua SDKのリソースファイルをダウンロードして解凍し、
TDAnalytics.luaをsrcフォルダーに追加します
- Cocos2d-Lua SDKのリソースファイルをダウンロードして解凍し、
-
Androidの設定を追加
frameworks/runtime-src/proj.android/appディレクトリにlibsフォルダーを追加し、TDAnalytics.aar、TDCore.aarをlibsフォルダーに追加しますframeworks/runtime-src/proj.android/app/src/org/cocos2dx/luaディレクトリにTDAnalyticsProxy.javaを追加しますCMakeLists.txtに次の設定を追加します
if(ANDROID)
list(APPEND GAME_SOURCE
# ... 次のコードを追加
${RUNTIME_SRC_ROOT}/proj.android/app/src/org/cocos2dx/lua/TDAnalyticsProxy.java
${RUNTIME_SRC_ROOT}/proj.android/app/libs/TDCore.aar
${RUNTIME_SRC_ROOT}/proj.android/app/libs/TDAnalytics.aar
)
endif()
frameworks/runtime-src/proj.android/appディレクトリにあるbuild.gradleに、次の設定を追加します
dependencies {
// .aarの参照を追加
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
}
-
iOSの設定を追加(Cocos2d-Lua-Community 4.x)
TDAnalyticsProxy.h、TDAnalyticsProxy.mm、ThinkingSDK.frameworkをframeworks/runtime-src/proj.ios_mac/iosディレクトリに追加しますCMakeLists.txtに次の設定を追加します
if(APPLE)
if(IOS)
list(APPEND GAME_HEADER
# [TDAnalytics] 次のコードを追加
${RUNTIME_SRC_ROOT}/proj.ios_mac/ios/TDAnalyticsProxy.h
)
list(APPEND GAME_SOURCE
# [TDAnalytics] 次のコードを追加
${RUNTIME_SRC_ROOT}/proj.ios_mac/ios/TDAnalyticsProxy.mm
${RUNTIME_SRC_ROOT}/proj.ios_mac/ios/ThinkingSDK.framework
)
endif()
endif()
if(IOS)
# [TDAnalytics] 次のコードを追加
target_link_libraries(${APP_NAME} ${RUNTIME_SRC_ROOT}/proj.ios_mac/ios/ThinkingSDK.framework)
endif()
if(IOS)
# [TDAnalytics] 次のコードを追加
set(CMAKE_EXE_LINKER_FLAGS -ObjC)
endif()
-
iOSの設定を追加(Cocos2d-Lua-Community 3.x)
- Xcodeで
iOSプロジェクトを開き、SDKディレクトリ配下のiOSフォルダーをClassesディレクトリに直接ドラッグ&ドロップします Build Setting->Other Linker FlagsのDebugとReleaseに、それぞれ-force_load "$(SRCROOT)/ios/ThinkingSDK.framework/ThinkingSDK"を追加します
- Xcodeで
2. 初期化
local TDAnalytics = require("TDAnalytics")
TDAnalytics.init(APPID, SERVER_URL, TDAnalytics.debugModel.debugOff)
パラメータの説明:
-
APPID: プロジェクトのAPPIDです。AEの「プロジェクト管理」ページで取得できます -
SERVER_URL: データの送信先URL- クラウドサービスをご利用の場合は、次を入力します: https://global-receiver-ta.thinkingdata.cn
- プライベートデプロイ版をご利用の場合は、データ収集アドレスにドメインをバインドし、HTTPS証明書を設定してください:https://データ収集アドレスにバインドしたドメイン
Android 9.0以降ではデフォルトでHTTPリクエストが制限されているため、必ずHTTPSプロトコルを使用してください
3. よく使う機能
よく使う機能を使用する前に、まずユーザー識別ルールを確認することをお勧めします。SDKはデフォルトで乱数を生成してゲストIDとし、ゲストIDをローカルに永続的に保存します。ユーザーがログインするまでは、ゲストIDが識別IDとして使われます。注意:ゲストIDは、ユーザーがAppを再インストールしたり、デバイスを変更したりすると変わります。
3.1 アカウントIDの設定
ユーザーがログインする際にloginを呼び出して、ユーザーのアカウントIDを設定できます。AEプラットフォームはアカウントIDを識別IDとして使用し、設定したアカウントIDはlogoutを呼び出すまで保持されます。loginを複数回呼び出すと、以前のアカウントIDが上書きされます。
--ユーザーのログインの一意な識別子です。このデータは送信データの#account_idに対応し、この場合#account_idの値はTAになります
TDAnalytics.login("TA")
loginは複数回呼び出すことができます。呼び出すたびに、渡されたアカウントIDが以前に保存したIDと一致するかどうかを判断し、一致する場合は呼び出しを無視し、一致しない場合は以前のIDを上書きします。
このメソッドはログインイベントを送信しません
3.2 共通イベントプロパティの設定
共通イベントプロパティとは、すべてのイベントに付与されるプロパティのことです。setSuperPropertiesを呼び出して共通イベントプロパティを設定できます。イベントを送信する前に、共通イベントプロパティを設定しておくことを推奨します。ユーザーの会員レベルや流入チャネルなどの重要なプロパティは、すべてのイベントに設定する必要があります。その場合は、これらのプロパティを共通イベントプロパティとして設定できます。
local superProperties = {}
superProperties["channel"] = "ta" -- 文字列
superProperties["age"] = 1 -- 数値
superProperties["isSuccess"] = true -- ブール値
superProperties["birthday"] = os.date("%Y-%m-%d %H:%M:%S") -- 時間
superProperties["object"] = { key="value" } -- オブジェクト
superProperties["object_arr"] = { { key="value" } } -- オブジェクトグループ
superProperties["arr"] = { "value" } -- 配列
TDAnalytics.setSuperProperties(superProperties) -- 共通イベントプロパティを設定
共通イベントプロパティはキャッシュに保存されるため、Appを起動するたびに呼び出す必要はありません。setSuperPropertiesを呼び出して、以前に設定済みの共通イベントプロパティを送信した場合は、以前のプロパティが上書きされます。
- Keyはプロパティの名前で、文字列型です。英字で始まり、数字、英字、アンダースコア"_"のみを含めることができます。最大長は50文字です。英字の大文字と小文字は区別されず、AEではすべて小文字に変換されます
- Valueはプロパティの値で、文字列、数値、ブール値、時間、オブジェクト、オブジェクトグループ、配列に対応しています
イベントプロパティとユーザープロパティの要件は、共通イベントプロパティと同じです
3.3 自動収集の有効化
次のコード例では、インストール、起動、終了イベントを有効にしています。SDKの自動収集機能について詳しくは、自動収集機能の詳細を参照してください
TDAnalytics.enableAutoTrack( {
appInstall = true,
appStart = true,
appEnd = true
});
3.4 イベントの送信
trackを呼び出してイベントを送信できます。事前に整理したトラッキングドキュメントに従って、イベントのプロパティと送信条件を設定することをお勧めします。ここでは、ユーザーが商品を購入する場合を例にします:
TDAnalytics.track("product_buy", {
product_name="商品名"
});
イベント名は文字列型で、英字で始まり、数字、英字、アンダースコア"_"を含めることができます。最大長は50文字です。
3.5 ユーザープロパティの設定
一般的なユーザープロパティは、userSetを呼び出して設定できます。このインターフェースで送信したプロパティは、既存のプロパティ値を上書きします。そのユーザープロパティが以前に存在しない場合は新しく作成され、タイプは渡されたプロパティのタイプと同じになります。ここでは、ユーザー名の設定を例にします:
-- この時点でuser_nameはTA
TDAnalytics.userSet({
user_name = "TA"
})
-- この時点でuser_nameはAE
TDAnalytics.userSet({
user_name = "AE"
})
4. ベストプラクティス
次のサンプルコードには、上記のすべての操作が含まれています。次の手順で使用することをお勧めします:
-- TDAnalyticsをインポート
local TDAnalytics = require("TDAnalytics")
if isPrivacyPolicyAccepted then -- ユーザーがプライバシーポリシーに同意済み
-- SDKを初期化
TDAnalytics.init(APP_ID, SERVER_URL, TDAnalytics.debugModel.debugOff);
--自動収集イベントを有効化
TDAnalytics.enableAutoTrack( {
appInstall = true,
appStart = true,
appEnd = true
});
--ユーザーがログイン済みの場合は、ユーザーのアカウントIDを一意の識別子として設定できます
TDAnalytics.login("TA")
--共通イベントプロパティを設定すると、すべてのイベントに共通イベントプロパティが付与されます
local superProperties = {}
superProperties["channel"] = "ta" -- 文字列
superProperties["age"] = 1 -- 数値
superProperties["isSuccess"] = true -- ブール値
superProperties["birthday"] = os.date("%Y-%m-%d %H:%M:%S") -- 時間
superProperties["object"] = { key="value" } -- オブジェクト
superProperties["object_arr"] = { { key="value" } } -- オブジェクトグループ
superProperties["arr"] = { "value" } -- 配列
TDAnalytics.setSuperProperties(superProperties) -- 共通イベントプロパティを設定
--イベントを送信
TDAnalytics.track("product_buy", {
product_name="商品名"
});
--ユーザープロパティを設定
TDAnalytics.userSet({
user_name = "AE"
})
end

