# Chartboost SDK Integration

<!--
## How big is the Chartboost SDK?

-   **Android:**  The Chartboost SDK will add approximately 700KB to your final download size.
-   **iOS 9.x+:**  The Chartboost SDK will add less than 1.5MB to your final download size.
-   **iOS 8.x & below:**  The Chartboost SDK will add less than 4MB to your final universal build download size.

**The actual SDK package download file may be significantly larger**  because it includes sample code and the full Chartboost framework. Many of these files can be removed after compiling.
-->


## Can I use one app ID and one app signature for multiple apps?

You should not use the same app ID and signature for multiple apps!

-  If anyone decides to block your app, they would also block any other app sharing the same ID. For publishers, this could impact potential earnings.
-  Your historical analytics would be inaccurate. Data would be combined between apps sharing the same ID.
-  Sharing the same app ID across different platforms will most likely break things and make you sad.

The best practice would be to  [create a brand new app](/en/monetization/publishing/adding-your-first-app-and-campaign/)  in your Chartboost platform.



## Where is my app’s bundle ID?

### iTunes Connect

Your app's iOS bundle ID is in its  [iTunes Connect](https://itunesconnect.apple.com/login)  record under  **App Information > General Information.**

### Google Play

Google Play bundle IDs are in your app's  [Google Play Store](https://play.google.com/store)  URL.

### Amazon Appstore

Amazon Standard Identification Numbers (ASINs) are available publicly on your app's Amazon Appstore page in the  **Product Details**  section.



## Why doesn’t the app audio pause during an ad?

-   You must pause the app audio when a video begins playing and unpause once the video is done.
- See the API reference to find the proper methods to pause/resume the ad:
    -   [iOS](https://reference.chartboost.com/monetization/ios)
    -   [Android](https://reference.chartboost.com/monetization/android/)
-   [Learn more about device identifiers](/en/advertising/tools/device-identifiers/).



## Why doesn’t the app icon appear in the platform after I import the app?

It's possible that your browser isn't updating your cache or cookies. Try removing your browser cache and cookies. For instructions, click on the browser you're using:

-   [Chrome](https://support.google.com/chrome/answer/95582?hl=en)
-   [Firefox](https://support.mozilla.org/en-US/kb/how-clear-firefox-cache)
-   [Safari](https://discussions.apple.com/message/20074025#20074025)

Still not working?  [Let us know!](https://staging-support-chartboost.webflow.io/contact-us)



## Is Chartboost compatible with iOS App Transport Security (ATS)?

**Yes.**  The Chartboost SDK and all links are compatible with App Transport Security. If you'd like to run cross-promotion campaigns that link to your company website, or otherwise have ads that direct to locations outside the app store, make sure you use https, have a valid SSL certificate, and follow other methods to ensure your custom URL links remain ATS compliant.



## Why do video ads fail or display a black screen in my Android app?

There may be a problem with your Android app's manifest settings. Any activities that show Chartboost ads must have the value  `android:hardwareAccelerated="true"`  in their activity entry on the Android Manifest, or the video might not display properly.

If you're developing on  **Android outside of Unity**, check your Android Manifest files to ensure that the following is included. If not, add this and retest:

```
<activity android:name="com.chartboost.sdk.CBImpressionActivity"  
android:excludeFromRecents="true"  
android:hardwareAccelerated="true"  
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"  
android:configChanges="keyboardHidden|orientation|screenSize" />
```

Instead of enabling hardware acceleration for individual activities that show ads, you can apply hardware acceleration across your entire app by adding  **android:hardwareAccelerated='true'**  inside your top-level  **application**  entry in  **AndroidManifest.xml**

  

If you're developing on  **Android through Unity**, and you are NOT using the  [official Chartboost plugin,](https://support.chartboost.com/en/post/how-to-integrate-unity)  make this call immediately after calling the  **startWithAppId**  method:

```
_Chartboost.setFramework(CBFramework.CBFrameworkUnity, unityVersion);
```

`unityVersion`  is the value returned by  `Application.unityVersion` . If you are still having problems, feel free to  [contact us.](/en/support/contact-us/)  Please also tell us...

-   if the problem persists after turning on the device's  **Force GPU Rendering**  setting under  **Settings > Developer Options > Force GPU Rendering.**
-   the Android OS version and model of the device being affected.
-   the version of the third-party framework or engine you're using (e.g. Unity), if applicable.
-   which version of the Chartboost SDK you're using.
-   which mediation SDK you're using, if applicable.

**Please also include a .apk build of your game so we can test it.**



## Can I use Android activities instead of views to show ads?

In some cases, it may be preferable for native Android or Unity Android developers to use an activity instead of a view to display Chartboost ads. While activities may work better in games built with certain game engines, we encourage you to experiment with both, as there can be both upsides and downsides to either method.



## Is there a way to build Chartboost Unity integration without linking the GooglePlayServices library?

If you wish, you can also bypass the requirement to include the Google Play Services library in your Unity build. If you remove the following from the manifest then you will no longer be prompted to run the setup dialog, and your app should be able to proceed as usual.

```
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
```



## What are the requirements for SDK integration?

The Chartboost initialization call must be made during hard and soft bootups  **within the first few seconds of your app launching,**  regardless of any other actions or user interaction within your app.

Please check the  [SDK integration guide](/en/monetization/get-started/#sdk-integration)  for more specific requirements.



## Which version of the SDK am I running?

See the API reference for how to do this:

-   [iOS](https://reference.chartboost.com/monetization/ios)
-   [Android](https://reference.chartboost.com/monetization/android/)

Alternatively, you can also...

-   Find the version number in the readme within the SDK download file.
-   Check the top of the  **Chartboost.h**  header embedded inside the framework (iOS only).
-   Set up  [Charles Web Proxy](/en/monetization/charles-web-proxy/)  to determine the SDK version.


## Why is the option “Request publishing permissions” greyed out?

-   In other to display Chartboost ads your application has to be approved with publishing permissions first. If the option "**Request publishing permissions**" is greyed out in your platform, this means the SDK integration icon is still not green and we haven't detected any initialization call from your application. We advise the revision of the  [Chartboost SDK integration](/en/monetization/get-started/#sdk-integration)  guides.
-   You can confirm the initializing of our SDK by using the application  [Charles the Web Proxy](/en/monetization/charles-web-proxy/). The initialization call you are looking for is detailed in the  [Interpreting Charles Results section of our Charles Page](/en/monetization/charles-web-proxy/).


<!--
## What coding languages are you compatible with?

We support native Objective-C, Java, and Unity.
-->


## Can I still integrate the SDK if my app isn’t live?

**Yes,**  you can still integrate the Chartboost SDK and run tests if your app isn't yet live in the App Store, Google Play Store, or Amazon Appstore for Android. Just  [add your app to the platform](/en/monetization/publishing/adding-your-first-app-and-campaign/)  and after your game is live, follow the steps on that page to add your market URL or ASIN.



## What requirements do I need to meet before I submit my app to the store?

If you've integrated the Chartboost SDK and finalized your build, you're ready to submit to the App Store! Before you do this, however, here are a few tips and recommendations we have:

-   Ensure that your Chartboost App ID and Signature are correct. Some developers may have multiple Apps or multiple versions of the same App. If the wrong IDs are used, you will, unfortunately, need to resubmit to fix this.
-   Use  [Charles](/en/monetization/charles-web-proxy/)  (or any other web debug proxy) to ensure the Chartboost SDK is being initialized on each bootup. We expect the  _api/install_ call to be made each time a user launches or resumes the App.
-   Perform a final QA to ensure that the user experience is as you’d like. For example, are ad units showing up in the appropriate location?  [Test Mode](https://support.chartboost.com/en/post/test-mode)  is a great tool to use for this kind of testing.
-   If submitting to the Apple App Store, you may be asked some questions regarding your use of IDFA. You can find information regarding the Chartboost SDK complying with Apple’s IDFA policy  [here](/en/advertising/tools/device-identifiers/).

As of June 1, 2016, Apple requires that all submitted apps must support IPv6.  


## Why do I have to initialize Chartboost every time my app becomes active?

It’s the best way to ensure that we’re accurately tracking analytics and capturing conversions. Because a single network call can fail for any number of reasons, it’s smart to insure against that by initializing Chartboost every time your app becomes active.  


## What information does the Chartboost SDK collect?

Please read our  [Terms & Conditions](/en/legal/terms-conditions/)  to learn more.



## What device identifiers does your system use to track performance?

We use the IFA (Identifier for Advertising) and IFV (Identifier for Vendor) for iOS games; Android ID and Google Play Services Advertising ID for Google Play games.  [Learn more about device identifiers](/en/advertising/tools/device-identifiers/)



## What open-source software does Chartboost use?

-   **For Android:**  [Volley](https://android.googlesource.com/platform/frameworks/volley)



## Can I use TestFlight to test my integration?

Yes, but there are a few things you should keep in mind while doing so:

-   The iOS Identifier for Advertising (IDFA)  **will be different**  every time the SDK requests the device identifier in TestFlight apps. Some Chartboost features – like  [device lists](/en/advertising/tools/list-builder/)  for exclusion/inclusion – may not work or behave as expected.
-   As a result of the aforementioned, analytics reports that include device data from TestFlight builds may not be reliable
-   Note that this only applies to testing, not production builds downloaded from the App Store


