SDK testing on the Airbridge dashboard
The Airbridge dashboard offers a testing console to test whether the Airbridge SDK is working properly. Install the Airbridge SDK first before proceeding with the test.
After completing the Airbridge Android SDK setup, you can test whether it works properly using real-time logs, test sites, etc. Prepare the following information before testing the Android SDK.
Airbridge uses GAID (Google Advertising ID) as an identifier for attribution.
You can find the GAID of the test device by navigating to [Settings]>[Google Settings]>[Ads]>[My Ad ID] on the test device. The method for finding the GAID on the device may vary depending on the Android version installed on the device.
Alternatively, you can easily check the GAID of the test device by downloading the My Device ID app by Airbridge using the QR code provided below on your test device.
Attention
Different Airbridge App modes must be selected on the Airbridge dashboard to separate the data of the app that you want to measure ad performance from the data of the app that you want to use for testing purposes.
For development apps, you must enter the package name into the Airbridge dashboard. Refer to the Airbridge user guide for more details.
Check whether the Airbridge Android SDK is operating properly.
Follow the steps below to check whether the Install events are being collected by the Android SDK.
1. Prepare a test device where the app is not installed, or if the app is already installed, delete it before testing.
2. Set the SDK log level to VERBOSE
.
val config = AirbridgeConfig.Builder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
.setLogLevel(Log.VERBOSE)
.build()
Airbridge.init(this, config)
3. Install the app on the test device. After installing the app, launch it so that the Install event is collected.
The first Open event collected by Airbridge is recorded as an Install event. Therefore, the Open may not be recorded when the app install event is collected.
4. Navigate to [Raw Data]>[App Real-Time Log] in the Airbridge dashboard and find the events with the test device's GAID in the real-time logs. If the Install event can be found in the real-time log, you can confirm that the SDK is working as intended. It may take up to 10 minutes for the Install event to be visible in the [App Real-time Log].
5. If the Install event is not confirmed in the [App Real-time Log] even after a sufficient amount of time, check whether the Install event is in the SDK log. When the Install event is in the SDK log, delete the app from the test device and reinstall it.
If the Install event is still not confirmed, contact your Airbridge CSM and share your SDK logs. If you don't have a designated Airbridge CSM, contact the Airbridge Help Center.
Airbridge initiates the attribution process when a Target Event occurs. The Install event is a typical Target Event. By checking the attribution result of the Install event, you can confirm whether the process from event collection to attribution is operated successfully.
1. Prepare a test device where the app is not installed, or if the app is already installed, delete it before testing.
2. Set the SDK log level to VERBOSE
.
val config = AirbridgeConfig.Builder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
.setLogLevel(Log.VERBOSE)
.build()
Airbridge.init(this, config)
3. Access the Attribution Integration Test site on your test device.
4. Enter the App Name and GAID, then click Submit. The App Name can be found on the [Settings]>[Tokens] page in the Airbridge dashboard.
5. Click Test Install Attribution to move to the Google Play Store. If the Airbridge Android SDK is not installed on the app that is available for download in the Google Play Store, use tools like Android Debug Bridge to install the app with the SDK.
6. Install the app on your test device. You must launch the app after install to collect the Install event.
The first Open event is recorded as an Install event in Airbridge. Therefore, the Open event may not be recorded if the Install event is collected.
7. Navigate to [Raw Data]>[App Real-Time Log] in the Airbridge dashboard and find the events with the test device's GAID in the real-time logs. If the Install event can be found in the real-time log, you can confirm that the SDK is working as intended. It may take up to 10 minutes for the Install event to appear in the [App Real-time Log].
8. Check whether the Install event data is collected as follows. The data must match the details below to confirm that the attribution process has been completed successfully.
Event Category: Install
gaid
: GAID entered in the attribution test site
attributionResult.channel
: test_sdk
attributionResult.attributedTouchpointOriginURL
: https://abr.ge/@${YOUR_APP_NAME}/test_sdk?campaign=test_sdk_campaign&device_uuid=${YOUR_GAID}
9. If the Install event is not confirmed in the [App Real-time Log] even after sufficient time, check whether the Install event is in the SDK log. When the Install event is in the SDK log, uninstall the application on the test device and reinstall it.
If the Install event is still not confirmed, contact your Airbridge CSM and share your SDK logs. If you don't have a designated Airbridge CSM, contact the Airbridge Help Center.
Check whether the event and user data are being collected as intended.
Check whether the events are being collected by the Airbridge Android SDK as defined in your Airbridge event taxonomy by following the steps below.
Navigate to [Raw Data]>[App Real-time Log] in the Airbridge dashboard and check whether the event data is being collected as defined in your Airbridge event taxonomy.
Category: Check data at eventData.goal.category
.
Action: Check data at eventData.goal.action
.
Label: Check data at eventData.goal.label
.
Value: Check data at eventData.goal.value
. Make sure to check whether the value data of purchase-related events are being collected properly.
Semantic Attributes: Check data at eventData.goal.semanticAttributes
.
Custom Attributes: Check data at eventData.goal.customAttributes
.
If you don't complete the hybrid app setup, events that occur in the app's WebView are recorded as web events, and the attribution results are not measured correctly. Proceed with the hybrid app setup before checking whether events that occurred from WebView are being collected properly.
Check the SDK logs and confirm whether events are being properly sent to the Airbridge server. You can solve problems based on the SDK logs.
Problem | Solution |
---|---|
Cannot find | Check whether the event transmission function is being called. |
Cannot find | Check whether the network is in a condition to send data to an external server. |
The | It takes up to 10 minutes to find the Install event in the real-time logs. Please wait for a moment. Or, adjust the event payload size to be less than 1MB. Event payloads over 1MB are not properly collected by Airbridge. |
Below is an example of the eventData.goal
payload.
{
...
"eventData": {
...
"goal": {
"category": "airbridge.ecommerce.order.completed",
"semanticAttributes": {
"value": 10000.0,
"totalQuantity": 1000,
"currency": "krw",
"transactionID": "transaction_1",
"products": [
{
"quantity": 10,
"productID": "coca_1",
"price": 1.99,
"name": "Coca cola",
"currency": "usd",
"position": 1
},
{
"quantity": 5,
"productID": "fanta_1",
"price": 2.5,
"name": "Fanta Orange",
"currency": "usd",
"position": 2
},
{
"quantity": 1,
"productID": "terra_pack_1",
"price": 10.99,
"name": "Terra 12 Pack",
"currency": "usd",
"position": 3
}
],
"inAppPurchased": true
}
}
},
...
}
Attention
If you haven't set up user data collection in the Airbridge Android SDK, the checkup process described below is not necessary.
Check whether the user data is collected as intended by the Android SDK.
Navigate to [Raw Data]>[App Real-time Log] to check whether the events are collected as intended.
User data: Check data at user
. The collected user data should be included in the user
.
If you can find the following logs, you can confirm that the user data is sent to the Airbridge server as intended.
Client request: method={method} url={url} header={header} body={pretty printed json body}
If you find the following SDK log, you can confirm that the user data has been modified after collection.
User data is modified: user={user json}
Below is an example of a payload of the collected user data.
{
...
"eventData": {
...
},
"user": {
"externalUserID": {User ID},
"externalUserPhone": {User Phone},
"alias": {
"key": {value}
},
"attributes": {
"key": {value}
},
"isClientSideHashed": true
},
...
}
Check whether the deep linking feature configured in the Airbridge Android SDK is working properly.
Before testing the deep link, make sure the following items have been set up.
Item |
Description |
Resources |
---|---|---|
HTTP Deep Link (App links) | Setup is required. | |
Scheme Deep Link | Setup is required. | |
Deferred Deep Link | The setup is completed automatically. No additional setup is required. | |
Custom Domain | Setup is optional. | |
App Install | - If you don't need to test the deferred deep link, install the app on your test device in advance. - If you need to test the deferred deep link, the app should not be installed on the test device. If the app is installed, delete the app from the test device. |
Airbridge provides a website for testing deep links. If you want to test deferred deep links, you need to uninstall the app from your test device.
1. Visit the deep link testing site from your test device. You can access the website directly by using the QR code below.
2. Enter the App Name you registered with Airbridge. You can find it on the [Settings]>[Tokens] page in the Airbridge dashboard.
If you want to test a specific deep link address, enter the scheme deep link into the Deeplink URL field. The scheme deep link format is {YOUR_SCHEME}://...
If you're using a custom domain, make sure to enter your custom domain.
3. Click one of the buttons listed below. Click the button depending on the deep link type you are testing.
Note that you can only test deferred deep links if the app is not installed on your test device.
Button |
Description |
Example |
---|---|---|
Test HTTP Deeplink Type-1 | - You can test the HTTP deep link in the format of - Note that when the user opens the app through a QR code, a Deeplink Open event is collected. |
|
Test HTTP Deeplink Type-2 | - You can test the HTTP deep link in the format of - Note that when the user opens the app through a QR code, a Deeplink Open event is collected. |
|
Test Scheme Deeplink | - You can test the scheme deep link. - Note that when the user opens the app through a QR code, a Deeplink Open event is collected. |
|
Test Deferred Deeplink | - You can test the deferred deep link. - Note that when the user opens the app through a QR code, a Deeplink Open event is collected. |
|
Test Custom Domain Deeplink | - You can test the custom domain. This test is only available when a custom domain is entered. - Note that when the user opens the app through a QR code, a Deeplink Open event is collected. |
|
4. When the Deep Link Open event is successfully collected, you can find it on the [Raw Data]>[App Real-time Log] page in the Airbridge dashboard.
Once you confirm the Deeplink Open event on the [App Real-time Log] page, confirm the information listed below by the buttons you click. If the deep link is functioning as intended, all items should be confirmed.
After clicking Test HTTP Deeplink Type-1, you need to confirm the following items in the SDK log.
eventData.deeplink
is https://{YOUR_APP_NAME}.abr.ge...
{YOUR_SCHEME}://main...
is passed to the deep link callback function.
If you have entered a deeplink URL in the deeplink test site, the information passed will be changed. For example, if you have entered {YOUR_SCHEME}://path...
as the deeplink URL, ${YOUR_SCHEME}://path...
is passed.
After clicking Test HTTP Deeplink Type-2, you need to confirm the following items in the SDK log.
eventData.deeplink
is https://{YOUR_APP_NAME}.airbridge.io...
{YOUR_SCHEME}://main...
is passed to the deep link callback function.
If you have entered a deeplink URL in the deeplink test site, the information passed will be changed. For example, if you have entered {YOUR_SCHEME}://path...
as the deeplink URL, ${YOUR_SCHEME}://path...
is passed.
After clicking Test Scheme Deeplink, you need to confirm the following items in the SDK log.
eventData.deeplink
is {YOUR_SCHEME}://main...
{YOUR_SCHEME}://main...
is passed to the deeplink callback function.
If you have entered a deeplink URL in the deeplink test site, the information passed will be changed. For example, if you have entered {YOUR_SCHEME}://path...
as the deeplink URL, ${YOUR_SCHEME}://path...
is passed.
After clicking Test Deferred Deeplink, you need to confirm the following items in the SDK log.
eventData.deeplink
is ${YOUR_SCHEME}://main...
{YOUR_SCHEME}://main...
is passed to the deeplink callback function.
If you have entered a deeplink URL in the deeplink test site, the information passed will be changed. For example, if you have entered {YOUR_SCHEME}://path...
as the deeplink URL, ${YOUR_SCHEME}://path...
is passed.
After clicking Test Custom Domain Deeplink, you need to confirm the following items in the SDK log.
eventData.deeplink
is https://{YOUR_CUSTOM_DOMAIN}...
{YOUR_SCHEME}://main...
is passed to the deeplink callback function.
If you have entered a deeplink URL in the deeplink test site, the information passed will be changed. For example, if you have entered {YOUR_SCHEME}://path...
as the deeplink URL, ${YOUR_SCHEME}://path...
is passed.
Refer to the information below for troubleshooting regarding deep links.
Problem | Solution |
---|---|
You clicked a deep link, but the app was not launched. Or the SDK logs show information that is not intended as per setting. | Check whether the deep link is set up correctly. Refer to this article for the deep linking setup. |
You clicked a deep link, and the app was launched, but you didn't land on the intended app page. | You need to implement the user redirection based on the deep link path passed to the If the |
このページは役に立ちましたか?
{
...
"eventData": {
...
},
"user": {
"externalUserID": {User ID},
"externalUserPhone": {User Phone},
"alias": {
"key": {value}
},
"attributes": {
"key": {value}
},
"isClientSideHashed": true
},
...
}