본문 바로가기

시작하기

GitHub

AI-Assisted Setup으로 플러그인을 설치할 수 있습니다. 다음 명령어로 AI 도구에 Capgo 스킬을 추가하세요:

터미널 창
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

그런 다음 아래 프롬프트를 사용하세요:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-appsflyer` plugin in my project.

수동 설정을 선호한다면, 다음 명령어를 실행하여 플러그인을 설치하고 아래의 플랫폼별 지침을 따르세요:

터미널 창
bun add @capgo/capacitor-appsflyer
npx cap sync
import { AppsFlyer } from '@capgo/capacitor-appsflyer';
import type {
AFAdRevenueData,
AFAndroidInAppPurchase,
AFAnonymizeUser,
AFAppendToDeepLink,
AFConsentData,
AFConsentOptions,
AFCuid,
AFCurrency,
AFData,
AFDisable,
AFEmails,
AFEnableTCFDataCollection,
AFEvent,
AFFbDAL,
AFFilters,
AFHost,
AFInit,
AFIosInAppPurchase,
AFLanguage,
AFLatLng,
AFLinkGenerator,
AFLogInvite,
AFOnelinkDomain,
AFOnelinkID,
AFPartnerData,
AFPath,
AFPhone,
AFPromotion,
AFPurchaseDetailsV2,
AFPushPayload,
AFUninstall,
AFUrls,
} from '@capgo/capacitor-appsflyer';
import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.initSDK({
devKey: 'dev-key-123',
appID: 'app-id-123',
});
console.log(result);
import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.startSDK();
console.log(result);
import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.logEvent({ eventName: 'event' });
console.log(result);

자주 하는 실수

“흔한 실수” 섹션
  • 리스너: 화면이 언마운트될 때 핸들을 제거합니다.
  • 네이티브 동기화: 실행 npx cap sync 플러그인 업그레이드 후.
  • 신뢰할 수 있는 소스: 신뢰 src/definitions.ts GitHub 레포지토리에서.

이 메서드를 사용하여 AppsFlyer SDK를 초기화하고 시작하세요. API은 앱이 실행되자마자 호출해야 합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.initSDK({
devKey: 'dev-key-123',
appID: 'app-id-123',
});
console.log(result);

수동 시작 모드에서만 AppsFlyer SDK를 시작하려면 이 메서드를 사용하세요.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.startSDK();
console.log(result);

인앱 이벤트를 로깅합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.logEvent({ eventName: 'event' });
console.log(result);

자체 고객 ID를 설정하면 사용자의 고유 ID를 AppsFlyer의 고유 ID 및 다른 기기의 ID와 교차 참조할 수 있습니다. 이 ID는 로우 데이터(raw-data) 보고서와 Postback API에서 제공되어 내부 ID와 대조할 수 있습니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setCustomerUserId({ cuid: 'cuid' });

인앱 결제에 사용되는 통화를 설정합니다. ISO 4217 기준의 3자리 code를 입력하세요.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setCurrencyCode({ currencyCode: 'USD' });

updateServerUninstallToken

“updateServerUninstallToken” 섹션

다른 플러그인을 통해 GCM/FCM 토큰(Android) 또는 APNs 토큰(iOS)을 수집한 경우 이를 전달하세요. 이 기능을 사용하여 앱 삭제 측정 토큰을 AppsFlyer로 전달할 수 있습니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.updateServerUninstallToken({ token: 'token-123' });

초대 어트리뷰션의 기본 링크로 사용될 OneLink ID를 설정합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setAppInviteOneLink({ onelinkID: 'onelink-id-123' });

브랜드 OneLink 도메인을 등록하여 AppsFlyer가 단축 링크에 숨겨진 어트리뷰션 파라미터를 해석할 수 있도록 합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setOneLinkCustomDomain({ domains: ['example.com'] });

appendParametersToDeepLinkingURL

“appendParametersToDeepLinkingURL” 섹션

OneLink 없이 App Links 딥링크의 어트리뷰션을 활성화합니다. 이 메서드를 호출하기 전에 startSDK(). 최소한 다음을 포함하세요: pid 및 is_retargeting=true 를 parameters map에.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.appendParametersToDeepLinkingURL({
contains: 'contains',
parameters: {},
});

AppsFlyer OneLink이 다른 Universal Link로 감싸져 있는 경우에 사용하세요. 이를 통해 SDK가 감싸진 URL을 해석하여 딥 링크가 정상적으로 작동하도록 합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setResolveDeepLinkURLs({ urls: ['https://example.com'] });

addPushNotificationDeepLinkPath

“addPushNotificationDeepLinkPath” 섹션

SDK가 푸시 알림 페이로드에서 딥링크 값을 추출하는 방식을 설정합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.addPushNotificationDeepLinkPath({ path: ['path/to/file'] });

지정된 AppsFlyer 파트너에게 이벤트가 전달되지 않도록 차단합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setSharingFilter({ filters: ['filter'] });

setSharingFilterForAllPartners

“setSharingFilterForAllPartners” 섹션

모든 AppsFlyer 파트너에게 이벤트가 전달되지 않도록 차단합니다. setSharingFilter 설정을 덮어씁니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setSharingFilterForAllPartners();

setSharingFilterForPartners

“setSharingFilterForPartners” 섹션

지정된 AppsFlyer 파트너에게 이벤트가 전달되지 않도록 차단합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setSharingFilterForPartners({ filters: ['filter'] });

AppsFlyer로 전송할 추가 키-값 데이터를 설정합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setAdditionalData({ additionalData: {} });

AppsFlyer의 고유 디바이스 ID(앱을 새로 설치할 때마다 생성됨)를 가져옵니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.getAppsFlyerUID();
console.log(result);

최종 사용자를 AppsFlyer 분석에서 옵트아웃 처리합니다(사용자 데이터 익명화).

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.anonymizeUser({ anonymizeUser: true });

이 API이 호출되면, SDK은 더 이상 서버와 통신하지 않으며 작동을 중단합니다. 사용자의 데이터 수집 동의/거부(opt-in/opt-out) 기능을 구현할 때 유용합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.stop();
console.log(result);

SKAdNetwork 사용 중단

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.disableSKAdNetwork({ shouldDisable: true });

disableAdvertisingIdentifier

“disableAdvertisingIdentifier” 섹션

SDK를 통한 다양한 광고 ID 수집을 비활성화합니다. 여기에는 Apple IDFA(Identity for Advertisers), Google GAID(Google Advertising ID), OAID, Amazon AAID(Amazon Advertising ID)가 포함됩니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.disableAdvertisingIdentifier({ shouldDisable: true });

Apple Search Ads 어트리뷰션을 옵트아웃합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.disableCollectASA({ shouldDisable: true });

커스텀 호스트를 설정합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setHost({
hostPrefixName: 'host-prefix',
hostName: 'host',
});

기존 사용자가 친구나 지인을 앱의 새로운 사용자로 초대할 수 있도록 허용합니다

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.generateInviteLink({ brandDomain: 'example.com' });
console.log(result);

validateAndLogInAppPurchaseAndroid

“validateAndLogInAppPurchaseAndroid” 섹션

인앱 결제 서버 검증을 위한 API입니다. 검증에 성공하면 관련 값이 포함된 af_purchase 이벤트가 자동으로 기록됩니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.validateAndLogInAppPurchaseAndroid({
currency: 'USD',
publicKey: 'public-key-123',
signature: 'signature',
purchaseData: 'purchase-data',
price: 'price',
});
console.log(result);

validateAndLogInAppPurchaseIos

“validateAndLogInAppPurchaseIos” 섹션

현재 contract의 소스 정의를 확인하세요.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.validateAndLogInAppPurchaseIos({
currency: 'USD',
inAppPurchase: 'in-app-purchase',
price: 'price',
transactionId: 'transaction-id-123',
});
console.log(result);

앱에서 사용 중인 AppsFlyer SDK 버전을 가져옵니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.getSdkVersion();
console.log(result);
“enableFacebookDeferredApplinks” 섹션

Facebook Deferred AppLinks 수집을 활성화합니다. Facebook SDK 및 대상/클라이언트 기기에 Facebook 앱이 설치되어 있어야 합니다. 정상적으로 작동하려면 AppsFlyer SDK를 초기화하기 전에 이 API를 호출해야 합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.enableFacebookDeferredApplinks({ enableFacebookDAL: true });
console.log(result);

푸시 알림 캠페인의 데이터를 측정하고 가져옵니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.sendPushNotificationData({ pushPayload: {} });

기기 언어를 설정합니다. 설정된 데이터는 Raw Data Reports에 표시됩니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.setCurrentDeviceLanguage({ language: 'en-US' });
console.log(result);

교차 프로모션 캠페인의 일부로 impression을 로그로 기록합니다. AppsFlyer dashboard에 표시된 그대로 프로모션 앱 ID를 사용하세요.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.logCrossPromoteImpression({
appID: 'app-id-123',
campaign: 'campaign',
parameters: {},
});
console.log(result);

사용자 이메일을 설정하고 암호화합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.setUserEmails({ emails: ['user@example.com'] });
console.log(result);

사용자 위치를 수동으로 로깅하기

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.logLocation({
latitude: 48.8566,
longitude: 2.3522,
});
console.log(result);

SHA-256으로 암호화된 문자열로 전송됩니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.setPhoneNumber({ phone: '+15555550123' });
console.log(result);

파트너 연동을 위한 커스텀 데이터를 전송할 수 있습니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.setPartnerData({
data: {},
partnerId: 'partner-id-123',
});
console.log(result);

사용자 초대 인앱 이벤트(af_invite)를 기록할 때 사용합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.logInvite({
eventParameters: {},
channel: 'channel',
});
console.log(result);

기기에서 네트워크 사업자(carrier) 및 SIM 사업자 이름을 수집하지 않도록 설정할 때 사용합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setDisableNetworkData({ shouldDisable: true });

CMP를 사용하는 사용자를 위해 동의 데이터 자동 수집 여부를 설정합니다. 설정된 플래그 값은 앱 세션 간에 유지됩니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.enableTCFDataCollection({ shouldEnableTCFDataCollection: true });

사용자 동의 데이터를 수동으로 설정할 때 사용합니다. 앱에서 TCF v2.2와 호환되는 CMP를 사용하지 않는 경우, 다음 메서드를 사용하여 SDK에 동의 데이터를 직접 전달하세요.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setConsentData({ data: { isUserSubjectToGDPR: true } });

광고 수익을 어트리뷰션하면 앱 소유자는 사용자 LTV와 캠페인 ROI를 완벽하게 파악할 수 있습니다. 앱 내 보상형 동영상, 오퍼월, 전면 광고, 배너에 광고를 표시하여 광고 수익이 발생합니다. 이 메서드를 사용하여 광고 수익을 기록할 수 있습니다.

import { AppsFlyer, MediationNetwork } from '@capgo/capacitor-appsflyer';
await AppsFlyer.logAdRevenue({
monetizationNetwork: 'monetization-network',
mediationNetwork: MediationNetwork.IRONSOURCE,
currencyIso4217Code: 'USD',
revenue: 1,
});

사용자 동의 데이터를 수동으로 설정할 때 사용합니다. 앱에서 TCF v2.2와 호환되는 CMP를 사용하지 않는 경우, 다음 메서드를 사용하여 SDK에 동의 데이터를 직접 전달하세요.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.setConsentDataV2({
isUserSubjectToGDPR: true,
hasConsentForDataUsage: true,
hasConsentForAdsPersonalization: true,
hasConsentForAdStorage: true,
});

현재 세션에서 AppsFlyer SDK이 이미 시작되었는지 확인하는 데 사용합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.isSDKStarted();
console.log(result);

현재 AppsFlyer SDK이 중지된 상태인지 확인하는 데 사용합니다.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.isSDKStopped();
console.log(result);

App Set ID 수집을 비활성화합니다. SDK 초기화 전에 호출하면 App Set ID가 수집되지 않습니다. 초기화 후에 호출하면 App Set ID가 수집되지만 요청 페이로드에는 포함되지 않습니다. Android 전용.

import { AppsFlyer } from '@capgo/capacitor-appsflyer';
await AppsFlyer.disableAppSetId();

validateAndLogInAppPurchaseV2

“validateAndLogInAppPurchaseV2” 섹션

인앱 결제 V2의 서버 검증을 위한 API. 검증에 성공하면 관련 값이 포함된 af_purchase 이벤트가 자동으로 기록됩니다.

import { AppsFlyer, AFPurchaseType } from '@capgo/capacitor-appsflyer';
const result = await AppsFlyer.validateAndLogInAppPurchaseV2({
purchaseDetails: {
purchaseType: AFPurchaseType.oneTimePurchase,
purchaseToken: 'purchase-token-123',
productId: 'product-id-123',
},
});
console.log(result);

이 페이지는 플러그인의 src/definitions.tsupstream에서 public API가 변경되면 sync를 다시 실행하세요.

사용 중이라면 시작하기 대시보드 및 API 운영을 계획하려면, 이를 다음과 연결하세요 @capgo/capacitor-appsflyer 사용하기 @capgo/capacitor-appsflyer 사용 시 네이티브 기능을 위해, API 개요 구현 세부 사항은 API 개요에서 소개 구현 세부 사항은 소개에서 API 키 API Keys의 구현 세부 사항은, 기기 Devices의 구현 세부 사항은.