# ディープリンク

> ディープリンクを実装して、Web Offerwall をウェブサイトまたはモバイルアプリに統合します。

ダイレクトリンクは、ウェブサイトを Offerwall にリンクする非常にシンプルな方法です。オファーウォールを表示したい場所で、以下の URL にリンクできます。

```text
https://rewards.unity.com/owp/web/link/<SDK_KEY>/u/<USER_ID>
```

## 必須パラメーター##required-parameters

* **SDK\_KEY** - Tapjoy によって提供される SDK キー
* **USER\_ID** - ユーザーへの報酬の付与を適切に行うために、ユーザー ID を提供する必要があります。詳細については、[自己管理通貨](/grow/offerwall/monetization/virtual-currency/self-managed-currency.md) を参照してください。

> **Note:**
>
> **USER\_ID** は URL の一部であるため、URL セーフであるか、URL エンコードされている必要があります。

## オプションのパラメーター##optional-parameters

### ユーザープライバシー##user-privacy

ユーザープライバシーは、URL にクエリパラメーターを追加することで実装できます。各フラグの詳細については、[ユーザープライバシー](/grow/offerwall/web/advanced/user-privacy.md) を参照してください。

```text
https://rewards.unity.com/owp/web/link/<SDK_KEY>/u/<USER_ID>?gdpr=1&cgdpr=1&...
```

| オプション              | クエリパラメーター名          | 初期値    | 説明                                                                             |
| ------------------ | ------------------- | ------ | ------------------------------------------------------------------------------ |
| ユーザーが GDPR の対象かどうか | `gdpr`              | `0`    | ユーザーが GDPR の対象となる場合は、値を`1` にする必要があります                                          |
| GDPR についての同意       | `cgdpr`             | `0`    | `0` はユーザーが同意していないことを意味し、`1` はユーザーの同意を意味します                                     |
| 同意年齢未満             | `below_consent_age` | `0`    | `1` と `0` の値はそれぞれ、ユーザーが同意年齢を下回っているかどうかを表します                                    |
| 米国プライバシー           | `us_privacy`        | `1---` | 値の説明については、[ユーザープライバシー](/grow/offerwall/web/advanced/user-privacy.md) を参照してください |

### イベント名##event-name

`event_name` パラメーターは、ウェブサイトやモバイルアプリでどの [プレースメント](../../monetization/dashboard/placements) をロードするかを選択します。プレースメントをロードすると、Tapjoy はそのプレースメントに関連付けられた [コンテンツカード](../../monetization/dashboard/offerwall-cards) をレンダリングします。

`event_name` を省略すると、Tapjoy はデフォルトで標準の Offerwall をロードします。

> **Important:**
>
> `event_name`
>
> &#x20;パラメーターを省略する場合は、Tapjoy ダッシュボードで&#x20;
>
> `#WebOfferwall`
>
> &#x20;プレースメントを作成し、URL を利用する前にコンテンツカードとリンクしてください。作成方法については、プレースメントドキュメントの&#x20;
>
> [プレースメントの作成](../../monetization/dashboard/placements#create-a-placement)
>
> &#x20;セクションと、Offerwall カードドキュメントの&#x20;
>
> [Offerwall の作成](/grow/offerwall/monetization/dashboard/content-cards.md#create-a-content-card)
>
> &#x20;セクションを参照してください。

event\_name でプレースメントを指定する場合は、以下のディープリンク形式を使用してください。

```text
https://rewards.unity.com/owp/web/link/<SDK_KEY>/u/<USER_ID>?event_name=<PLACEMENT_NAME>
```

### ユーザータグ##user-tags

Web Offerwall では、[ユーザータグ](/grow/offerwall/monetization/dashboard/targeting.md) によるセグメントターゲティングがサポートされています。`user_tags[]=` を使用して、複数のユーザータグを渡すことができます。

```text
https://rewards.unity.com/owp/web/link/<SDK_KEY>/u/<USER_ID>?user_tags[]=<TAG1>&user_tags[]=<TAG2>
```

### カスタムパラメーター##custom-parameter

カスタムパラメーター `cp` を使用して、クリック数やコンバージョンに関する特定の詳細を追跡するためのユーザー定義値を渡すことができます。

```text
https://rewards.unity.com/owp/web/link/<SDK_KEY>/u/<USER_ID>?cp=xxx
```

## iframe を使った埋め込み##embedding-with-iframe

Iframe に Web Offerwall を埋め込む場合は、iframe のサイズがデバイスの画面ビューポートを超えないようにする必要があります。そうしないと、指示の CTA ボタンが可視ビューポートの外側に表示されるため、ユーザーはボタンにアクセスするために下までスクロールする必要があります。

![iframeに埋め込まれたウェブ オファーウォールの例。特大のiframeで、指示CTAボタンを可視ビューポートの外側に押す方法を示しています。](/api/media?file=/grow/media/images/webofferwall_iframe.jpg)

これらのガイドラインに従うことで、開発者は Web Offerwall 製品のユーザビリティとユーザーエンゲージメントを最大化し、重要な UI 要素に簡単にアクセスできるようにします。

## モバイルアプリからの Web Offerwall##web-offerwall-from-mobile-apps

Web Offerwall は、リンクを WebView にロードすることでモバイルアプリでも使用できます。

### 例##examples

#### Android##android

Web Offerwall ではまだ Android の戻るボタンが完全にはハンドルされないため、Android の戻るボタンをオーバーライドし、WebView を閉じる独自の UI を実装することをお勧めします。これにより、ユーザーが WebView を意図せず閉じてしまうことを防ぎ、ユーザーは代わりに OW 内のナビゲーション UI を使用できるようになります。

1. **Android**

   ```java
   void showWebOfferwall() {
     final WebView webView = new WebView(requireContext());
     webView.getSettings().setJavaScriptEnabled(true);
     webView.getSettings().setDomStorageEnabled(true);
     webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
     webView.setBackgroundColor(Color.TRANSPARENT);
     webView.loadUrl("https://rewards.unity.com/owp/web/link/sdk_key/u/user_id");

     RelativeLayout.LayoutParams paramsWebView = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
     Dialog dialog = new Dialog(requireContext(), android.R.style.Theme_Black_NoTitleBar_Fullscreen);
     dialog.addContentView(webView, paramsWebView);

     // Handle backbutton
     dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
       @Override
       public boolean onKey(DialogInterface dialogInterface, int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
           if (webView.canGoBack()) {
             webView.goBack();
           }
         }
         // return true to prevent closing the WebView
         return true;
       }
     });

     dialog.show();
   }
   ```

2. **iOS (Objective-C)**

   ```objective-c
   - (IBAction)showOfferwallAction:(id)sender {
     WKWebViewConfiguration* configuration = [[WKWebViewConfiguration alloc] init];
     configuration.allowsInlineMediaPlayback = YES;
     configuration.allowsAirPlayForMediaPlayback = NO;

     WKWebView* webview = [[WKWebView alloc] initWithFrame:self.view.frame configuration:configuration];
     [webview setUIDelegate:self];

     [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://rewards.unity.com/owp/web/link/sdk_key/u/user_id"]]];
     [self.view addSubview:webview];
   }

   // Open external browser for window.open() or target = _blank
   - (WKWebView *)webView:(WKWebView *)webView
   createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration
      forNavigationAction:(WKNavigationAction *)navigationAction
           windowFeatures:(WKWindowFeatures *)windowFeatures {
     NSURL *url = navigationAction.request.URL;
     [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
       if(!success) {
         NSLog(@"Failed to open URL: %@", [url absoluteString]);
       }
     }];
     return nil;
   }
   ```
