Repro - Mobile Analytics for growth
English
アカウント登録 管理画面に戻る
  • 動作環境
  • 管理画面ガイド
  • 開発ガイド
    • アカウント作成
      • Repro アカウントを作成
      • SDK の導入
        • iOS
        • Android
        • Unity
        • Cordova
        • Monaca
        • Cocos2d-x
          • Repro Cocos2d-x SDKのインストール
          • iOSプロジェクトへの導入
          • Androidプロジェクトへの導入
          • セットアップ
          • イベントをトラックする
          • ユーザーIDをセットする
          • プッシュ通知を配信する
          • Next...
        • React Native
        • React Native (Expo)
        • Flutter
        • Web
    • iOS/Android SDK
    • Web
    • オーディエンスAPI
    • オーディエンスインポート(β)
    • プッシュAPI
    • ユーザープロフィールAPI
    • ユーザープロフィールバルクインポート
    • ニュースフィードAPI
    • 削除ユーザー登録API
    • Booster導入ガイド
    • メール(β)
  • リリースノート
  • FAQ
cpp

導入: Cocos2d-x¶

Repro Cocos2d-x SDKのインストール¶

  • こちら から最新版の Repro Cocos2d-x SDK のzipファイルをダウンロードしてください。
  • ダウンロードしたファイルに含まれる Reproディレクトリ をCocos2d-xのプロジェクトディレクトリ直下にコピーしてください。
    • Reproディレクトリ の中のファイルは後ほどiOSプロジェクトおよびAndroidプロジェクトに追加します
Add Repro Bridge to Project Directory

iOSプロジェクトへの導入¶

Xcodeプロジェクトへのブリッジクラスの追加¶

Xcode プロジェクトを開き、先ほどコピーした Reproディレクトリ 内のファイルを追加します。

  • File > Add Files To "YOUR PROJECT NAME" ... を選択
  • 以下のファイルを選択する
    • ReproCpp.h
    • ReproCpp.mm
    • ReproCppConfig.h
    • ReproConverterIOS.h
    • ReproConverterIOS.mm
    • Properties/
    • NewsFeed/NewsFeedEntry.mm
    • RemoteConfig/RemoteConfig.mm
  • 追加時のオプションを以下の通りとする
    • Destination: Copy items if needed -> off
    • Added folders: -> Create groups
    • Add to targets: -> アプリケーションのTargetを選択してください
Add Repro Bridge to iOS Project

Xcode プロジェクトへのフレームワークの追加¶

ダウンロードしたzipファイルに含まれる Repro.xcframework を追加します。

  • File > Add Files To "YOUR PROJECT NAME" ... を選択
  • ダウンロードしたzipファイルに含まれる Repro.xcframework を選択
  • 追加時のオプションを以下の通りとする
    • Destination: Copy items if needed -> on
    • Added folders: -> Create groups
    • Add to targets: -> アプリケーションのTargetを選択してください
Add Repro SDK to iOS Project

さらに、以下のフレームワークを追加してください。

プロジェクトの Targets > Build Phases > Link Binary With Libraries にて追加してください。

  • SystemConfiguration.framework
  • WebKit.framework
  • UserNotifications.framework
Add Frameworks

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;
import io.repro.android.remoteconfig.RemoteConfigListener;
import android.net.Uri;

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);
            }
        });
    }

    private static native void nativeOpenUrlHandler(final String url);

    public static void setupOpenUrlCallback() {
        Repro.setOpenUrlCallback(new Repro.OpenUrlCallback() {
            @Override
            public void onOpened(Uri uri) {
                ReproBridge.nativeOpenUrlHandler(uri.toString());
            }
        });
    }
}

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 で 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(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 Repro from 'react-native-repro';

...

Repro.track("MainScreen", {});
import 'package:repro_flutter/repro.dart';

...

await Repro.track("Initialized");

ユーザーIDをセットする¶

Repro では分析結果はユーザー単位で集計しています。ユーザーIDをセットすることにより、下記のメリットがあります:

  • 複数のデバイスを使っているユーザーを同一視できる
  • キャンペーンの配信対象の抽出がより精緻になる

詳しくは こちら をご覧ください。

プッシュ通知を配信する¶

Reproでは、管理画面もしくはAPIからプッシュ通知配信をすることができます。プッシュ通知配信をするための実装は こちら をご覧ください。

Next...¶

その他の機能についての詳細は、以下をご覧ください。

  • セッション・ライフサイクル
  • イベントトラッキング
  • ユーザーID
  • デバイスID
  • ユーザープロフィール
  • WebView
  • オプトアウト機能
  • アプリ内メッセージ
  • プッシュ通知
  • Adjustで取得したアトリビューションデータをReproにセットする
  • AppsFlyerで取得したアトリビューションデータをReproにセットする
  • « 導入: Monaca
  • 導入: React Native »

About Us Careers Terms of Service Privacy Policy Cookie Policy

© 2022 Repro Inc.