Russian version of the documentation you can find here.
- Privacy Policy
- SDK initialization
- Application id
- Application name
- Google maps initialization
- App icons creation
- Colors customization
- Firebase integration
- Tabs customization
- Template features
- Template app screenshots
Travelpayouts Travel App is a application using flight and hotel search engines. When your customer books a flight or hotel, we pay you a commission fee. Framework is based on leading flight search engines Aviasales, JetRadar and hotel search engine Hotellook.
Travelpayouts Travel App supports all Android devices with Android API 21 and higher.
To get your API key, track statistics and payments please sign up to Travelpayouts Travel Affiliate Network.
Learn more about earnings in Travelpayouts FAQ.
Video instruction
Privacy Policy is REQUIRED for your app. If it is missing, your app may be removed from the Google Play at anytime.
We've included a default Privacy Policy in the template app, but you should create YOUR OWN.
You can use online services like privacypolicytemplate.net or App Privacy Policy Generator.
When you have created own Privacy Policy upload it to your website and copy the link to it.
Use this link for a Privacy Policy field in Google Play Console.
Put the Policy link to strings.xml
file.
<string name="com_travelpayouts_privacy_policy" tools:ignore="MissingTranslation">Put policy link here</string>
Change com_travelpayouts_marker
and com_travelpayouts_api_token
in strings.xml
file to your marker and api token params. You can find them at Travelpayouts.com.
<string name="com_travelpayouts_marker" tools:ignore="MissingTranslation">put marker here</string>
<string name="com_travelpayouts_api_token" tools:ignore="MissingTranslation">put api token here</string>
To publish your application on Google Play you must set unique application id. All you need to do is change applicationId
in app/build.gradle
file.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion versions.compileSdk
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 26
targetSdkVersion versions.targetSdk
versionCode 1
versionName "1.0"
...
}
...
}
Change the application name in strings.xml
file.
<string name="app_name" tools:ignore="MissingTranslation">Put appname here</string>
com_travelpayouts_flight_engine_host
is the main endpoint of Travelpayouts flight SDK. You can use https://www.travel-api.pw
as your default endpoint, but we strongly recommend to change it to your WhiteLabel host. You can change com_travelpayouts_flight_engine_host
in strings.xml
file.
<string name="com_travelpayouts_flight_engine_host" tools:ignore="MissingTranslation">https://www.travel-api.pw</string>
Google maps is necessary for your app. To initialize Google maps you need to:
- Go to the Google Cloud Platform Console.
- From the Project drop-down menu, select or create the project for which you want to add an API key.
- From the Navigation menu, select APIs & Services > Credentials.
- On the Credentials page, click Create credentials > API key. The API key created dialog displays your newly created API key (an encrypted string).
- Copy your API key and click Close.
- Put API Key to
manifestPlaceholders
inapp/build.gradle
file.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion versions.compileSdk
defaultConfig {
...
manifestPlaceholders = [
GOOGLE_API_KEY: "Put API key here"
]
...
}
...
}
Best way to create the application icon is using Asset Studio tool:
- In the Project window, select the Android view.
- Right-click the res folder and select New > Image Asset.
- Set up foreground and background layers. IMPORTANT! Do not change icon name.
- Click Next > Finish.
For more information – Create app icons with Image Asset Studio
To customize colors of your app change primary
, primaryButton
, positiveButton
and primary_dark
in colors.xml
. This is main Travelpayouts Travel App colors
<color name="primary">#5A6D87</color>
<color name="primary_dark">#475972</color>
<color name="primaryButton">#F48C6B</color>
<color name="positiveButton">#35C772</color>
To track events and log crashes you need to add Firebase integration:
- Create a new or open existing Firebase project in the Firebase console
- Add the new Android applicaton (Add app -> Android)
- Download google-services.json and place it into the app folder
- Uncomment
//apply plugin: 'com.google.gms.google-services'
and//apply plugin: 'com.google.firebase.crashlytics'
inapp/build.gradle
- Uncomment
//classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0
and//classpath 'com.google.gms:google-services:4.3.3'
inbuild.gradle
- Go to the console Crashlytics section
- Click Set up Crashlytics
- Select "No, this app does not have any version of the Crashlytics SDK installed" and click Next
- Run your app to receive analytics
If you want to add a rental cars tab go to the App class, uncomment tab and add your program affiliate link.
// Tab.RentalCars("Cars program link"),
Important reminder: use the link generator to make click-through and bookings fall into the statistics of the affiliate program.
You can change the text in the About tab. For this you should add to the strings.xml next code:
<string name="about_information_text">Custom about text</string>
If you need translations for this text, you should do it with standard Android tools (create an alternative folder with resources, for example values-ge and put the translation there).
Add the application class with overridden config
and use it in AndroidManifest.xml.
Example:
Our sample package is com.travelpayouts.travel.app
To migrate we should add /app/src/main/java/com/travelpayouts/travel/app/App.kt
package com.travelpayouts.travel.app
import com.travelpayouts.travel.sdk.Config
import com.travelpayouts.travel.sdk.Config.Tab
import com.travelpayouts.travel.sdk.TravelApp
class App : TravelApp() {
override val config: Config = Config(
tabs = setOf(
Tab.Flights,
Tab.Hotels,
// Tab.RentalCars("Cars program link"),
Tab.AppInfo
)
)
}
In AndroidManifest.xml replace:
android:name="com.travelpayouts.travel.sdk.TravelApp"
with:
android:name=".App"
The tabs order depends on their position in the code:
tabs = setOf (
Tab.Flights,
Tab.RentalCars ("Cars program link"),
Tab.Hotels,
Tab.AppInfo
)
In this example, the first will be the Flights tab, then the RentalCars, then the Hotels and at the end the application information tab.
The template consists of the following:
- A search API library to integrate with the search engine server. The library have included real-time flight search update - the user can see the list of available tickets as they are downloaded, there’s no need to wait for all results.
- Flights tags – special tags, such as "cheapest", "fastest", etc. Tickets with these tags are always displayed at the top of the search results.
- Direct flights widget – all non-stop tickets, sorted by increasing price, will automatically appear at the top of the search results screen.
- Direct flights filter – allows you to leave only non-stop flights in the search results.
- Price chart – a chart with the prices of flights on upcoming dates.