導入: Cocos2d-x¶
Repro SDKの導入¶
最新の Repro-Cocos2d-x-SDK からzipファイルをダウンロードしてください。
ダウンロードしたファイルに含まれるReproとRepro.frameworkディレクトリをCocos2d-xのプロジェクトディレクトリ直下にコピーしてください。

iOSプロジェクトへの導入¶
プロジェクトへのブリッジクラスの追加¶
XCodeでプロジェクトを開き、先ほど追加したReproディレクトリ内にある ReproCpp.h
, ReproCpp.mm
, ReproCppConfig.h
, ReproConverterIOS.h
, ReproConverterIOS.mm
, Properties
, NewsFeed/NewsFeedEntry.mm
, RemoteConfig/RemoteConfig.mm
をプロジェクトに追加してください。
また、Xcodeへファイルを追加する際のオプションとして”Destination: Copy items if needed”のチェックを外してください。

プロジェクトへ必要なフレームワークの追加¶
ダウンロードした Repro.framework
をプロジェクトに追加してください。
追加する際は、”Destination: Copy items if needed”のチェックを入れてください。また、 Added folders
のオプションは"Added folders: Create groups"を選択することをお勧めします。

さらに、以下のフレームワークを追加してください。
プロジェクトの Targets > Build Phases > Link Binary With Libraries にて追加してください。
- SystemConfiguration.framework
- WebKit.framework
警告
- Repro Cocos2d-x SDK 5.0.0未満を利用する場合は CoreTelephony.framework 、 MobileCoreServices.framework 、 Security.framework も追加が必要です。

Androidプロジェクトへの導入¶
注釈
AndroidプロジェクトにRepro SDKを導入する場合は、Cocos2d-x v3.10以上およびAndroid Studioを推奨しております。推奨環境以外では、導入にあたって一部のコードや手順が異なる場合がございますのでご了承ください。
SDKのインストール¶
proj.android-studio/app
ディレクトリ内に libs
ディレクトリを作成してください。
上記で作成した libs
ディレクトリの中にダウンロードしたファイルに含まれる repro-android-sdk-x.x.x.aar
をコピーしてください。
次に app/build.gradle
に以下のコードを追加してください。
repositories {
flatDir { dirs 'libs' }
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':libcocos2dx')
implementation(name: 'repro-android-sdk-x.x.x', ext:'aar')
}
注釈
Gradle 3.4 未満のバージョンの場合は 'implementation' が利用できません。 'compile'を利用してください。
独自のApplicationクラスを使っていない場合:
AndroidManifest.xml
を開いて application エレメントの android:name 属性に io.repro.android.Cocos2dxApplication を指定してください。
<!-- AndroidManifest.xml -->
<application
android:name="io.repro.android.Cocos2dxApplication"
android:label="@string/app_name"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher">
独自のApplicationクラスを使っている場合:
独自のApplicationクラスの onCreate
にて io.repro.android.Cocos2dxBridge.setupWithoutToken(Application)
を呼び出してください。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
...
+ io.repro.android.Cocos2dxBridge.setupWithoutToken(this);
...
}
}
なお、Repro SDKを使用するにはアプリケーションに以下のパーミッションが必要です。これらのパーミッションはAndroid Studioの「Manifest Merging」機能によって自動で追加されるため、AndroidManifest.xml
に手動で追加する必要はありません。
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
ブリッジクラスの追加¶
app/jni/Android.mk
の LOCAL_SRC_FILES
と LOCAL_C_INCLUDES
を以下のように編集してください。
// Android.mk
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../../Classes/AppDelegate.cpp \
../../../Classes/HelloWorldScene.cpp \
../../../Repro/ReproCpp.cpp \
../../../Repro/ReproConverterAndroid.cpp \
../../../Repro/NewsFeed/NewsFeedEntry.cpp \
../../../Repro/RemoteConfig/RemoteConfig.cpp \
../../../Repro/Properties/StandardEventProperties.cpp \
../../../Repro/Properties/ViewContentProperties.cpp \
../../../Repro/Properties/SearchProperties.cpp \
../../../Repro/Properties/AddToCartProperties.cpp \
../../../Repro/Properties/AddToWishlistProperties.cpp \
../../../Repro/Properties/InitiateCheckoutProperties.cpp \
../../../Repro/Properties/AddPaymentInfoProperties.cpp \
../../../Repro/Properties/PurchaseProperties.cpp \
../../../Repro/Properties/ShareProperties.cpp \
../../../Repro/Properties/LeadProperties.cpp \
../../../Repro/Properties/CompleteRegistrationProperties.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../Repro
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../Repro/Properties
app/src
以下に下記のクラスを追加してください。
package com.your.PackageName;
import org.cocos2dx.lib.Cocos2dxHelper;
import io.repro.android.Repro;
public class ReproBridge {
public static void enableInAppMessagesOnForegroundTransition() {
Repro.enableInAppMessagesOnForegroundTransition(Cocos2dxHelper.getActivity());
}
private static native void nativeListenerHandler(final RemoteConfigListener.FetchStatus status);
public static void fetchRemoteConfig(final long timeout) {
Repro.getRemoteConfig().fetch(timeout, new RemoteConfigListener() {
@Override
public void onCompletion(FetchStatus status) {
ReproBridge.nativeListenerHandler(status);
}
});
}
}
Repro SDKの導入 にて追加した Repro/ReproCppConfig.h
の以下の箇所を編集してください。
#ifndef __REPRO_CPP_CONFIG_H__
#define __REPRO_CPP_CONFIG_H__
#define CLASS_NAME_REPRO_CLIENT_BRIDGE "io.repro.cocos2dx.v3.sample.ReproBridge"
#define JNI_REPRO_CLIENT_BRIDGE io_repro_cocos2dx_v3_sample_ReproBridge
#endif
セットアップ¶
AppDelegate.cpp
で Repro/ReproCpp.h
をインクルードし、 applicationDidFinishLaunching
で セッション を開始してください。
YOUR_APP_TOKEN
には管理画面の 設定 > プロジェクト設定 に記載されている SDK トークン を設定してください。
#include "ReproCpp.h"
...
bool AppDelegate::applicationDidFinishLaunching() {
...
// Setup Repro
ReproCpp::setup("YOUR_APP_TOKEN");
...
}
ある程度操作した後、 「ホームボタン」を押下 します。SDKが収集した情報は アプリがバックグラウンドに移行 した時点でサーバーにアップロードされます。
イベントをトラックする¶
意味のある分析や、マーケティング施策を実施するためには、適切なユーザーグループを絞り込むことが重要です。イベントをトラックしてユーザーの行動を記録することにより、管理画面上で目的に応じた適切なユーザーグループを選択することができるようになります。
イベントを用いたユーザーグループ指定の例:
どういうイベントをとるべきかわからない場合は、まず各画面の表示時にイベントをとってみることをおすすめします。
例:
@implementation MainViewController
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[Repro track:@"MainViewController" properties:nil];
...
}
class MainViewController: UIViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
Repro.track("MainViewController", properties: nil)
...
}
class MainViewController: UIViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
Repro.track(event: "MainViewController", properties: [:])
...
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
Repro.track("MainActivity");
...
}
}
#include "ReproCpp.h"
...
ReproCpp::track("Initialized");
Repro.Track ("Initialized");
// Will be written later
class MainScreen extends React.Component {
componentDidMount() {
Repro.track("MainScreen", {});
}
...
}
import 'package:repro_flutter/repro.dart';
...
await Repro.track("Initialized");
Repro の分析チームによるイベントの設定支援サービスも提供しておりますので、ご希望の方は、ぜひ お問い合わせ からお問い合わせください。
ユーザーIDをセットする¶
Repro では分析結果はユーザー単位で集計しています。ユーザーIDをセットすることにより、下記のメリットがあります:
- 複数のデバイスを使っているユーザーを同一視できる
- キャンペーン機能の テスター管理 において、アプリで管理しているユーザーを識別できる
- キャンペーンの配信対象の抽出がより精緻になる
詳しくは こちら をご覧ください。
Next...¶
その他の機能についての詳細は、以下をご覧ください。